ホームページ >ウェブフロントエンド >CSSチュートリアル >私の :visited CSS スタイルが最新のブラウザで機能しないのはなぜですか?

私の :visited CSS スタイルが最新のブラウザで機能しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-02 00:12:12332ブラウズ

Why Doesn't My :visited CSS Style Work in Modern Browsers?

:visited CSS スタイルが機能しないのはなぜですか?

CSS エクスプロイトを防止する最近の試みとして、セキュリティ機能が導入されました。 Firefox 4、Internet Explorer 9、Chrome などの最新のブラウザに実装されているため、:visited 疑似クラスの機能が制限されます。これは、質問で提供されているコード スニペットが意図したとおりに機能しない理由を説明しています。

コードでは、リンクにアクセスしたときにリンクの外観を変更するルールが定義されており、フォントの太さを標準に設定し、色を黒にします。ただし、このコードを Internet Explorer または Chrome で開くと、アクセスした後でもリンクは太字のままになります。

アクセスしたリンクのフォントの太さを変更すると要素の幅に影響を与える可能性があるため、セキュリティ上の問題が発生します。したがって、ブラウザはアクセスしたリンクのフォントの太さを変更する機能を制限していますが、このセキュリティ手段の回避を防ぐために追加の保護も実装しています。

これらの保護には次のものが含まれます。

  • ウィンドウ.getComputedStyle() および同様の関数は、リンクが訪問されていないことを示す値を返します。
  • 兄弟を使用した隣接要素セレクター (例:visited span) は、リンクが未訪問であるかのようにスタイル設定されます。
  • ネストされたリンク要素を含む特定のシナリオでは、一致する要素は、リンクが未訪問であるかのようにレンダリングされる場合があります。

これらのセキュリティ機能の結果、現時点ではこの問題に対する実行可能な回避策はありません。 :visited 疑似クラスは、潜在的な悪用を防ぐために、ほとんどの最新のブラウザで事実上制限されています。

以上が私の :visited CSS スタイルが最新のブラウザで機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。