Это современное решение, которое я придумал с помощью font-awesome . Для краткости расширения поставщиков опущены.
HTML
<fieldset>
<label for="color">Select Color</label>
<div class="select-wrapper">
<select id="color">
<option>Red</option>
<option>Blue</option>
<option>Yellow</option>
</select>
<i class="fa fa-chevron-down"></i>
</div>
</fieldset>
SCSS
fieldset {
.select-wrapper {
position: relative;
select {
appearance: none;
position: relative;
z-index: 1;
background: transparent;
+ i {
position: absolute;
top: 40%;
right: 15px;
}
}
}
Если ваш элемент выбора имеет определенный цвет фона, это не сработает, поскольку этот фрагмент по существу помещает значок шеврона за элементом выбора (чтобы можно было щелкнуть вверху значка, чтобы по-прежнему инициировать действие выбора).
Однако вы можете стилизовать оболочку select к тому же размеру, что и элемент select, и стилизовать его фон для достижения того же эффекта.
Проверьте мой CodePen чтобы рабочую демонстрацию, которая показывает этот кода как в темном, так и в светлом поле выбора с использованием обычной метки и метки-заполнителя, а также других очищенных стилей, таких как границы и ширина.
PS Это ответ, который я отправил на другой повторяющийся вопрос ранее в этом году.