2015-12-09 2 views
2

text-transform: capitalize не работает в этом случае, потому что текст уже имеет верхний регистр.Как использовать ТОЛЬКО первую букву элемента HTML с использованием CSS?

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

Это тоже не сработало.

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

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

Он должен работать на Chrome (по крайней мере) с использованием CSS (а не JS).

+2

Я не думаю, что вы можете сделать это с помощью * только * CSS. – Draco18s

+2

Вы не можете стиль '

ответ

3

В Chrome и Firefox, вы можете стиль в option элемент если его select имеет размер больше 1.

Вы можете использовать это следующим образом:

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 */ 
 
}
<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>

Это не будет довольно действовать как нормальная коробка выбора, а Chrome имеет stran ge, поскольку выбранный вариант будет иметь серый фон. Не могу понять, как это предотвратить.

+0

Да, это действует странно. Но это действительно работает. –

+0

Это интересно .. Кажется, работает в Firefox и Chrome, но не в IE9 (большой сюрприз). Однако это может работать и в других версиях IE. В любом случае, я удалил свой ответ, потому что кажется, что есть способ сделать это с помощью только CSS .... –

+0

Спасибо. Он не работает в IE11 (или Safari). Я сосредоточился на Chrome на основе требования OP: «Он должен работать на Chrome (по крайней мере)». Вероятно, в IE или Safari нет возможности сделать это. –

Смежные вопросы