【问题标题】:colour is override and yet text decoration in css颜色被覆盖,但css中的文本装饰
【发布时间】:2019-10-23 17:56:52
【问题描述】:

我正在尝试 css 中锚标记的伪代码,即链接、访问、悬停和活动。 html是:

    <a href="https://www.w3schools.com/html/" target="_blank">
        w3school
    </a>

css 是:

    a:link {
        color: blue;
        text-decoration: overline underline;
    }

    a:visited {
        color: green;
        text-decoration: line-through;
    }

    a:hover {
        color: red;
        text-decoration: underline;
    }

    a:active {
        color: black;
        text-decoration: overline;
    }

被访问后,文字颜色为绿色,正确。但是,文本装饰是上划线和下划线,而不是 line-through:visited is partially working。似乎颜色是级联的,文本装饰不是。 有人可以解释一下吗?

【问题讨论】:

标签: html css pseudo-class


【解决方案1】:

如今的浏览器限制了您可以为 :visited 状态应用哪些样式 - 因为否则,通过 JavaScript 检查布局中的某些更改可以确定您是否已经访问了外部 URL。

https://developer.mozilla.org/en-US/docs/Web/CSS/:visited#Styling_restrictions:

样式限制 出于隐私原因,浏览器严格限制您可以使用此伪类应用哪些样式,以及如何使用它们:

允许的 CSS 属性是 color、background-color、border-color、border-bottom-color、border-left-color、border-right-color、border-top-color、column-rule-color 和 outline-颜色。

https://developer.mozilla.org/en-US/docs/Web/CSS/Privacy_and_the_:visited_selector:

大约在 2010 年之前,CSS :visited 选择器允许网站发现用户的浏览历史并确定用户访问过哪些网站。这是通过 window.getComputedStyle 和其他技术完成的。这个过程执行速度很快,不仅可以确定用户在网络上的位置,还可以用来猜测有关用户身份的大量信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2014-02-22
    • 2010-12-21
    • 2018-11-12
    相关资源
    最近更新 更多