html文档visted,:visited | CSS属性参考

CSS :visited伪类用于选择页面中被访问过的超链接元素,并为这些超链接设置样式。

使用:visited伪类时需要特别注意,只有带有href属性的超链接元素才会被:visited伪类匹配。例如:

随机链接

内部链接

外部链接

不带href属性的超链接

通常超链接元素在不同的状态下可以使用以下4个不同的伪类来为它设置样式::link、:visited、:hover和active。

当你在CSS中为超链接元素同时定义了以上4个伪类的时候,要注意它们的书写顺序。正确的书写顺序是::link—:visited—:hover—:active。抽取第一个字母是“LVHA”,你可以把它记忆为“LoVe HAte”(喜欢讨厌)。

a:link {

/* style links */

}

a:visited {

/* style visited link */

}

a:hover {

/* hover styles */

}

a:active {

/* active state styles */

}

使用:visited伪类的隐私安全问题

使用:visited伪类时有一个重要的隐私安全问题需要注意。一些高手可以通过编写脚本,利用:visited伪类来查看浏览器的浏览历史。为了防止由这个引起的隐私问题,现代浏览器都会限制能够在:visited伪类上添加的样式。这些限制能够阻止脚本从用户访问过的页面中查找用户的浏览历史。可以查看Mozilla的David Baron发表的Preventing attacks on a user's history through CSS :visited selectors这篇文章。

在David Baron的解决方案中,被访问过的超链接仅能添加下面的一些CSS样式:color、background-color、border-*-color、outline-color和column-rule-color。

另外,如果对被访问的超链接使用background-color属性,需要注意一些问题:只有在超链接的:link状态时为超链接设置了一个背景颜色,在:visited状态时才能够使用background-color属性。

例如下面的设置不会使超链接的:visited状态有背景颜色出现:

a:link {

color: white;

background-color: transparent;

/* 或者没有设置背景颜色 */

}

a:visited {

color: white;

background-color: black;

}

如果要使超链接的:visited状态有背景颜色出现,代码应该类似下面:

a:link {

color: white;

background-color: #eee;

}

a:visited {

color: white;

background-color: black;

}

示例代码

下面的代码使用LVHA原则为页面中的超链接元素设置样式。

a:link {

color: skyblue;

border-bottom: 1px solid #aaa;

}

a:visited {

color: grey;

}

a:hover {

border-bottom: 1px solid skyblue;

}

a:active {

background-color: skyblue;

color: white;

}

在线演示

下面的例子将超链接元素的:visited状态设置为深色背景和白色文字。

a:link{

background-color: white;

color: #19b5fe;

}

a:visited {

background-color: #2d3e50;

padding: .5em;

color: #fff;

}

浏览器支持

所有的现代浏览器都支持:visited伪类,包括:Chrome, Firefox, Safari, Opera, Internet Explorer 以及 Android 和 iOS。

相关阅读

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值