CSS(三)-- 伪类选择器与伪元素选择器

目录

“伪”是什么?

1.  伪类选择器

2.  伪元素选择器


“伪”是什么?

  • “伪”是指该选择器用来修饰不在文档树中的部分。
  • 必读:超级详细解说

1.  伪类选择器

用于当已有元素处于的某个状态(如,鼠标悬浮)时,为其添加对应的样式,这个状态是根据用户行为而动态变化

实例演示:

1. 链接样式:可以用伪类选择器设置不同状态下的链接样式,如未访问过链接、访问过链接、鼠标悬停链接等。

a:link {
  color: blue;
}
 a:visited {
  color: green;
}
 a:hover {
  color: red;
}

2. 表单元素:可以用伪类选择器设置表单元素在不同状态下的样式,如焦点、悬停、选中等。

input:focus {
  background-color: yellow;
}
 input:hover {
  background-color: lightblue;
}
 input:checked {
  border: 2px solid red;
}

3. 第一个、最后一个、奇数偶数元素:可以用伪类选择器选择第一个、最后一个以及奇数偶数位置上的元素,并应用相应的样式。

li:first-child {
  font-weight: bold;
}
 li:last-child {
  font-style: italic;
}
 p:nth-child(odd) {
  color: blue;
}
 p:nth-child(even) {
  color: green;
}

4. 已被禁用的元素:可以用伪类选择器选取已经被禁用的表单元素,并应用相应的样式。

input:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

伪类选择器的常用方法:

方法说明
:hover选择鼠标指针浮动在其上的元素
:visited选择已访问的链接
:link

选择未访问的链接

:active选择活动的链接
:focus选择获取焦点的输入字段
:not一个否定伪类,用于匹配不符合参数选择器的元素。
:first-child匹配元素的第一个子元素。
:last-child匹配元素的最后一个子元素。
:first-of-type匹配属于其父元素的首个特定类型的子元素的每个元素。
:last-of-type匹配元素的最后一个子元素。
:only-child当元素是其父元素中唯一一个子元素时,:only-child 匹配该元素。
:only-of-type当元素是其父元素中唯一一个特定类型的子元素时,:only-of-type 匹配该元素。

2.  伪元素选择器

用于创建一些不存在于文档树(即dom树)中的元素,并为其添加样式。

实例演示:

1. 插入内容:可以用伪元素选择器 ::before::after 在元素的前面或后面插入内容,比如加入引号、图标等。

p::before {
  content: "“";
}
p::after {
  content: "”";
}

2. 第一行、第一字母:可以用伪元素选择器 ::first-line::first-letter 给元素的第一行或第一个字母应用样式。

h1::first-letter {
  font-size: 2.5em;
  font-weight: bold;
}
p::first-line {
  color: red;
  font-weight: bold;
}

3. 清除浮动:可以用伪元素选择器 ::after 清除浮动影响,避免父元素因子元素浮动引起的高度塌陷问题。

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

4. 设置文本选择时的样式:可以用伪元素选择器 ::selection 给用户选择文本时的背景色、颜色等添加样式。

::selection {
  background-color: yellow;
  color: red;
}

5. 使用 ::marker 伪元素选择器可以设置列表项的标记符号的样式,例如指定它的颜色或将它移动到列表项的外部。

ul li::marker {
  content:'★';
  color: red;
  margin-right:5px;
}

伪元素选择器的常用方法:

方法说明
::before/:before:before 在被选元素前插入内容。需要使用 content 属性来指定要插入的内容。被插入的内容实际上不在文档树中。
::after/:after:after 在被元素后插入内容,其用法和特性与:before 相似。
::first-letter/:first-letter:first-letter 匹配元素中文本的首字母。被修饰的首字母不在文档树中。
::first-line/:first-line:first-line 匹配元素中第一行的文本。这个伪元素只能用在块元素中,不能用在内联元素中。
::selection::selection 匹配用户被用户选中或者处于高亮状态的部分。在火狐浏览器使用时需要添加-moz 前缀。该伪元素只支持双冒号的形式。
::placeholder

::placeholder 匹配占位符的文本,只有元素设置了 placeholder 属性时,该伪元素才能生效。

该伪元素不是 CSS 的标准,它的实现可能在将来会有所改变,所以要决定使用时必须谨慎。

::backdrop::backdrop 用于改变全屏模式下的背景颜色,全屏模式的默认颜色为黑色。该伪元素只支持双冒号的形式。

 继续学习之路:

CSS(一)-- 三种样式表

CSS(二)-- 选择器的运用(针对基本选择器和复合选择器的详细解析)

CSS(三)-- 伪类选择器与伪元素选择器

CSS(四)-- 针对字体、文本的常用基本属性

如果对你有帮助,请帮我点一下赞,我才有动力继续创作,谢谢!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值