伪元素到底是一个还是两个冒号?

清楚一点:
单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。
伪元素由双冒号和伪元素名称组成。双冒号是在css3规范中引入的,用于区分伪类和伪元素。但是伪类兼容现存样式,浏览器需要同时支持旧的伪类,比如:first-line、:first-letter、:before、:after等。
对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的。
提醒,如果你的网站只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全。

:单冒号 是CSS2正确且正常写法
::双冒号 是CSS3新写法且兼容性写法
兼容性写法就是给不同浏览器解析不同的元素
举例
你用单冒号 :AAA ---->在IE浏览器下正常,如果使用谷歌或者火狐之类的浏览器就会页面错位等等

如果在用双冒号做兼容性处理 ::AAA —>不同的浏览器就会自动区分解析。

单冒号用于伪类的书写,双冒号用于伪元素的书写。伪类为了兼容旧有样式,:after和::after都是一样的作用。

伪类和伪元素的区别:伪元素是虚拟元素,有类似dom结构这样的功能,伪类是虚拟类名,有类似选择器这样的功能。

伪类有 :link :hover :active :visited :focus :first-child。

伪元素有 ::before ::after。

你可能感兴趣的:(三大基础语言)