热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

CSS中伪类和伪元素学习总结

·css伪类:用于向某些选择器添加特殊的效果。(如给连接添加不同状态的效果)。·css伪元素:用户将特殊的效果添加到某些选择器。(如在div前后添加小三角,或者用于实现一些checkbok比较好看的效

·css伪类:用于向某些选择器添加特殊的效果。(如给连接添加不同状态的效果)。

·css伪元素:用户将特殊的效果添加到某些选择器。(如在div前后添加小三角,或者用于实现一些checkbok比较好看的效果等)。

可使用伪元素来清除浮动,例如:

.clearfix::after{
display:block;
clear:both;
content:''; /*content属性必须设置,否则不生效*/
visibility:0;
height:0;
}


-伪类有:

W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2)。

属性

描述

CSS

:active

向被激活的元素添加样式。

1

:focus

向拥有键盘输入焦点的元素添加样式。

2

:hover

当鼠标悬浮在元素上方时,向元素添加样式。

1

:link

向未被访问的链接添加样式。

1

:visited

向已被访问的链接添加样式。

1

:first-child

向元素的第一个子元素添加样式。

2

:lang

向带有指定 lang 属性的元素添加样式。

2

 

-伪元素有:

W3C:"W3C" 列指示出该属性在哪个 CSS 版本中定义(CSS1 还是 CSS2)。

属性

描述

CSS

:first-letter

向文本的第一个字母添加特殊样式。

1

:first-line

向文本的首行添加特殊样式。

1

:before

在元素之前添加内容。

2

:after

在元素之后添加内容。

2


转:https://segmentfault.com/a/1190000000484493

区别

这里用伪类 :first-child 和伪元素 :first-letter 来进行比较。

p>i:first-child {color: red}
<p>
<i>firsti>
<i>secondi>
p>

 //伪类 :first-child 添加样式到第一个子元素
如果我们不使用伪类,而希望达到上述效果,可以这样做:

.first-child {color: red}
<p>
<i class="first-child">firsti>
<i>secondi>
p>

即我们给第一个子元素添加一个类,然后定义这个类的样式。那么我们接着看看为元素:

p:first-letter {color: red}
<p>I am stephen lee.p>

 //伪元素 :first-letter 添加样式到第一个字母
那么如果我们不使用伪元素,要达到上述效果,应该怎么做呢?

.first-letter {color: red}
<p><span class='first-letter'>Ispan> am stephen lee.p>

即我们给第一个字母添加一个 span,然后给 span 增加样式。
两者的区别已经出来了。那就是:

伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。

总结

伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。

:Pseudo-classes
::Pseudo-elements

但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者。


 


推荐阅读
author-avatar
Andrew_Chaoyen_liu_328
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有