2016-04-10 4 views
1

私はCSSに慣れていないし、擬似クラスと同等のものを書く別の方法があるのだろうかと疑問に思っていた。link:サポートされていないリンク?CSS擬似クラス:リンクはサポートされていません。同等のものはありますか?

+0

http://caniuse.com/#search=%3Alink - IE6はサポートが不足していますが、今心配する必要はないと思います。 –

+1

':matches(:any-link:not(:visited) ) 'は同等ですが、ブラウザのサポートはずっと少なくなっています。 – Oriol

+0

@ Zoltan Toth:その説明は誤解を招く - リンクはCSS2.1セレクタではなく、IE6は確かにサポートしています。 – BoltClock

答えて

2

理論的には、セレクタ-4は、あなたが:any-link:not(:visited)を書くことができますが、あなたはおろか:any-link、ブラウザの回帰にもかかわらず、:visitedなく:linkをサポートする任意のブラウザを見つけるのは難しい押されもしようとしている中で。

リンク擬似クラスそのものがドキュメントのセマンティクスに基づいて異なる要素と一致するため、少し幅広くサポートされるセレクタでは、ドキュメント言語に関する知識が必要です。 HTMLにおいて、:linkは、次のレベル3セレクタリストとして表すことができる。

a[href]:not(:visited), area[href]:not(:visited), link[href]:not(:visited) 

同じ警告が適用されます。

のリンク疑似クラスのをサポートしているブラウザについて質問している場合は、上記セレクタリストから:not(:visited)を削除してください。擬似クラスをサポートしていないブラウザでの訪問度に基づいてリンクを照合する方法を尋ねる場合は、不可能になります。しかし、リンク疑似クラスのサポートが不十分なブラウザは知られていないので、ウェブサイトを作っている場合はこれが問題になることはありません。


CSS1CSS2.1のみa要素に適用する:link:visitedを定義すること注 - スタンドアロンSelectors標準(レベル3まで)が代わりに文書言語に延期、及びHTML、現在の定義の場合上記は、HTML5によって提供されます。これは理論的には、以外の要素のリンク疑似クラスをサポートしていないIE6(IE7については不明)を含むブラウザは、CSS6準拠ではなくCSS1準拠に設計されているためです。

実際には、リンク疑似クラスを使用してareaまたはlinkの要素に一致するかどうか、そして最初にIE7に戻ってくるブラウザをサポートしているかどうかによって異なります。あなたがareaまたはlink要素でそれらを使用しない著者の99.9%のような人なら、これは実際にはあなたにとってまったく何も意味しません。

0

セレクタ({}は非常に短いので追加されます)は、すべての擬似クラスに適用されますが、a:linkは、まだ訪問していないURLの特定のスタイリングを上書きします。

誰かが非常に古いバージョンのInternet Explorerについて言及しました。 CSSを初めてお使いの場合は、最初にを現在のブラウザに集中させる必要があります。この時点で学んでいるなら、サポートしてくれるIEの最も古いバージョンは、CSSを使って作業することがあなたの将来のキャリアの一部になるなら、IE11です。

+0

ああ大丈夫だよ!しかし、理論的な知識だけでは、擬似クラスがサポートされていない場合、セレクタを等価で書く方法を教えてください。 –

+0

CSSでは、セレクタ用のデリミネータはカンマ: 'a:link、a {color:#aaa;} 'です。たとえば、十分に進んだ人は' a'部分をセレクタから削除します。 – John

+0

リンクをサポートしていないブラウザでは、とにかくルール全体が破棄されます。セレクタを分割してスタイルを複製する必要があります。 – BoltClock

関連する問題