Si desea que sea solo CSS, la lógica de desactivación debe definirse mediante CSS.
Para mover la lógica en las definiciones CSS, deberá usar selectores de atributos. Aquí hay unos ejemplos :
Deshabilite el enlace que tiene un href exacto: =
Puede optar por desactivar los enlaces que contienen un valor href específico de esta manera:
<a href="//website.com/exact/path">Exact path</a>
[href="https://stackoverflow.com//website.com/exact/path"]{
pointer-events: none;
}
Deshabilite un enlace que contiene un fragmento de ruta: *=
Aquí, cualquier enlace que contenga /keyword/
en la ruta será deshabilitado
<a href="//website.com/keyword/in/path">Contains in path</a>
[href*="/keyword/"]{
pointer-events: none;
}
Deshabilite un enlace que comienza con: ^=
el [attribute^=value]
operador apunta a un atributo que comienza con un valor específico. Le permite descartar sitios web y rutas raíz.
<a href="//website.com/begins/with/path">Begins with path</a>
[href^="//website.com/begins/with"]{
pointer-events: none;
}
Incluso puede usarlo para deshabilitar enlaces que no sean https. Por ejemplo :
a:not([href^="https://"]){
pointer-events: none;
}
Deshabilite un enlace que termina con: $=
El [attribute$=value]
operador apunta a un atributo que termina con un valor específico. Puede ser útil para descartar extensiones de archivo.
<a href="/path/to/file.pdf">Link to pdf</a>
[href$=".pdf"]{
pointer-events: none;
}
O cualquier otro atributo
Css puede apuntar a cualquier atributo HTML. Podría ser rel
, target
, data-custom
y así sucesivamente ...
<a href="#" target="_blank">Blank link</a>
[target=_blank]{
pointer-events: none;
}
Combinación de selectores de atributos
Puedes encadenar múltiples reglas. Supongamos que desea deshabilitar todos los enlaces externos, pero no aquellos que apuntan a su sitio web:
a[href*="//"]:not([href*="my-website.com"]) {
pointer-events: none;
}
O deshabilite los enlaces a archivos pdf de un sitio web específico:
<a href="//website.com/path/to/file.jpg">Link to image</a>
[href^="//website.com"][href$=".jpg"] {
color: red;
}
Soporte del navegador
Los selectores de atributos son compatibles desde IE7. :not()
selector desde IE9.