ホームページ > ウェブフロントエンド > CSSチュートリアル > IE と Chrome でアクセスしたリンクが太字のままになるのはなぜですか?

IE と Chrome でアクセスしたリンクが太字のままになるのはなぜですか?

Patricia Arquette
リリース: 2024-12-24 22:02:17
オリジナル
717 人が閲覧しました

Why Do My Visited Links Remain Bold in IE and Chrome?

IE と Chrome で :visited CSS スタイルが太字のままになる理由

特定の HTML ドキュメントで、ユーザーは太字のままのリンクに遭遇することがよくあります。訪問した後でもフォーマットします。この問題は、Internet Explorer や Chrome などのブラウザで発生します。この問題の根本を掘り下げてみましょう。

精査中の HTML および CSS コードは次のとおりです。

<html>
    <head>
        <style>
            A {font-weight: bold; color:black;}
            A:visited {font-weight: normal; color: black; }
            .Empty {font-weight: bold; color: black; }
        </style>
    </head>
    <body>
        <a href="http://mysite">click me</a>
    </body>
</html>
ログイン後にコピー

通常、リンクにアクセスすると、:visited 疑似クラスはその外観を変更する必要がありますが、この場合、フォントの太さは太字のままです。

セキュリティ機能制限事項

この動作の背後にある原因は、Firefox 4、Internet Explorer 9、Chrome などの最新のブラウザーに実装されているセキュリティ対策です。この制限により、訪問したリンクのフォントの太さを変更することで発生する可能性のある CSS エクスプロイトが防止されます。

GetComputedStyle() の動作

これらのブラウザでは、getComputedStyle() は通常、次の値を返します。リンクを訪問していないかのように訪問しました。ただし、悪意のある攻撃者が font-weight を使用して要素の幅を変更することで、これを悪用する可能性があります。したがって、:visited リンクのフォントの太さの変更を許可すると、セキュリティ対策が損なわれる可能性があります。

ブラウザの安全対策

CSS の悪用を阻止するために、ブラウザは次のような特定の安全対策を採用しています。

  • getComputedStyle() は常に、リンクが一度も作成されていないことを示します。
  • 兄弟セレクター (例:visited span) は、隣接する要素を未訪問としてレンダリングします。
  • ネストされたリンクを含むまれなケースでは、ターゲットの要素も未訪問としてレンダリングされる場合があります。

結論

これ制限は、CSS エクスプロイトから保護することを目的としたセキュリティ機能です。残念ながら、Internet Explorer および Chrome で :visited font-weight を変更する既知の回避策はありません。

以上がIE と Chrome でアクセスしたリンクが太字のままになるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート