Tôi đã thử thách bản thân để tạo ra trải nghiệm trực quan và tương tác trực quan chỉ bằng HTML và CSS (Không có Javascript). Cho đến nay, tôi chưa bắt gặp bất kỳ tính năng nào tôi cần mà tôi không thể làm trong CSS và HTML thuần túy. Điều này có lẽ là một chút khó khăn hơn.
Tôi cần phải ngăn chặn người dùng kích đúp <a>
, <input type="submit">
và <button>
thẻ. Điều này là để ngăn họ gửi hai biểu mẫu hoặc vô tình thực hiện 2 yêu cầu NHẬN vào một URL. Làm thế nào điều này có thể được thực hiện trong CSS thuần? Ngay cả khi chúng ta không thể thiết lập disabled
mà không có JS, vẫn cần có một số kỹ thuật che giấu hoặc kết hợp các kiểu có thể xử lý nó ở đây vào năm 2020.
Đây là một ví dụ đơn giản về một nỗ lực:
.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>
Thật không may, điều này vô hiệu hóa nó trước khi sự kiện nhấp thực tế được kích hoạt vì một số lý do. Có lẽ neo không phải là cách tốt nhất để kiểm tra? Tôi sẽ tiếp tục cố gắng hơn nữa.
pointer-events: all
theo mặc định, nhưng không ở trạng thái: đang hoạt động hoặc: tập trung? Giống như thiết lập pointer-events: none
cho các tiểu bang?
el:active, el:focus
kết hợp với các sự kiện con trỏ