前端:伪元素到底是一个还是两个冒号?
本帖最后由 clearwater 于 2020-2-14 13:08 编辑1、由于能量有限,所以我只给前两位,回答正确,并且能帮我理解的大神评分。后面的人的答案如果雷同,我只能在此表示感谢了。请恕不一一评分了。
2、请口下留情,不要来讥讽我;另外不要来回答与我的问题无关的水帖。比如:感谢分享,路过,帮顶,我也不懂。
我想请教一下,伪元素前面到底是一个冒号,还是两个冒号?
还是一个或两个冒号都可以?
我在学习某前端的视频,学到伪元素时,视频老师说,两个冒号。但是我去复习前面的知识时,发现他在清除浮动时,用的是一个冒号。(结果显示都是对的。)以下截图都是老师的代码和笔记。
不过我有点乱了,请大神澄清一下,该咋用呢?
清楚一点:
单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。
伪元素由双冒号和伪元素名称组成。双冒号是在css3规范中引入的,用于区分伪类和伪元素。但是伪类兼容现存样式,浏览器需要同时支持旧的伪类,比如:first-line、:first-letter、:before、:after等。
对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的。
提醒,如果你的网站只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全。 只要兼容现代浏览器如 webkit、firefox、opera等浏览器,对于伪元素采用双冒号的写法,要是非要兼容IE浏览器,用CSS2的单冒号写法比较安全。 我一直都是before和after用双,其他的用单 ixeliap 发表于 2020-2-13 14:37
清楚一点:
单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。
伪元素由双冒号和伪元素名称组成。双冒 ...
提醒,如果你的网站只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全。
网站不是给所有访问人的人来看的吗? 谁知道他们用啥浏览器啊? 那我该咋选?
{:1_904:}
@氖气
求助大师。{:1_893:}{:1_904:} 网站不是给所有访问人的人来看的吗? 谁知道他们用啥浏览器啊? 那我该咋选?
哈哈楼主真可爱,我用简单通俗的方式给你理解吧
:单冒号是CSS2正确且正常写法
::双冒号 是CSS3新写法且兼容性写法
兼容性写法就是给不同浏览器解析不同的元素
举例
你用单冒号:AAA---->在IE浏览器下正常,如果使用谷歌或者火狐之类的浏览器就会页面错位等等
如果在用双冒号做兼容性处理::AAA--->不同的浏览器就会自动区分解析。
所以楼主要理解兼容性是啥意思
Takitooru 发表于 2020-2-13 14:56
网站不是给所有访问人的人来看的吗? 谁知道他们用啥浏览器啊? 那我该咋选?
哈哈楼主真可爱,我用简单通 ...
谢谢大师。
{:1_893:} 单冒号用于伪类的书写,双冒号用于伪元素的书写。伪类为了兼容旧有样式,:after和::after都是一样的作用。
伪类和伪元素的区别:伪元素是虚拟元素,有类似dom结构这样的功能,伪类是虚拟类名,有类似选择器这样的功能。
伪类有 :link :hover :active :visited :focus :first-child。
伪元素有 ::before ::after。 我觉得还是不是很明白。
我学习的视频老师提到,CSS3,象IE6,7,8 是不兼容的。
如果说,双冒号,是伪元素的CSS3的话,是不是不兼容IE老版本? 我觉得前面的ixe大神说法,让我比较能接受。
P.S. 伪类我搞明白了。我问的,只是伪元素。不要再把伪类拖进来,否则我的脑子不够用辣。
页:
[1]
2