如何为html"选择"元素的选项设置样式?

这是我的HTML。

<select id="ddlProducts" name="ddProducts"> 
    <option>Product1 : Electronics </option>
    <option>Product2 : Sports </option>
</select>

我想把产品的名称(即'Product1', 'Product2'等)加粗,并把它的类别(即电子、体育等)斜体化,只用CSS。我发现一个旧问题,其中提到使用HTML和CSS是不可能的,但希望现在有一个解决方案。

解决办法

只有几个样式属性可以应用于``元素。

这是因为这种类型的元素是一个"替换的元素"的例子。它们是依赖于操作系统的,不是HTML/浏览器的一部分。它不能通过CSS进行样式设计。

有一些替换插件/库,看起来像<select>,但实际上是由普通的HTML元素组成,***可以被样式化。

评论(8)

不,这是不可能的,因为这些元素的样式是由用户的操作系统处理的。MSDN将在这里回答你的问题

除了background-colorcolor之外,通过选项元素的样式对象应用的样式设置被忽略了。

评论(6)

就像上面说的那样,其实是不可能的;但是,如果你只是想在用户与字段互动之前,为类似'选择产品...'选项的初始状态进行样式设计,你可以像下面这样做 --

下面的例子将第一个选项的样式(从技术上讲是所有的)改为红色,一旦用户进行交互,将删除该选项(该选项的值="defaultValue"设置)并删除应用于选择的类。 你也可以应用除颜色以外的其他选项,但它们只在改变后影响该字段,而不是列表视图。

CSS

.default-value{
  color: red;
}

jQuery

$("select").addClass('default-value');

$("select").bind("focus", function () {
  $(this).children('option[value="defaultValue"]').remove();
  $(this).removeClass('default-value');
});
评论(0)