Как стиль только с CSS?
Примечание: этот вопрос не о создании пользовательского выпадающего списка. Речь идет только о возможностях укладки <option> элементы в элементе select в CSS
как я могу стиль <option>С <select> элемент с кроссбраузерной совместимостью? Я знаю много способов JavaScript, которые настраивают выпадающий список для преобразования в <li>, о котором я не спрашиваю.
<select class="select">
<option selected>Select</option>
<option>Blue</option>
<option >Red</option>
<option>Green</option>
<option>Yellow</option>
<option>Brown</option>
</select>
Я спрашиваю, Что может быть возможно только с CSS, с совместимостью для IE9+, Firefox и Хром.

Я хочу, чтобы стиль такой или как можно ближе.

Я пробовал здесь http://jsfiddle.net/jitendravyas/juwz3/3/, но Chrome не показывает никакого стиля, кроме цвета шрифта, в то время как Firefox показывает еще немного. Как получить границы и обивка работы в Chrome тоже?
3 ответов:
редактировать 2015 мая
отказ от ответственности: я взял фрагмент из ответа ниже:
Важное Обновление!
в дополнение к WebKit, начиная с Firefox 35 мы сможем использовать
appearanceсвойства:используя
-moz-appearanceСnoneзначение в выпадающем списке теперь удалите выпадающая кнопкатак что теперь, чтобы скрыть стиль по умолчанию, это как легко, как добавление следующих правил на нашем элементе select:
select { -webkit-appearance: none; -moz-appearance: none; appearance: none; }для поддержки IE 11, вы можете использовать [
::-ms-expand][15].select::-ms-expand { /* for IE 11 */ display: none; }Ответ
к сожалению, то, что вы спрашиваете, невозможно с помощью чистого CSS. Однако, вот что-то подобное, что вы можете выбрать в качестве обходного пути. Проверьте живой код ниже.
div { margin: 10px; padding: 10px; border: 2px solid purple; width: 200px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } div > ul { display: none; } div:hover > ul {display: block; background: #f9f9f9; border-top: 1px solid purple;} div:hover > ul > li { padding: 5px; border-bottom: 1px solid #4f4f4f;} div:hover > ul > li:hover { background: white;} div:hover > ul > li:hover > a { color: red; }<div> Select <ul> <li><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a></li> </ul> </div>EDIT
вот в чем вопрос это вы спрашивали некоторое время назад. как создать выпадающий список Как там говорится, только в Chrome и в какой-то степени в Firefox вы можете добиться того, чего хотите. В противном случае, к сожалению, нет кросс-браузерного чистого CSS-решения для стилизации select.
нет кросс-браузерного способа стилизации элементов опции, конечно, не в объеме вашего второго скриншота. Возможно, вы сможете сделать их полужирными и установить размер шрифта, но это будет примерно так...
Я играл с выбранными элементами раньше и без переопределения функциональности с помощью JavaScript, я не думаю, что это возможно в Chrome. Независимо от того, используете ли вы плагин или пишете свой собственный код, CSS только не подходит для Chrome/Safari, и, как вы сказали, Firefox лучше справляется с этим.
Comments