Jeśli chcesz, aby był to tylko CSS, logika wyłączająca powinna być zdefiniowana przez CSS.
Aby przenieść logikę w definicjach CSS, musisz użyć selektorów atrybutów. Oto kilka przykładów:
Wyłącz link, który ma dokładny href: =
Możesz wyłączyć łącza zawierające określoną wartość href, taką jak:
<a href="//website.com/exact/path">Exact path</a>
[href="https://stackoverflow.com//website.com/exact/path"]{
pointer-events: none;
}
Wyłącz link zawierający fragment ścieżki: *=
Tutaj wszelkie linki zawierające /keyword/
w ścieżce zostaną wyłączone
<a href="//website.com/keyword/in/path">Contains in path</a>
[href*="/keyword/"]{
pointer-events: none;
}
Wyłącz link zaczynający się od: ^=
[attribute^=value]
cel atrybutem, który zaczyna się od wartości konkretnego operatora. Pozwala odrzucić strony internetowe i ścieżki root.
<a href="//website.com/begins/with/path">Begins with path</a>
[href^="//website.com/begins/with"]{
pointer-events: none;
}
Możesz nawet użyć go do wyłączenia linków innych niż https. Na przykład :
a:not([href^="https://"]){
pointer-events: none;
}
Wyłącz link, który kończy się na: $=
[attribute$=value]
Operatorowi kierowanie atrybutu, który kończy się specyficzną wartość. Przydatne może być odrzucenie rozszerzeń plików.
<a href="/path/to/file.pdf">Link to pdf</a>
[href$=".pdf"]{
pointer-events: none;
}
Lub jakikolwiek inny atrybut
Css może kierować na dowolny atrybut HTML. Może być rel
, target
, data-custom
i tak dalej ...
<a href="#" target="_blank">Blank link</a>
[target=_blank]{
pointer-events: none;
}
Łączenie selektorów atrybutów
Możesz połączyć wiele reguł. Powiedzmy, że chcesz wyłączyć wszystkie linki zewnętrzne, ale nie te, które prowadzą do Twojej witryny:
a[href*="//"]:not([href*="my-website.com"]) {
pointer-events: none;
}
Lub wyłącz linki do plików pdf określonej witryny:
<a href="//website.com/path/to/file.jpg">Link to image</a>
[href^="//website.com"][href$=".jpg"] {
color: red;
}
Obsługa przeglądarki
Selektory atrybutów są obsługiwane od IE7. :not()
selektor od IE9.