当用户与页面上的对象进行交互时,他们将使用鼠标或通过触摸来悬停、单击和关注项目。CSS 允许我们使用这些交互来改变样式,给用户反馈他们能做什么和不能做什么。
例如,如果用户将鼠标悬停在链接上,他们就会知道这是一个链接。但是,如果他们将鼠标悬停在段落上,则不会发生任何事情,因为他们无法与之交互。这些最常与锚点一起使用,即指向其他页面的链接,但它们也经常与输入一起使用。
即使它们最常与这两组项目一起使用,它们也可以在大多数情况下用于任何 HTML 元素。主要状态指标有:
:hover
– 当用户将鼠标悬停在元素上时:active
– 当用户点击一个项目时,在取消点击之前。:focus
– 当用户专注于某事时,即输入输入。:target
– 当项目的 ID 与 URL 中的片段匹配时(URL 片段是 # 后跟 URL 末尾的文本。):link
– 尚未访问的链接。:visited
– 已经访问过的链接。默认显示为紫色。
使用这些状态指示器,我们几乎可以在 CSS 中对用户交互做任何我们想做的事情。如果您对其他州感兴趣,我们在此处提供了所有可用 CSS 选择器的完整列表。
最佳实践#
由于 CSS 将最后的元素优先于之前的元素,因此在主要元素之后有状态通常是最佳实践。即想象一个anchor
有悬停状态的。我们会这样写:
a {
color: black;
}
a:hover {
color: red;
}
当用户将鼠标悬停在上面时,锚点将变为红色。
Active激活#
如前所述,:active
将在单击后,但在用户取消单击之前设置样式。一个例子如下所示。这可以应用于 div 以及任何其他元素:
div {
color: white;
}
div:active {
color: orange;
}
尝试点击我
重点#
聚焦通常与输入一起使用,但可以与任何其他“可选项卡”元素一起使用,即tabindex
在 HTML 中具有 a 的元素。下面显示了一个带有输入的示例:
input {
background: #101011;
border: 2px solid #2b2e2f;
border-radius: 10px;
padding: 0.5rem;
color: white;
text-transform: uppercase;
letter-spacing: 0.5px;
font-size: 1rem;
max-width: 400px;
}
input:focus {
border: 2px solid white;
background: white;
outline: none;
color: black;
}
大纲
请注意,当您单击输入或“可选项卡”元素时,在大多数浏览器中,您会在元素周围看到一个发光的蓝色边框。这与边界不同,实际上它被称为outline
. 如果要删除您单击或关注的输入周围的蓝色轮廓,可以使用以下代码:
input:focus {
outline: none;
}