ฉันได้ท้าทายตัวเองในการสร้างประสบการณ์แบบโต้ตอบและโต้ตอบในรูปแบบ HTML และ CSS เท่านั้น (ไม่มี Javascript) จนถึงตอนนี้ฉันยังไม่พบคุณลักษณะใด ๆ ที่ฉันต้องการซึ่งฉันไม่สามารถทำได้ใน CSS และ HTML ล้วนๆ อันนี้อาจจะยากหน่อย
ฉันต้องการที่จะป้องกันผู้ใช้จากการดับเบิลคลิก<a>
, <input type="submit">
และ<button>
แท็ก นี่คือการป้องกันไม่ให้ส่งแบบฟอร์มซ้ำซ้อนหรือส่งคำขอ 2 GET ไปยัง URL โดยไม่ได้ตั้งใจ สิ่งนี้สามารถทำได้ใน CSS บริสุทธิ์ แม้ว่าเราจะไม่สามารถตั้งค่าได้disabled
หากปราศจาก JS แต่ควรมีเทคนิคการปิดบังหรือการผสมผสานของสไตล์ที่สามารถจัดการได้ที่นี่ในปี 2020
นี่คือตัวอย่างง่ายๆของความพยายาม:
.clicky:focus{
display: none;
pointer-events: none;
}
<a href="#down" class="clicky">test</a>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p id="down">target</p>
น่าเสียดายที่นี่ปิดใช้งานก่อนที่เหตุการณ์การคลิกจริงจะเริ่มขึ้นด้วยเหตุผลบางประการ จุดยึดอาจไม่ใช่วิธีที่ดีที่สุดในการทดสอบหรือ ฉันจะพยายามต่อไป
pointer-events: all
ค่าเริ่มต้น แต่ไม่อยู่ใน: ใช้งานหรือ: สถานะโฟกัส? เช่นเดียวกับที่ตั้งไว้pointer-events: none
สำหรับรัฐเหล่านั้น?
el:active, el:focus
รวมกับตัวชี้เหตุการณ์