伪类和伪元素是什么什么是伪类
2024-08-29
716 字约 3 分钟
...什么是伪类 (pseudo-classes)?
伪类可以让我们根据元素的状态变化使用 CSS。例如,当我们想要设置某元素在被指标指到时的样式,我们可以使用 :hover 伪类来改变样式。
介绍 4 个常见的伪类 (pseudo-classes) 用法
:hover
当用户的鼠标或触控板等设备放在元素上时,我们可以使用 :hover 更改元素的样式。
:link、 :visited
这两个伪类都是用在含有 href 属性的 <a> 元素上。 :link 可以调整使用者还未浏览过的链接样式,而 :visited 则可以改变使用者已浏览过的链接样式。
<a href="https://google.com">google.com</a>
<a href="https://juejin.cn">juejin.cn</a>
a:link {
color: blue;
}
a:visited {
color: red;
}

:disabled 、 :enabled
按钮元素可以设置为“禁用”状态,而 :disabled 和 :enabled 可以调整按钮在“禁用”或“非禁用”状态时的样式。
:first-child 、 :last-child
如果要在 HTML 中查找第一个或最后一个项目,可以使用 :first-child 和 :last-child。这些伪类会返回一组兄弟元素中的第一个或最后一个元素。
<div>
<p>p 第一段文字</p>
<p>p 第二段文字</p>
<div>...</div>
</div>
<div>------分隔线------</div>
<div>
<p>p 第一段文字</p>
<div>...</div>
<div>...</div>
<p>p 第二段文字</p>
</div>
p:first-child {
background: lightskyblue;
font-weight: bold;
}
p:last-child {
background: lightyellow;
font-weight: bold;
}

什么是伪元素 (pseudo-elements)?
伪元素可以在不需新增 HTML 的情况下新增额外元素。它具有多种用途,我们将在下一段中介绍一些常见的用法。
介绍 4 个常见的伪元素 (pseudo-elements) 用法
::before 和 ::after
在元素上使用 ::before 和 ::after 伪元素,会在元素中产生一个子元素,但必须在伪元素中定义 content,这个 content 可以是任何字符串,甚至可以是空字符串。
同时,我们也可以对 content 进行样式上的调整,如下代码所示。
<span class="text">This is Front-end world</span>
.text {
background-color: #171923;
color: white;
}
.text::after {
content: " ♥ Interview Guide";
background-color: #ffba10;
}

::marker
使用 ::marker 可以调整列表或摘要元素 (summary) 的项目符号和编号的样式。
<ul>
<li>Apple</li>
<li>Orange</li>
<li>Strawberry</li>
</ul>
ul ::marker {
color: red;
content: "😊";
}

::placeholder
当我们在设计表单时,会对一些元素,例如输入框 (input),加入提示文字,而 ::placeholder 可以用来设置这个提示文字的样式。
<input type="email" placeholder="[email protected]" id="email" />
input::placeholder {
color: darkcyan;
}

::first-letter
我们经常在博客文章的设计中,文章的第一段的第一个字母会有特殊的样式,以增加读者的注意力。这种样式可以轻松通过使用伪元素 ::first-letter 来实现。
<p>第一个字要蓝色</p>
p::first-letter {
color: blue;
}

如果您觉得这篇文章有帮助,请点个赞吧~
相关文章
更多文章 →css2025-03-04
CSS 实现文本省略显示【单行,2行,多行】
在 中,长文本内容可能会超出其容器的范围。为了保持良好的用户体验,我们通常会将超出的文本部分以省略号显示。本文将详细介绍如何在CSS中限制文本显示一行、两行或多行,超过部分显示省略号。 1\. 前言 限制文本显示长度并以省略号表示超出部分是常见的需求。通过CSS,可以简单地实现这一效果。我们将分别介绍单行文本、省略两行文本和多行文本的实现方法。 2\. 单行文本省略 要实现单行文本省略,主要使用以下CSS属性: : 禁止文本换行。 :...
学习面试
css2025-03-04
css中,有哪些方式可以隐藏页面元素?区别?
一、前言 在平常的样式排版中,我们经常遇到将某个模块隐藏的场景 通过 隐藏元素的方法有很多种,它们看起来实现的效果是一致的 但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法 二、实现方式 通过 实现隐藏元素方法有如下: display:none visibility:hidden opacity:0 设置height、width模型属性为0 position:absolute clip path dis...
学习面试
css2025-03-04
css实现正方形的几种方案及优缺点
前言 在电商、个人博客等网站我们或多或少都可以看到css正方形的应用场景,自适应正方形布局是必须要掌握的;接下来采黎带大家揭开css自适应正方形神秘的面纱 正方形 这很简单,设置盒子宽高都为200px就可以了 自适应正方形 青铜 提起自适应,想必都会想到 rem 、 vw 等相对单位,我们分别用这些单位来实现一下。 rem 屏幕宽度大于1200px时,字体为16px,rem的盒子的大小为 160px \ 160px; 屏幕宽度小于120...
学习面试
css2025-03-04
Flexbox 弹性布局
一、是什么 简称 box,意为”弹性布局”,是一种一维的布局模型。一次只能处理一个维度上的元素布局,一行或者一列。 采用Flex布局的元素,称为 容器( ),简称”容器“;它的所有子元素自动成为容器成员,称为 项目( ),简称”项目“。 容器中默认存在两条轴, 主轴 和 交叉轴 。项目默认沿主轴排列,通过 来决定主轴的方向。 每根轴都有起始线和终止线,用来描述flexbox元素的方向。 任何一个容器都可以指定为 布局。设为 Flex 布...
学习面试
css2025-03-04
提升CSS渲染性能
1\. 提升CSS渲染性能: 2\. 合适使用css选择器: 3\. 提升css文件加载的性能: 4\. 精简css代码: 5\. 合理使用web fonts: 6\. css动画优化:
学习面试
css2024-08-29
CSS 终于在 2024 年增加了垂直居中功能
在 2024 年的 CSS 原生属性中允许使用 1 个 CSS 属性 进行垂直居中。 支持情况: | Chrome: 123 | Firefox: 125 | Safari: 17.4 | | | | | CSS 对齐一般会使用 或 布局,因为 在默认的流式布局中不起作用。在 2024 年,浏览器实现了 。 你不需要 flexbox 或 grid,只需要 1 个 CSS 属性就可以进行对齐。 因此内容不需要包裹在 div 中。 令人惊讶...
学习面试
评论
请登录后发表评论
去登录