Đây là một giải pháp hiện đại mà tôi đã tạo ra bằng cách sử dụng font-awesome . Tiện ích mở rộng nhà cung cấp đã bị bỏ qua cho ngắn gọn.
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;
}
}
}
Nếu phần tử được chọn của bạn có màu nền xác định, thì điều này sẽ không hoạt động vì đoạn mã này về cơ bản đặt biểu tượng Chevron phía sau phần tử được chọn (để cho phép nhấp vào trên cùng của biểu tượng để vẫn bắt đầu hành động chọn).
Tuy nhiên, bạn có thể tạo kiểu cho select-wrapper có cùng kích thước với phần tử được chọn và tạo kiểu cho nền của nó để đạt được hiệu ứng tương tự.
Hãy xem CodePen của tôi để biết bản trình diễn đang hoạt động hiển thị đoạn mã này trên cả hộp chọn theo chủ đề tối và sáng bằng cách sử dụng nhãn thông thường và nhãn "trình giữ chỗ" và các kiểu đã làm sạch khác như đường viền và chiều rộng.
Tái bút Đây là một câu trả lời tôi đã đăng cho một câu hỏi khác, trùng lặp vào đầu năm nay.