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]
オペレータの目標、特定の値で始まる属性。Webサイトとルートパスを破棄できます。
<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;
}
または、特定のWebサイトのPDFファイルへのリンクを無効にします。
<a href="//website.com/path/to/file.jpg">Link to image</a>
[href^="//website.com"][href$=".jpg"] {
color: red;
}
ブラウザのサポート
属性セレクターはIE7以降でサポートされています。:not()
IE9以降のセレクタ。