>웹 프론트엔드 >CSS 튜토리얼 >IE 및 Chrome에서 내가 방문한 링크가 굵게 유지되는 이유는 무엇입니까?

IE 및 Chrome에서 내가 방문한 링크가 굵게 유지되는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-24 22:02:17722검색

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

이유:visited CSS 스타일이 IE 및 Chrome에서 굵게 유지됩니다.

특정 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 악용을 방지합니다.

GetCompulatedStyle() 동작

이러한 브라우저에서 getCompulatedStyle()은 일반적으로 다음 값을 반환합니다. 마치 방문하지 않은 것처럼 링크를 방문했습니다. 그러나 악의적인 행위자가 글꼴 가중치를 사용하여 요소의 너비를 변경함으로써 이를 잠재적으로 악용할 수 있습니다. 따라서 :visited 링크에 대한 글꼴 두께 변경을 허용하면 보안 조치가 손상될 수 있습니다.

브라우저 보호 장치

CSS 악용을 방지하기 위해 브라우저는 다음과 같은 특정 보호 장치를 사용합니다.

  • getCompulatedStyle()은 항상 링크가 한 번도 존재하지 않았음을 나타냅니다. 방문했습니다.
  • 동위 선택자(예: :visitedspan)는 인접한 요소를 방문하지 않은 것으로 렌더링합니다.
  • 드물게 중첩된 링크와 관련된 경우 대상 요소도 방문하지 않은 것으로 렌더링될 수 있습니다.

결론

이러한 제한은 CSS 공격으로부터 보호하기 위한 보안 기능입니다. 안타깝게도 Internet Explorer 및 Chrome에서 :visited 글꼴 가중치를 수정하는 알려진 해결 방법은 없습니다.

위 내용은 IE 및 Chrome에서 내가 방문한 링크가 굵게 유지되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.