如何更改选择选项的字体大小?

use*_*331 16 css html-select font-size css3

我正在尝试设置选择选项下拉列表的样式.是否可以使选项的字体大小与默认值不同?例如,默认值:

-- Select Country --  
Run Code Online (Sandbox Code Playgroud)

尺寸为7pt; 和其中一个选项,

Georgia
Run Code Online (Sandbox Code Playgroud)

尺寸为13pt.

这是我的下拉列表:

.select_join {
  width: 170px;
  height: 28px;
  overflow: hidden;
  background: url('http://s24.postimg.org/lyhytocf5/dropdown.png') no-repeat right #FEFEFE;
  border: #FEFEFE 1px solid;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  -webkit-box-shadow: inset 0px 0px 10px 1px #FEFEFE;
  box-shadow: inset 0px 0px 10px 1px #FEFEFE;
}
.select_join select {
  background: transparent;
  width: 170px;
  font-size:7pt;
  color:grey;
  border: 0;
  border-radius: 0;
  height: 28px;
  -webkit-appearance: none;
}
.select_join select:focus {
  outline: none;
}
Run Code Online (Sandbox Code Playgroud)
<div style="background-color:pink;height:150px; text-align:center;">
  <br/>
  <div class="select_join" style="margin-left:15px">
    <select name="txtCountry">
      <option>-- Select Country --</option>
      <option value="1">Georgia</option>
      <option value="2">Afghanistan</option>
    </select>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

另见我在JSFiddle上的演示.

不幸的是,它仅适用于Firefox.可能是其他浏览器不支持<option>元素样式?

我测试过的浏览器:

  • Chrome:版本27.0.1453.116 m
  • IE:10
  • Firefox:22.0

Atr*_*opo 15

<option>标记中添加一个CSS类来设置样式:http://jsfiddle.net/Ahreu/

目前,WebKit浏览器不支持此行为,因为规范未定义.看看这个:如何设置选择标签的选项元素的样式?


dke*_*ner 15

这是可行的,但很棘手.

正常的select-dropdown事物不会接受样式.但.如果标签中有"size"参数,则几乎所有CSS都适用.使用这个技巧,我创建了一个实际上等同于普通选择标记的小提琴,加上可以像可视语言中的ComboBox一样手动编辑值(除非您将readonly放在输入标记中).

所以这里有一个最小的例子来看看背后的原理:(
你需要jQuery来实现点击机制):

<style>

    /* only these 2 lines are truly required */
    .stylish span {position:relative;}
    .stylish select {position:absolute;left:0px;display:none}

    /* now you can style the hell out of them */
    .stylish input    { ... }
    .stylish select   { ... }
    .stylish option   { ... }
    .stylish optgroup { ... }

</style>
...
<div class="stylish">
    <label> Choose your superhero: </label>
    <span>
        <input onclick="$(this).closest('div').find('select').slideToggle(110)">
        <br>
        <select size=15 onclick="$(this).hide().closest('div').find('input').val($(this).find('option:selected').text());">

            <optgroup label="Fantasy"></optgroup>
            <option value="gandalf">Gandalf</option>
            <option value="harry">Harry Potter</option>
            <option value="jon">Jon Snow</option>

            <optgroup label="Comics"></optgroup>
            <option value="tony">Tony Stark</option>
            <option value="steve">Steven Rogers</option>
            <option value="natasha">Natasha Romanova</option>

        </select>
    </span>
</div>
Run Code Online (Sandbox Code Playgroud)

这里有更多(实际上太多)风格的小提琴:

https://jsfiddle.net/7ac9us70/1052/

(再一次,它充满了渐变和效果,只是为了展示可能性.我的意思是,呃,我不是告诉你使用径向渐变来获得goups加悬停动画项目!我有一颗心!)

注意<optgroup>标签如何不像通常那样封装属于它们的选项; 是的,这是故意的,它是造型(有礼貌的方式将少很多样式).是的,他们确实以这种方式完美地工作.