นี่เป็นวิธีแก้ปัญหาสมัยใหม่ที่ฉันปรุงขึ้นโดยใช้ฟอนต์ที่ยอดเยี่ยม ส่วนขยายผู้ให้บริการถูกละเว้นเพื่อความกะทัดรัด
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;
}
}
}
หากองค์ประกอบที่คุณเลือกมีสีพื้นหลังที่กำหนดไว้สิ่งนี้จะไม่ทำงานเนื่องจากข้อมูลโค้ดนี้จะวางไอคอนเชฟรอนไว้ด้านหลังองค์ประกอบที่เลือกเป็นหลัก (เพื่อให้การคลิกที่ด้านบนของไอคอนยังคงเริ่มต้นการกระทำที่เลือกได้)
อย่างไรก็ตามคุณสามารถกำหนดรูปแบบของกระดาษห่อเลือกให้มีขนาดเท่ากับองค์ประกอบที่เลือกและจัดรูปแบบพื้นหลังเพื่อให้ได้เอฟเฟกต์เดียวกัน
ตรวจสอบCodePenของฉันเพื่อดูการสาธิตที่ใช้งานได้ซึ่งแสดงบิตของโค้ดนี้ทั้งในกล่องเลือกที่มีธีมสีเข้มและสีอ่อนโดยใช้ป้ายกำกับปกติและป้ายกำกับ "ตัวยึดตำแหน่ง" และรูปแบบอื่น ๆ ที่ล้างข้อมูลเช่นเส้นขอบและความกว้าง
ปล. นี่คือคำตอบที่ฉันเคยโพสต์ไปยังอีกคำถามที่ซ้ำกันเมื่อต้นปีนี้