Если вы хотите, чтобы это был только CSS, логика отключения должна быть определена CSS.
Чтобы переместить логику в определениях CSS, вам придется использовать селекторы атрибутов. Вот некоторые примеры :
Отключить ссылку с точным href: =
Вы можете отключить ссылки, содержащие определенное значение href, например:
<a href="//website.com/exact/path">Exact path</a>
[href="https://stackoverflow.com//website.com/exact/path"]{
pointer-events: none;
}
Отключите ссылку, содержащую часть пути: *=
Здесь любая ссылка, содержащаяся /keyword/
в пути, будет отключена
<a href="//website.com/keyword/in/path">Contains in path</a>
[href*="/keyword/"]{
pointer-events: none;
}
Отключить ссылку, которая начинается с: ^=
[attribute^=value]
целевой оператор атрибут , который начинается со значением конкретного. Позволяет отказаться от веб-сайтов и корневых путей.
<a href="//website.com/begins/with/path">Begins with path</a>
[href^="//website.com/begins/with"]{
pointer-events: none;
}
Вы даже можете использовать его для отключения не-https ссылок. Например :
a:not([href^="https://"]){
pointer-events: none;
}
Отключить ссылку, которая заканчивается на: $=
[attribute$=value]
Оператор целевого атрибута , который заканчивается значением удельного. Это может быть полезно, чтобы отказаться от расширений файлов.
<a href="/path/to/file.pdf">Link to pdf</a>
[href$=".pdf"]{
pointer-events: none;
}
Или любой другой атрибут
Css может предназначаться для любого атрибута HTML. Может быть rel
, target
, data-custom
и так далее ...
<a href="#" target="_blank">Blank link</a>
[target=_blank]{
pointer-events: none;
}
Объединение селекторов атрибутов
Вы можете связать несколько правил. Допустим, вы хотите отключить все внешние ссылки, но не те, которые указывают на ваш сайт:
a[href*="//"]:not([href*="my-website.com"]) {
pointer-events: none;
}
Или отключите ссылки на pdf файлы определенного сайта:
<a href="//website.com/path/to/file.jpg">Link to image</a>
[href^="//website.com"][href$=".jpg"] {
color: red;
}
Поддержка браузера
Селекторы атрибутов поддерживаются начиная с IE7. :not()
Селектор с IE9.