CSS 中双冒号后跟after 或before ,而伪类是单冒号后跟after 或before ?

html-css026

CSS 中双冒号后跟after 或before ,而伪类是单冒号后跟after 或before ?,第1张

单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。

伪元素由双冒号和伪元素名称组成。双冒号是在css3规范中引入的,用于区分伪类和伪元素。但是伪类兼容现存样式,浏览器需要同时支持旧的伪类,比如:first-line、:first-letter、:before、:after等。

对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的。

提醒,如果你的网站只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全

一般是伪类.

比如:

a:hover { color:red} 表示鼠标悬停在a标签上时的样式.

li:after { content:"你好"color:red} 表示在所有li标签内部的后面添加"你好",并且颜色为红色(CSS3)

"::"是作用域限定符或者称作用域运算符.例如命名空间

"::"是用它来声明函数是属于哪个类的.

补充:"::"作用:

A、标识作用域级别

B、标识成员所属哪个类

C、限定成员作用范围

D、指出作用域的范围

不过,你这里的不属于上面任何一个,应该是写css样式的人输入错误而已,多敲了一个分号而已

:before是一个伪元素,这个伪元素允许创作人员在元素内容的最前面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。

举例:

css样式:

#div1 { border: 1px solid #090padding: 10pxfont-size: 14pxmargin-bottom: 10px} #div1:before{ content:"【"color:#f00font-family:Arial} #div1:after{ content:"】"color:#f00font-family:Arial}

html代码:

<div id="div1">插入内容</div>

你会看到div内并没写【】,而浏览器却能看到