Si vous souhaitez que ce soit uniquement CSS, la logique de désactivation doit être définie par CSS.
Pour déplacer la logique dans les définitions CSS, vous devrez utiliser des sélecteurs d'attributs. Voici quelques exemples :
Désactivez le lien qui a une href exacte: =
Vous pouvez choisir de désactiver les liens qui contiennent une valeur href spécifique comme ceci:
<a href="//website.com/exact/path">Exact path</a>
[href="https://stackoverflow.com//website.com/exact/path"]{
pointer-events: none;
}
Désactivez un lien contenant un morceau de chemin: *=
Ici, tout lien contenant /keyword/
dans path sera désactivé
<a href="//website.com/keyword/in/path">Contains in path</a>
[href*="/keyword/"]{
pointer-events: none;
}
Désactivez un lien qui commence par: ^=
l' [attribute^=value]
opérateur cible un attribut qui commence par une valeur spécifique. Vous permet de supprimer les sites Web et les chemins d'accès racine.
<a href="//website.com/begins/with/path">Begins with path</a>
[href^="//website.com/begins/with"]{
pointer-events: none;
}
Vous pouvez même l'utiliser pour désactiver les liens non https. Par exemple :
a:not([href^="https://"]){
pointer-events: none;
}
Désactivez un lien qui se termine par: $=
L' [attribute$=value]
opérateur cible un attribut qui se termine par une valeur spécifique. Il peut être utile de supprimer les extensions de fichier.
<a href="/path/to/file.pdf">Link to pdf</a>
[href$=".pdf"]{
pointer-events: none;
}
Ou tout autre attribut
Css peut cibler n'importe quel attribut HTML. Peut - être rel
, target
, data-custom
et ainsi de suite ...
<a href="#" target="_blank">Blank link</a>
[target=_blank]{
pointer-events: none;
}
Combinaison de sélecteurs d'attributs
Vous pouvez enchaîner plusieurs règles. Disons que vous souhaitez désactiver tous les liens externes, mais pas ceux qui pointent vers votre site Web:
a[href*="//"]:not([href*="my-website.com"]) {
pointer-events: none;
}
Ou désactivez les liens vers les fichiers pdf d'un site Web spécifique:
<a href="//website.com/path/to/file.jpg">Link to image</a>
[href^="//website.com"][href$=".jpg"] {
color: red;
}
Prise en charge du navigateur
Les sélecteurs d'attributs sont pris en charge depuis IE7. :not()
sélecteur depuis IE9.