目录

CSS 伪类


什么是伪类?

伪类用于定义元素的特殊状态。

例如,它可用于:

  • 当用户将鼠标悬停在元素上时设置元素的样式
  • 访问过的链接和未访问过的链接的样式不同
  • 当元素获得焦点时设置其样式

鼠标悬停在我身上


语法

伪类的语法:

selector:pseudo-class {
  property: value;
}

锚定伪类

链接可以以不同的方式显示:

示例

/* unvisited link */
a:link {
  color: #FF0000;
}

/* visited link */
a:visited {
  color: #00FF00;
}

/* mouse over link */
a:hover {
  color: #FF00FF;
}

/* selected link */
a:active {
  color: #0000FF;
}
亲自试一试 »

笔记:a:hover必须在之后a:linka:visited在CSS中定义才能有效!a:active必须在之后a:hover在CSS中定义才能有效!伪类名称不区分大小写。



伪类和 HTML 类

伪类可以与 HTML 类组合:

当您将鼠标悬停在示例中的链接上时,它会改变颜色:

示例

a.highlight:hover {
  color: #ff0000;
}
亲自试一试 »

将鼠标悬停在 <div> 上

使用的示例:hover<div> 元素上的伪类:

示例

div:hover {
  background-color: blue;
}
亲自试一试 »

简单的工具提示悬停

将鼠标悬停在 <div> 元素上可显示 <p> 元素(如工具提示):

将鼠标悬停在我的上方以显示 <p> 元素。

田田!我在这里!

示例

p {
  display: none;
  background-color: yellow;
  padding: 20px;
}

div:hover p {
  display: block;
}
亲自试一试 »

CSS - :first-child 伪类

这个:first-child伪类匹配作为另一个元素的第一个子元素的指定元素。

匹配第一个 <p> 元素

在以下示例中,选择器匹配作为任何元素的第一个子元素的任何 <p> 元素:

示例

p:first-child {
  color: blue;
}
亲自试一试 »

匹配所有 <p> 元素中的第一个 <i> 元素

在以下示例中,选择器匹配所有 <p> 元素中的第一个 <i> 元素:

示例

p i:first-child {
  color: blue;
}
亲自试一试 »

匹配所有第一个子 <p> 元素中的所有 <i> 元素

在以下示例中,选择器匹配作为另一个元素的第一个子元素的 <p> 元素中的所有 <i> 元素:

示例

p:first-child i {
  color: blue;
}
亲自试一试 »

CSS - :lang 伪类

这个:lang伪类允许您为不同的语言定义特殊的规则。

在下面的例子中,:lang使用 lang="no" 定义 <q> 元素的引号:

示例

<html>
<head>
<style>
q:lang(no) {
  quotes: "~" "~";
}
</style>
</head>
<body>

<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>

</body>
</html>
亲自试一试 »

更多示例

为超链接添加不同的样式
此示例演示如何向超链接添加其他样式。

使用:焦点
此示例演示如何使用 :focus 伪类。


通过练习测试一下

练习:

当您将鼠标悬停在链接上时,将背景颜色设置为红色。

<style>
 {
  background-color: red;
}
</style>

<body>

<h1>This is a header.</h1>
<p>This is a paragraph.</p>
<a href="https://91xjr.com">This is a link.</a>

</body>

开始练习


所有 CSS 伪类

Selector Example Example description
:active a:active Selects the active link
:checked input:checked Selects every checked <input> element
:disabled input:disabled Selects every disabled <input> element
:empty p:empty Selects every <p> element that has no children
:enabled input:enabled Selects every enabled <input> element
:first-child p:first-child Selects every <p> elements that is the first child of its parent
:first-of-type p:first-of-type Selects every <p> element that is the first <p> element of its parent
:focus input:focus Selects the <input> element that has focus
:hover a:hover Selects links on mouse over
:in-range input:in-range Selects <input> elements with a value within a specified range
:invalid input:invalid Selects all <input> elements with an invalid value
:lang(language) p:lang(it) Selects every <p> element with a lang attribute value starting with "it"
:last-child p:last-child Selects every <p> elements that is the last child of its parent
:last-of-type p:last-of-type Selects every <p> element that is the last <p> element of its parent
:link a:link Selects all unvisited links
:not(selector) :not(p) Selects every element that is not a <p> element
:nth-child(n) p:nth-child(2) Selects every <p> element that is the second child of its parent
:nth-last-child(n) p:nth-last-child(2) Selects every <p> element that is the second child of its parent, counting from the last child
:nth-last-of-type(n) p:nth-last-of-type(2) Selects every <p> element that is the second <p> element of its parent, counting from the last child
:nth-of-type(n) p:nth-of-type(2) Selects every <p> element that is the second <p> element of its parent
:only-of-type p:only-of-type Selects every <p> element that is the only <p> element of its parent
:only-child p:only-child Selects every <p> element that is the only child of its parent
:optional input:optional Selects <input> elements with no "required" attribute
:out-of-range input:out-of-range Selects <input> elements with a value outside a specified range
:read-only input:read-only Selects <input> elements with a "readonly" attribute specified
:read-write input:read-write Selects <input> elements with no "readonly" attribute
:required input:required Selects <input> elements with a "required" attribute specified
:root root Selects the document's root element
:target #news:target Selects the current active #news element (clicked on a URL containing that anchor name)
:valid input:valid Selects all <input> elements with a valid value
:visited a:visited Selects all visited links

所有 CSS 伪元素

Selector Example Example description
::after p::after Insert content after every <p> element
::before p::before Insert content before every <p> element
::first-letter p::first-letter Selects the first letter of every <p> element
::first-line p::first-line Selects the first line of every <p> element
::marker ::marker Selects the markers of list items
::selection p::selection Selects the portion of an element that is selected by a user