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 の悪用を阻止するために、ブラウザは次のような特定の安全対策を採用しています。
結論
これ制限は、CSS エクスプロイトから保護することを目的としたセキュリティ機能です。残念ながら、Internet Explorer および Chrome で :visited font-weight を変更する既知の回避策はありません。
以上がIE と Chrome でアクセスしたリンクが太字のままになるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。