Nếu bạn muốn nó chỉ là CSS, logic vô hiệu hóa phải được xác định bởi CSS.
Để di chuyển logic trong các định nghĩa CSS, bạn sẽ phải sử dụng các bộ chọn thuộc tính. Dưới đây là một số ví dụ:
Vô hiệu hóa liên kết có chính xác href: =
Bạn có thể chọn tắt các liên kết có chứa giá trị href cụ thể như vậy:
<a href="//website.com/exact/path">Exact path</a>
[href="https://stackoverflow.com//website.com/exact/path"]{
pointer-events: none;
}
Vô hiệu hóa một liên kết có chứa một phần của đường dẫn: *=
Tại đây, mọi liên kết chứa /keyword/
trong đường dẫn sẽ bị vô hiệu hóa
<a href="//website.com/keyword/in/path">Contains in path</a>
[href*="/keyword/"]{
pointer-events: none;
}
Vô hiệu hóa một liên kết bắt đầu bằng: ^=
các [attribute^=value]
nhà điều hành mục tiêu một thuộc tính mà bắt đầu với một giá trị cụ thể. Cho phép bạn loại bỏ các trang web và đường dẫn gốc.
<a href="//website.com/begins/with/path">Begins with path</a>
[href^="//website.com/begins/with"]{
pointer-events: none;
}
Bạn thậm chí có thể sử dụng nó để vô hiệu hóa các liên kết không https. Ví dụ :
a:not([href^="https://"]){
pointer-events: none;
}
Vô hiệu hóa một liên kết kết thúc bằng: $=
Các [attribute$=value]
nhà điều hành nhắm vào một thuộc tính mà kết thúc với một giá trị cụ thể. Nó có thể hữu ích để loại bỏ phần mở rộng tập tin.
<a href="/path/to/file.pdf">Link to pdf</a>
[href$=".pdf"]{
pointer-events: none;
}
Hoặc bất kỳ thuộc tính nào khác
Css có thể nhắm mục tiêu bất kỳ thuộc tính HTML. Có thể là rel
, target
, data-custom
và vân vân ...
<a href="#" target="_blank">Blank link</a>
[target=_blank]{
pointer-events: none;
}
Kết hợp các bộ chọn thuộc tính
Bạn có thể xâu chuỗi nhiều quy tắc. Giả sử bạn muốn vô hiệu hóa mọi liên kết bên ngoài, nhưng không phải những liên kết trỏ đến trang web của bạn:
a[href*="//"]:not([href*="my-website.com"]) {
pointer-events: none;
}
Hoặc vô hiệu hóa liên kết đến tệp pdf của một trang web cụ thể:
<a href="//website.com/path/to/file.jpg">Link to image</a>
[href^="//website.com"][href$=".jpg"] {
color: red;
}
Hỗ trợ trình duyệt
Các bộ chọn thuộc tính được hỗ trợ kể từ IE7. :not()
bộ chọn từ IE9.