如何使用CSS仅利用HTML选项元素的第一个字母?

时间:2015-12-09 20:11:58

标签: html css forms css-selectors

text-transform: capitalize在这种情况下不起作用,因为文本已经是大写的。

<select>
    <option>
      OPTION
    </option>
</select>

这也不起作用。

select{
  -webkit-appearance: none;
  text-transform: lowercase;
  display: inline;
}

select option::first-letter{
  text-transform: uppercase;
}

它应该在Chrome(至少)上使用CSS(而不是JS)。

1 个答案:

答案 0 :(得分:5)

在Chrome和Firefox中,您可以设置option元素的样式,如果select的大小超过1。

您可以按如下方式利用此内容:

&#13;
&#13;
select {
  height: 1.4em;             /* show only one option when not focused */
}

select:focus {
  height: 100%;              /* show all options when focused */
}

option  {
  text-transform: lowercase; /* change to lowercase */
  padding-right: 2em;        /* the select's width is based on width of its longest non-transformed ... */
                             /* option.  padding ensures that option is completely visible */
  display: none;             /* hide all options by default (see below) */
}

option::first-letter {
  text-transform: uppercase; /* change first letter to uppercase */
}

option:checked, select:focus option { 
  display: block;            /* show selected option, or show all options when the select is focused */
}
&#13;
<select size="4">
  <option selected>NOW IS THE TIME</option>
  <option>for all good men</option>
  <option>tO Come To tHe aid</option>
  <option>of the party</option>
</select>
&#13;
&#13;
&#13;

它不会完全表现得像普通的选择框一样,Chrome有一个奇怪的行为,因为所选的选项将具有灰色背景。无法弄清楚如何防止这种情况。