ฉันได้ท้าทายตัวเองในการสร้างประสบการณ์แบบโต้ตอบและโต้ตอบในรูปแบบ 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รวมกับตัวชี้เหตุการณ์