什么是伪类 (pseudo-classes)?

伪类可以让我们根据元素的状态变化使用 CSS。例如,当我们想要设置某元素在被指标指到时的样式,我们可以使用 :hover 伪类来改变样式。

介绍 4 个常见的伪类 (pseudo-classes) 用法

:hover

当用户的鼠标或触控板等设备放在元素上时,我们可以使用 :hover 更改元素的样式。

这两个伪类都是用在含有 href 属性的 <a> 元素上。 :link 可以调整使用者还未浏览过的链接样式,而 :visited 则可以改变使用者已浏览过的链接样式。

 1<a href="https://google.com">google.com</a>
 2<a href="https://juejin.cn">juejin.cn</a>
 1a:link {
 2  color: blue;
 3}
 4
 5a:visited {
 6  color: red;
 7}

:disabled 、 :enabled

按钮元素可以设置为“禁用”状态,而 :disabled  和  :enabled 可以调整按钮在“禁用”或“非禁用”状态时的样式。

:first-child 、 :last-child

如果要在 HTML 中查找第一个或最后一个项目,可以使用 :first-child:last-child。这些伪类会返回一组兄弟元素中的第一个或最后一个元素。

 1<div>
 2  <p>p 第一段文字</p>
 3  <p>p 第二段文字</p>
 4  <div>...</div>
 5</div>
 6<div>------分隔线------</div>
 7<div>
 8  <p>p 第一段文字</p>
 9  <div>...</div>
10  <div>...</div>
11  <p>p 第二段文字</p>
12</div>
 1p:first-child {
 2  background: lightskyblue;
 3  font-weight: bold;
 4}
 5
 6p:last-child {
 7  background: lightyellow;
 8  font-weight: bold;
 9}

什么是伪元素 (pseudo-elements)?

伪元素可以在不需新增 HTML 的情况下新增额外元素。它具有多种用途,我们将在下一段中介绍一些常见的用法。

介绍 4 个常见的伪元素 (pseudo-elements) 用法

::before  和   ::after

在元素上使用 ::before::after 伪元素,会在元素中产生一个子元素,但必须在伪元素中定义 content,这个 content 可以是任何字符串,甚至可以是空字符串。

同时,我们也可以对 content 进行样式上的调整,如下代码所示。

 1<span class="text">This is Front-end world</span>
 1.text {
 2  background-color: #171923;
 3  color: white;
 4}
 5
 6.text::after {
 7  content: " ♥ Interview Guide";
 8  background-color: #ffba10;
 9}

::marker

使用 ::marker 可以调整列表或摘要元素 (summary) 的项目符号和编号的样式。

 1<ul>
 2  <li>Apple</li>
 3  <li>Orange</li>
 4  <li>Strawberry</li>
 5</ul>
 1ul ::marker {
 2  color: red;
 3  content: "😊";
 4}

::placeholder

当我们在设计表单时,会对一些元素,例如输入框 (input),加入提示文字,而 ::placeholder 可以用来设置这个提示文字的样式。

 1<input type="email" placeholder="[email protected]" id="email" />
 1input::placeholder {
 2  color: darkcyan;
 3}

::first-letter

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

 1<p>第一个字要蓝色</p>
 1p::first-letter {
 2  color: blue;
 3}

个人笔记记录 2021 ~ 2025