การดำเนินงาน
มีการใช้งานที่แตกต่างกันสามแบบ: องค์ประกอบแบบหลอก, ชั้นเรียนแบบหลอกและไม่มีอะไร
- WebKit, Blink (Safari, Google Chrome, Opera 15+) และ Microsoft
::-webkit-input-placeholder
ขอบใช้หลอกองค์ประกอบ: [ อ้างอิง ]
- Mozilla Firefox 4 ถึง 18 กำลังใช้คลาส pseudo:
:-moz-placeholder
( หนึ่งโคลอน) [ อ้างอิง ]
- Mozilla Firefox 19+ ใช้องค์ประกอบปลอม:
::-moz-placeholder
แต่ตัวเลือกเก่าจะยังคงใช้งานได้ระยะหนึ่ง [ อ้างอิง ]
- Internet Explorer 10 และ 11
:-ms-input-placeholder
กำลังใช้หลอกชั้น: [ อ้างอิง ]
- เมษายน 2017: เบราว์เซอร์ที่ทันสมัยส่วนใหญ่รองรับองค์ประกอบหลอกง่าย
::placeholder
[ อ้างอิง ]
Internet Explorer 9 และรุ่นที่ต่ำกว่าไม่รองรับplaceholder
คุณสมบัติเลยขณะที่Opera 12 และรุ่นต่ำกว่าไม่รองรับตัวเลือก CSS ใด ๆ สำหรับตัวยึดตำแหน่ง
การอภิปรายเกี่ยวกับการใช้งานที่ดีที่สุดยังคงเกิดขึ้น หมายเหตุ: การกระทำหลอกองค์ประกอบเช่นองค์ประกอบที่แท้จริงในเงา DOM padding
บนinput
จะไม่ได้รับสีพื้นหลังเช่นเดียวกับองค์ประกอบหลอก
CSS selectors
ตัวแทนผู้ใช้จะต้องเพิกเฉยกฎกับตัวเลือกที่ไม่รู้จัก ดูตัวเลือกระดับ 3 :
กลุ่มของตัวเลือกที่มีตัวเลือกที่ไม่ถูกต้องไม่ถูกต้อง
ดังนั้นเราจึงต้องการกฎแยกต่างหากสำหรับแต่ละเบราว์เซอร์ มิฉะนั้นเบราว์เซอร์ทั้งหมดจะถูกละเว้นทั้งกลุ่ม
::-webkit-input-placeholder { /* WebKit, Blink, Edge */
color: #909;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
color: #909;
opacity: 1;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
color: #909;
opacity: 1;
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
color: #909;
}
::-ms-input-placeholder { /* Microsoft Edge */
color: #909;
}
::placeholder { /* Most modern browsers support this now. */
color: #909;
}
<input placeholder="Stack Snippets are awesome!">
บันทึกการใช้งาน
- ระมัดระวังเพื่อหลีกเลี่ยงความแตกต่างที่ไม่ดี ตัวยึดตำแหน่งของ Firefox ดูเหมือนจะเริ่มต้นด้วยความทึบลดลงดังนั้นจึงจำเป็นต้องใช้
opacity: 1
ที่นี่
- โปรดทราบว่าข้อความตัวยึดจะถูกตัดออกหากไม่พอดี - ปรับขนาดองค์ประกอบอินพุตของคุณ
em
และทดสอบด้วยการตั้งค่าขนาดตัวอักษรขั้นต่ำสุดใหญ่ อย่าลืมคำแปล: บางภาษาต้องการพื้นที่มากขึ้นสำหรับคำเดียวกัน
- เบราว์เซอร์ที่รองรับ HTML
placeholder
แต่ไม่สนับสนุน CSS สำหรับ (เช่น Opera) ควรทำการทดสอบเช่นกัน
- เบราว์เซอร์บางตัวใช้ CSS เริ่มต้นเพิ่มเติมสำหรับบาง
input
ประเภท ( email
, search
) สิ่งเหล่านี้อาจส่งผลกระทบต่อการแสดงผลในรูปแบบที่ไม่คาดคิด ใช้คุณสมบัติ -webkit-appearance
และ-moz-appearance
เพื่อเปลี่ยนแปลง ตัวอย่าง:
[type="search"] {
-moz-appearance: textfield;
-webkit-appearance: textfield;
appearance: textfield;
}