非常教程

CSS参考手册

杂项 | Miscellaneous

Privacy and the :visited selector

从历史上看,CSS :visited选择器已经成为网站查询用户历史的一种方式,通过使用getComputedStyle()或其他技术来浏览用户的历史记录,找出用户访问的网站。这可以快速完成,不仅可以确定用户在网上的位置,还可以用来猜测关于用户身份的大量信息。

为了缓解这个问题,Gecko 2已经做了一些修改,以限制访问链接可以获得的信息量。

善意的小谎言

第一个变化就是在某些情况下,Gecko会欺骗网络应用程序。特别是,getComputedStyle()类似的功能,例如element.querySelector()总是返回值,表示用户从未访问过任何页面上的链接。

另外,如果你使用一个同级连接器,例如:visited + span,在<span>将作为如果该链接是未访问过的风格。

而且,在极少数情况下,如果使用嵌套的链接元素,并且正在匹配的元素与正在测试历史记录中的链接不同,则该元素被绘制为就像该链接未被访问一样。

访问链接样式的限制

您仍然可以在视觉上对访问过的链接进行样式设置,但现在对可以使用的样式有限制。只有以下属性可以应用于访问过的链接:

  • color
  • background-color
  • border-color (及其子属性)
  • outline-color
  • fillstroke属性的颜色部分

此外,即使您可以为访问链接设置的属性,您也无法更改未访问链接和已访问链接之间的透明度,否则您将无法使用rgba()或使用hsla()颜色值或transparent关键字。

下面是一个使用带有讨论限制的样式的示例:

:link {
  outline: 1px dotted blue;
  background-color: white;
  /* The default value of background-color is 'transparent'.
     You need to specify a different value, otherwise changes on :visited don't apply */
}

:visited {
  outline-color: orange;    /* Visited links have an orange outline */
  color: yellow;            /* Visited links have yellow colored text */
  background-color: green;  /* Visited links have a green background */
}

对web开发人员的影响

总的来说,这应该会对web开发人员产生太大的影响。然而,这可能需要对网站进行以下修改:

  • 使用背景图像对链接进行样式设置,并指出它们是否已被访问将不再有效,因为只有颜色可用于对访问的链接进行样式设置。
  • 在Mazilla Hacks中privacy-related changes coming to CSS :visited

  • 在Mozilla安全博客中Plugging the CSS History Leak

  • 防止通过CSS对用户历史的攻击:visited 选择器
CSS

层叠样式表( Cascading Style Sheets )是一种用来表现 HTML 或 XML 等文件样式的计算机语言。CSS 不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS目录

1.动画和转换 | Animations & Transitions
2.背景和边框 | Backgrounds & Borders
3.基本框模型 | Basic Box Model
4.基本用户界面 | Basic User Interface
5.框对齐 | Box Alignment
6. 级联和继承 | Cascading & Inheritance
7.颜色 | Color
8. 合成与混合 | Compositing & Blending
9.条件和规则 | Conditional Rules
10.计数器样式 | Counter Styles
11.设备适配 | Device Adaptation
12.扩展 | Extensions
13.滤镜效果 | Filter Effects
14.灵活的框布局 | Flexible Box Layout
15.字体 | Fonts
16.片段模块 | Fragmentation
17.全屏 API | Fullscreen API
18. 生成内容 | Generated Content
19.网格布局 | Grid Layout
20.图像值 | Image Values
21.初始线格局 | Inline Layout
22.列表和计数器 | Lists & Counters
23.逻辑属性 | Logical Properties
24.面具 | Masking
25.媒体查询 | Media Queries
26.杂项 | Miscellaneous
27.Miscellaneous Level 1
28.Miscellaneous Level 2
29.运动路径 | Motion Path
30. 多列布局 | Multi-column Layout
31.命名空间 | Namespaces
32.项目模型 | Object Model View
33.网页媒体 | Paged Media
34.定位布局 | Positioned Layout
35.伪元素 | Pseudo-
36.节奏大小 | Rhythmic Sizing
37. Ruby布局 | Ruby Layout
38.可缩放矢量图形 | Scalable Vector Graphics
39.滚动快照 | Scroll Snap
40.选择 | Selectors
41.形状 | Shapes
42.文本 | Text
43.文字装饰 | Text Decoration
44.变换 | Transforms
45.值和单位 | Values & Units
46.变量 | Variables
47.写入模型 | Writing Modes
48.CSS 教程
49.CSS 创建
50.CSS Id 和 Class选择器
51.CSS 简介
52.CSS 盒子模型
53.CSS Table(表格)
54.CSS 列表样式(ul)
55.CSS 链接(link)
56.CSS Fonts(字体)
57.CSS Text(文本)
58.CSS Backgrounds(背景)
59.CSS Display(显示) 与 Visibility(可见性)
60.CSS 尺寸 (Dimension)
61.CSS 分组和嵌套
62.CSS 轮廓(outline)属性
63.CSS Border(边框)
64.CSS 图像透明/不透明
65.CSS 导航栏
66.CSS 伪元素
67.CSS 伪类
68.CSS Float(浮动)
69.CSS Position(定位)
70.CSS 总结
71.CSS 属性选择器
72.CSS 媒体类型
73.CSS 图像拼合技术
74.CSS 实例
75.CSS 组合选择符
76.响应式 Web 设计 – 框架
77.响应式 Web 设计 – 视频(Video)
78.CSS 提示工具(Tooltip)
79.CSS 布局 Overflow
80.CSS 计数器
81.CSS 表单