clearwater 发表于 2020-2-13 14:29

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

本帖最后由 clearwater 于 2020-2-14 13:08 编辑

1、由于能量有限,所以我只给前两位,回答正确,并且能帮我理解的大神评分。后面的人的答案如果雷同,我只能在此表示感谢了。请恕不一一评分了。
2、请口下留情,不要来讥讽我;另外不要来回答与我的问题无关的水帖。比如:感谢分享,路过,帮顶,我也不懂。

我想请教一下,伪元素前面到底是一个冒号,还是两个冒号?

还是一个或两个冒号都可以?

我在学习某前端的视频,学到伪元素时,视频老师说,两个冒号。但是我去复习前面的知识时,发现他在清除浮动时,用的是一个冒号。(结果显示都是对的。)以下截图都是老师的代码和笔记。

不过我有点乱了,请大神澄清一下,该咋用呢?

ixeliap 发表于 2020-2-13 14:37

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

ixeliap 发表于 2020-2-13 14:34

只要兼容现代浏览器如 webkit、firefox、opera等浏览器,对于伪元素采用双冒号的写法,要是非要兼容IE浏览器,用CSS2的单冒号写法比较安全。

含笑阁 发表于 2020-2-13 14:37

我一直都是before和after用双,其他的用单

clearwater 发表于 2020-2-13 14:41

ixeliap 发表于 2020-2-13 14:37
清楚一点:
单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。
伪元素由双冒号和伪元素名称组成。双冒 ...

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

网站不是给所有访问人的人来看的吗? 谁知道他们用啥浏览器啊? 那我该咋选?

{:1_904:}

clearwater 发表于 2020-2-13 14:52

@氖气

求助大师。{:1_893:}{:1_904:}

Takitooru 发表于 2020-2-13 14:56

网站不是给所有访问人的人来看的吗? 谁知道他们用啥浏览器啊? 那我该咋选?
哈哈楼主真可爱,我用简单通俗的方式给你理解吧

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

如果在用双冒号做兼容性处理::AAA--->不同的浏览器就会自动区分解析。
所以楼主要理解兼容性是啥意思

clearwater 发表于 2020-2-13 15:12

Takitooru 发表于 2020-2-13 14:56
网站不是给所有访问人的人来看的吗? 谁知道他们用啥浏览器啊? 那我该咋选?
哈哈楼主真可爱,我用简单通 ...

谢谢大师。

{:1_893:}

知心 发表于 2020-2-13 15:14

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

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

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

    伪元素有 ::before ::after。

clearwater 发表于 2020-2-13 15:21

我觉得还是不是很明白。

我学习的视频老师提到,CSS3,象IE6,7,8 是不兼容的。

如果说,双冒号,是伪元素的CSS3的话,是不是不兼容IE老版本? 我觉得前面的ixe大神说法,让我比较能接受。


P.S. 伪类我搞明白了。我问的,只是伪元素。不要再把伪类拖进来,否则我的脑子不够用辣。
页: [1] 2
查看完整版本: 前端:伪元素到底是一个还是两个冒号?