【前端从0开始】CSS——4、css伪类和伪元素

本文详细介绍了CSS中的伪类和伪元素,包括它们的定义、常用示例(如链接状态、首字母样式、before和after的应用),以及两者之间的区别。强调了CSS3中伪元素使用双冒号的规范,并提到了浏览器对伪类和伪元素的支持情况。
摘要由CSDN通过智能技术生成

伪类和伪元素

1. 伪类

1.1 定义

伪类用于向某些选择器添加特殊的效果。

1.2 超链接伪类

a 链接添加几种状态:

a:link {color:#FF0000;} /* 未访问的链接 */
a:visited {color:#00FF00;} /* 已访问的链接 */
a:hover {color:#FF00FF;} /* 鼠标划过链接 */
a:active {color:#0000FF;} /* 已选中的链接 */

1.3 元素获取

伪类可以用于选择元素,无需添加繁琐的类名:

:first-child  /* 第一个子元素 */
:last-child  /* 最后一个子元素 */
:only-child /* 只有一个子元素 */
:root  /* 根标签 */
:nth-child(n)   /* 第几个子元素 */
ul li:nth-child(1){color:#f00;}   /* 第一个子元素 - 从1开始 */ 
ul li:nth-child(2n){color:#f00;} /* 偶数行的子元素 - 2的倍数的所有元素 */ 
:nth-child(odd)  /* 奇数元素 */
:nth-child(even)  /* 偶数元素 */
:nth-last-child(-n+4) /* 后4个元素 */

2. 伪元素

2.1 定义

CSS伪元素用来添加一些选择器的特殊效果,可以美化元素或添加其他功能。最好使用双冒号,防止与伪类混淆。

2.2 ::first-letter 首字母

::first-letter 伪元素用于向文本的首字母设置特殊样式:

css

p::first-letter {color: red;}
其他常见的伪元素选择器
  • ::first-line 首行
  • ::first-letter 首字母
  • ::before 元素前插入
  • ::after 元素后插入

2.3 ::before::after 的用法总结

  • ::before 定位基准是其主元素的右上角,::after 定位基准是主元素的结尾处。
  • 当主元素没有内容时,::before::after 仍会正常工作,需要设置为行内元素并设置高度、宽度等属性。
  • content 是伪元素必需的属性。若伪元素没有内容,需赋值为空格:content: ' ';
  • ::before::after 主要用途是对元素默认样式进行美化,需要结合定位和内容。

3. 伪类与伪元素区别

  • 若要给第一项添加样式,可以添加一个类并在该类中定义对应样式。
  • 也可以通过 :first-child 伪类为第一个元素添加样式,被修饰的元素依然处于文档树中。
  • 若要给段落的第一个字添加样式,可以包裹一个元素并设置该元素的样式。
  • 也可以通过 ::first-letter 伪元素为其添加样式,但实际上文档树中并不存在这个元素。
  • 伪类操作文档树中已有的元素,伪元素则创建了文档树外的元素。区别在于是否创建了一个文档树之外的元素。

CSS3规范要求使用双冒号(::)表示伪元素,以区分伪元素和伪类,如 ::before::after 伪元素使用双冒号(::),:hover:active 伪类使用单冒号(:)。大部分浏览器支持伪元素的双冒号(::)表示方法,建议使用双冒号的写法以更好地区分伪类和伪元素。

css

Please note that the content has been reformatted in Markdown format, but you might need to review and adjust the formatting based on your specific requirements.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值