深入理解CSS中的UI伪类
伪类(Pseudo classes)是选择符的螺栓,用来指定一个或者与其相关的选择符的状态。它们的形式是 selector:pseudo class { property: value; },简单地用一个半角英文冒号(:)来隔开选择符和伪类。
伪类可以分为两种:
UI( User Interface,用户界面)伪类会在 HTML 元素处于某个状态时(比如鼠标
指针位于链接上),为该元素应用 CSS 样式。
结构化伪类会在标记中存在某种结构上的关系时(如某个元素是一组元素中的第
一个或最后一个),为相应元素应用 CSS 样式。
UI伪类
链接伪类
针对链接的伪类一共有4个,因为链接始终会处于如下4种状态之一。
Link
Visited
Hover
Active
提示:由于这4个伪类的特指度相同,如果不按照这里列出的顺序使用它们,浏览器可能不会显示预期效果。方便记忆:LoVe? HA! 大写字母就是每个伪类的头一个字母。
提示:一个冒号( : )表示伪类,两个冒号( :: )表示 CSS3 新增的伪元素。
focus伪类
表单中的文本字段在用户单击它时会获得焦点,然后用户才能在其中输入字符。
例如:input:focus {border:1px solid blue;}
上面一行代码会在光标位于 input 字段中时,为该字段添加一个蓝色边框。这样可以让用户明确地知道输入的字符会出现在哪里。
target伪类
如果用户点击一个指向页面中其他元素的链接,则那个元素就是目标( target),可以
用:target 伪类选中它。
例如:对于这个链接:<a href="#more_info">More Information</a>
位于页面的其它地方、ID 为 more_info 的那个元素就是目标。
假设该元素为这样:<h2 id="more_info">This is the information you are looking for.</h2>
那么,CSS规则:#more_info:target {background:#eee}
会在用户单击链接转向 ID 为 more_info 的元素时,为该元素添加灰色背景。
维基百科在其引证中大量使用了:target 伪类。维基百科的引证链接就是正文里那些
不起眼的数字链接。引证本身则位于长长的页面的最下方。如果没有:target 应用的
突出显示,很难知道你点击的链接对应着一大堆引证中的哪一个。
结构化伪类
结构化伪类可以根据标记的结构应用样式,比如根据某元素的父元素或前面的同胞元素是什么。
first-child和:last-child
格式:
- e:first-child
- e:last-child
示例:
- ol.results li:first-child {color:blue;}
- nth-child
格式:
- e:nth-child(n)
示例:
- li:nth-child(3)
说明:e 表示元素名,n 表示一个数值(也可以使用 odd 或 even)