为什么伪类:访问不能正常工作,如font-size或text-shadow根本不起作用,但颜色工作

时间:2018-03-14 12:10:37

标签: html5 css3

color属性可以正常工作,但其他两个属性(font-size和text-shadow)不起作用。访问链接时,其字体大小应减少到20像素,并应用text-shadow属性,但不会

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /* unvisited link */

    a{
        font-size: 30px;
    }

    a:link {
        color: red;
    }
    /* visited link */

    a:visited {
        color:orange;
        font-size: 20px;
        text-shadow: 5px 5px 5px orange;
    }
    /* mouse over link */

    a:hover {
        color:hotpink; 
        font-size: 20px;
        text-shadow: 5px 5px 5px hotpink;
    }
    /* selected link */

    a:active {
        color: blue;
    }
    </style>
</head>

<body>
    <a class="stack" href="https://stackoverflow.com/">stackoverflow</a>
</body>

</html>

1 个答案:

答案 0 :(得分:1)

它不适用于较新的浏览器

原因是隐私。

如果您能够通过访问状态影响CSS样式,则可以使用javascript来推断该人的位置。 然后,营销脚本可以在您的文档中放置大量的屏幕外链接,然后如果您在amazon.com,mcdonalds.com,pornhub.com,mylittlepony.com,facebook.com等等,则将它们迭代给驴子。并修改广告到您访问量最大的网站。

这就是为什么标准限制了样式更改和阅读的原因:访问过的属性。

颜色适用于visiblity方面,但是当您尝试通过javascript访问颜色时,您将获得返回的默认颜色,就好像它没有被访问过一样。

&#13;
&#13;
$('a').each(function(index,elem) {
    $el = $(elem);
    console.log($el.text(),$el.css('color'),"red = 0, green = 0, blue = 255 ");
})
&#13;
a {
  color: blue;
}
a:visited {
  color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="https://stackoverflow.com">stackoverflow.com</a>
<a href="https://theanswertotheuniverselifeandeverythingis.com">unvisited I hope</a>
&#13;
&#13;
&#13;

即使使用html canvas截图技术,您也无法通过像素采样来获取访问过的网址。它也将呈现为未访问。

Example of visited links rendering default

他们真的非常重视隐私保护。