Я хочу изменить внешний вид стрелки по умолчанию в раскрывающемся списке, чтобы он выглядел одинаково во всех браузерах. Есть ли способ переопределить внешний вид по умолчанию для стрелки раскрывающегося списка с помощью CSS или иным образом?
Вы можете добиться этого с помощью CSS, но технически не меняете саму стрелку.
В этом примере я фактически скрываю стрелку по умолчанию и вместо этого показываю свою стрелку.
.styleSelect select { background: transparent; width: 168px; padding: 5px; font-size: 16px; line-height: 1; border: 0; border-radius: 0; height: 34px; -webkit-appearance: none; -moz-appearance: none; appearance: none; color: #000; } .styleSelect { width: 140px; height: 34px; overflow: hidden; background: url("images/downArrow.png") no-repeat right #fff; border: 2px solid #000; }
<div class="styleSelect"> <select class="units"> <option value="Metres">Metres</option> <option value="Feet">Feet</option> <option value="Fathoms">Fathoms</option> </select> </div>
Нет, кросс-браузерная настройка очень сложна, если не невозможна, для правильной настройки для всех браузеров. Если вы действительно заботитесь о внешнем виде этих виджетов, вам следует использовать реализацию javascript.
см. http://www.456bereastreet.com/archive/200409/styling_form_controls/ и http://developer.yahoo.com/yui/examples/button/btn_example07.html
Это может быть сделано:
select{ background: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+) no-repeat 100% 50%; }
select{ background: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+) no-repeat 100% 50%; -moz-appearance: none; -webkit-appearance: none; -webkit-border-radius: 0px; appearance: none; outline-width: 0; padding: 10px 10px 10px 5px; display: block; width: 10em; border: none; font-size: 1rem; border-bottom: 1px solid #757575; }
Элемент <select> создается приложением, а стилизация не является частью спецификации CSS / HTML.
<select>
Вам придется подделать его с вашим собственным DIV и наложить его поверх существующего или создать свой собственный элемент управления, имитирующий ту же функциональность.
Мы использовали YUI, Chosen и в настоящее время используем плагин jQuery Select2: https://select2.github.io/
Она довольно крепкая, стрела - лишь вершина айсберга.
Как только стилизованный выбор становится требованием, я согласен с остальными, иди с плагином. Не убивай себя, изобретая велосипед.
Боюсь, нелегко. Проблема в том, что Css не может заменить стрелку в выделении, поскольку это отображается браузером. Но вы можете создать новый элемент управления из элементов div и input и Javascript, чтобы выполнять ту же функцию, что и select.
Попробуйте взглянуть на некоторые плагины автозаполнения для Jquery, например.
В противном случае здесь есть некоторая информация об элементе select:
http://www.devarticles.com/c/a/Web-Style-Sheets/Taming-the-Select/
Нет, вы не можете сделать это с помощью фактического <select>, но есть методы, которые позволяют вам "заменить" их решениями javascript, которые выглядят лучше.
Вот хорошая статья по теме:
Попробуйте изменить цвет вашего атрибута border-top на белый
Если вы не планируете создать свой собственный выпадающий список (и не использовать стандартный выпадающий список библиотеки), вы застряли. Внешний вид элемента управления DDL будет зависеть от системы, которую вы используете, и / или от браузера, который выводит данные.