- ตั้งแต่ Chrome 135 เป็นต้นไป เริ่มรองรับความสามารถใหม่ที่ทำให้ปรับแต่งองค์ประกอบ
<select> ด้วย CSS ได้ โดยยังคงมาตรฐานการเข้าถึงไว้
- หลังจากใช้เวลาหลายปีในการปรับสเปกและพัฒนา ฟีเจอร์นี้ถูกส่งมอบเป็นคอมโพเนนต์ที่แข็งแรงและไม่พังในเบราว์เซอร์รุ่นเก่า
- สามารถใส่เนื้อหา HTML ได้ และเมื่อเพิ่ม
appearance: base-select ก็จะเปิดให้ปรับแต่งได้หลากหลาย เช่น แอนิเมชันและสไตล์ต่างๆ
แนะนำ appearance: base-select
สามารถใส่เนื้อหา HTML ใน <select> ได้
- ก่อนหน้านี้ หากใส่รูปภาพหรือ SVG ใน
<option> เบราว์เซอร์จะมองข้าม
- เมื่อใช้
appearance: base-select จะเรนเดอร์ HTML ตามนั้นเลย
- ใน Chrome จะมองเห็นตัวเลือกที่มี SVG แต่ Safari, Firefox และตัวอื่นๆ ยังไม่รองรับ
- เดโม CodePen: ลิงก์ทดลอง
- ฟีเจอร์นี้ถูกนำมาใช้ผ่านการทดลอง Finch จึงอาจถูกยกเลิกได้หากจำเป็น
ปรับแต่งได้เต็มรูปแบบ
- ทุกองค์ประกอบของ
base-select สามารถแทนที่ ใส่แอนิเมชัน และจัดสไตล์ได้
- สามารถออกแบบ UI สำหรับการเลือกที่มีความหมายได้หลากหลาย
- ตัวอย่างเช่น การแสดงสถานะ ตัวเลือกที่มีอวาตาร์ ตัวเลือกสี หรือการเลือกสถานะโพสต์
- เดโม CodePen: ลิงก์ทดลอง
อินเทอร์เฟซ JavaScript ไม่เปลี่ยนแปลง
- พฤติกรรม JavaScript ของ
<select> แบบเดิมยังคงเหมือนเดิม
- แต่หากใส่ HTML ลงใน
<option> วิธี parse ค่าที่เลือกจะเปลี่ยนไป จึงควรทดสอบ
- หากใช้พร็อพเพอร์ตี
value อยู่แล้ว ก็ไม่จำเป็นต้องแก้ไขเพิ่มเติม
ข้อมูลเพิ่มเติม
มาตรฐานเว็บ
เอกสารเกี่ยวกับ Chrome
แหล่งข้อมูลจากชุมชน
เดโมที่ใช้ <select> แบบปรับแต่งแล้ว
4 ความคิดเห็น
ความคิดเห็นบน Hacker News
ที่ฉันตื่นเต้นกับฟีเจอร์นี้เกินสัดส่วน น่าจะเผยให้เห็นตัวตนของฉันในฐานะนักพัฒนาเว็บช่วงต้นยุค 2000 ฟีเจอร์นี้มีประโยชน์มาก เพราะองค์ประกอบ select ให้ความสามารถที่ไม่อาจจำลองด้วย HTML ได้
จนกว่าฟีเจอร์นี้จะรองรับอย่างแพร่หลาย ควรใช้แบบ progressive enhancement ตอนนี้ตาม caniuse.com รองรับทั่วโลกอยู่ที่ 46%
ดีใจมากที่ได้เห็นฟีเจอร์นี้ถูกนำมาใช้งาน มันจะเป็นการพัฒนาที่ดีกว่าตัวแทน select box แบบคัสตอมอย่างมาก
กังวลว่ามันจะไม่ไปกระตุ้นคอมโพเนนต์ของระบบปฏิบัติการมือถือที่มีมาให้ในตัว คอมโพเนนต์ที่มีมาในตัวนั้นเชื่อถือได้ เข้าถึงได้ และตอบสนองได้ดี
คอนโทรลบางอย่างไม่ใส่สไตล์เพิ่มจะดีกว่า สำหรับ scrollbar นั้น บางครั้งบางเกินไปหรือคอนทราสต์สีแย่จนใช้งานลำบาก
ดูเหมือนนี่คือสิ่งที่นักพัฒนาเว็บรอกันมาหลายทศวรรษ มีโอกาสแทนที่ไลบรารี JS ได้จำนวนมาก
ตอนนี้สามารถคัสตอมองค์ประกอบ select ด้วย CSS ได้แล้วในเบราว์เซอร์ Chromium
มีการให้ลิงก์ไปยัง issue ของ Firefox
ถ้ายังเดินหน้าแบบนี้ต่อไป อีกไม่นานก็คงมีความสามารถเทียบเท่า VB6 ได้
ดีกว่าไลบรารี JS ที่พัง ๆ แต่สิ่งที่กังวลหลักคือเวลามีตัวเลือกจำนวนมากแล้วเลย์เอาต์จะเป็นอย่างไร
งั้น
<selectlist>ก็จะไม่จำเป็นอีกต่อไปแล้วเหรอ?พูดอีกเรื่องหนึ่งคือ ใน Slackbot ดูเหมือนว่า
<select>ในชื่อเรื่องจะไม่แสดงนะ 555อ๊ะ ฮือ เดี๋ยวฉันจะแก้ไขอันนี้ภายหลังนะครับ/ค่ะ