CSS Selector 之 Pseudo-Classes & Pseudo-Elements

发布时间: 2016-11-13 17:20:52 作者: 大象笔记

Pseudo-Class & Pseudo-Elements 这两个名词起的非常不友好,让人看了完全摸不着头脑。可想而知,到了国内,一定有土鳖将其翻译成“伪类”/“伪元素”。伪类。。。好吧,听上去还不如叫变态假面。

首先看一下 MDN 上的解释

A CSS pseudo-class is a keyword added to selectors that specifies a special state of the element to be selected. For example :hover will apply a style when the user hovers over the element specified by the selector.

我觉得

更容易记忆

链接的 pseudo class

段落的 pseudo elements

CSS3 的新语法

CSS3 中为了区分 pseudo class 与 pseudo elements, 为 pseudo elements 增加了一个冒号。例如,::first-letter.

但是,同样这会带来兼容性的问题,IE8 及之前版本并不支持双冒号的写法。当然,我觉得 CSS3 这是多此一举。

在此记录一些常用的 pseudo class & pseudo elements. 要查看更多的,MDN 是个好去处,还有对于的浏览器兼容性说明。

:focus

pseudo class. 例如,点击了一个输入框,将焦点至于其中,或者 TAB 到了该元素上。

:before & :after

pseudo element. 就是在某个元素前/后加入指定内容,当然我并不觉得这个功能很实用,因为后台模板完全可以处理。除非是你没有修改模板的权限时,只能通过 css 的方式进行修改。

:first-child & :last-child & :nth-child

pseudo class (我不能理解,这为何不是 pseudo element?)。

注意,IE9 之后才支持 :nth-child, 所以想给 table tr 加上斑马线效果,最好还是使用 js add class 去实现。

参考

我是一名山东烟台的开发者,联系作者