【前端系列】CSS 常见的选择器

CSS 常见的选择器

CSS(层叠样式表)是一种用于描述网页样式的标记语言,它定义了网页中各个元素的外观和布局。在 CSS 中,选择器是一种用于选择要应用样式的 HTML 元素的模式。选择器允许开发人员根据元素的类型、属性、关系等来选择元素,从而对它们应用样式。

选择器在 CSS 中扮演着至关重要的角色,它们可以帮助开发人员轻松地选择页面中的特定元素,从而实现样式的精确控制。在本文中,我们将介绍一些常见的 CSS 选择器,包括基本选择器、属性选择器、伪类和伪元素等,以帮助您更好地理解和应用 CSS 样式。

1. 基本选择器

基本选择器是最简单和最常用的选择器类型,它们直接选择特定类型的 HTML 元素。以下是一些常见的基本选择器:

1.1 元素选择器

元素选择器选择特定类型的 HTML 元素。例如,如果要选择所有段落元素(<p>),可以使用以下样式:

css 复制代码
p {
  /* 样式规则 */
}

1.2 类选择器

类选择器选择具有特定类名的元素。类名以.开头。例如,要选择所有类名为highlight的元素,可以使用以下样式:

css 复制代码
.highlight {
  /* 样式规则 */
}

1.3 ID 选择器

ID 选择器选择具有特定 ID 的元素。ID 名以#开头。虽然 ID 选择器在页面中是唯一的,但应避免过度使用它们,因为它们的优先级很高,可能导致样式不易维护。例如,要选择 ID 为header的元素,可以使用以下样式:

css 复制代码
#header {
  /* 样式规则 */
}

2. 属性选择器

属性选择器允许您选择具有特定属性或属性值的元素。以下是一些常见的属性选择器:

2.1 属性存在选择器

属性存在选择器选择具有指定属性的所有元素,而不考虑其值是什么。例如,要选择所有具有title属性的元素,可以使用以下样式:

css 复制代码
[title] {
  /* 样式规则 */
}

2.2 属性值选择器

属性值选择器选择具有指定属性值的元素。例如,要选择所有href属性值以https://开头的链接,可以使用以下样式:

css 复制代码
[href^="https://"]
{
  /* 样式规则 */
}

2.3 属性包含选择器

属性包含选择器选择具有指定属性值的元素,其中属性值包含特定字符串。例如,要选择所有class属性包含button的元素,可以使用以下样式:

css 复制代码
[class*="button"] {
  /* 样式规则 */
}

3. 关系选择器

关系选择器允许您选择特定元素之间的关系。以下是一些常见的关系选择器:

3.1 后代选择器

后代选择器选择某个元素的后代元素。它使用空格分隔两个选择器。例如,要选择所有段落元素中的<strong>元素,可以使用以下样式:

css 复制代码
p strong {
  /* 样式规则 */
}

3.2 子元素选择器

子元素选择器选择某个元素的直接子元素。它使用>符号分隔两个选择器。例如,要选择所有<ul>元素的直接子元素<li>,可以使用以下样式:

css 复制代码
ul > li {
  /* 样式规则 */
}

3.3 相邻兄弟选择器

相邻兄弟选择器选择某个元素的相邻兄弟元素。它使用+符号分隔两个选择器。例如,要选择所有<h2>元素后紧跟的<p>元素,可以使用以下样式:

css 复制代码
h2 + p {
  /* 样式规则 */
}

4. 伪类和伪元素选择器

伪类和伪元素选择器允许您选择元素的特定状态或位置。以下是一些常见的伪类和伪元素选择器:

4.1 :hover 伪类

:hover伪类选择鼠标悬停在元素上时的状态。例如,要在鼠标悬停在链接上时改变其颜色,可以使用以下样式:

css 复制代码
a:hover {
  /* 样式规则 */
}

4.2 :nth-child() 伪类

:nth-child()伪类选择元素在其父元素中的位置。它接受一个参数,用于指定位置。例如,要选择每个偶数行的元素,可以使用以下样式:

css 复制代码
tr:nth-child(even) {
  /* 样式规则 */
}

4.3 ::before 和 ::after 伪元素

::before::after伪元素允许您在元素的内容之前和之后插入内容。例如,要在每个段落前添加引号,可以使用以下样式:

css 复制代码
p::before {
  content: '"';
}

结论

CSS 选择器是控制网页样式的重要工具之一。本文介绍了一些常见的 CSS 选择器类型,包括基本选择器、属性选择器、关系选择器以及伪类和伪元素选择器。了解和熟练运用这些选择器将使您能够更好

相关推荐
三块可乐两块冰4 分钟前
rag学习5
linux·前端·python
铁皮饭盒18 分钟前
Bun + SQLite 10个实用技巧
前端·javascript·后端
Hooray20 分钟前
告别低效循环!AI Agent 编排+编程显示器,让前端开发效率实现断代式跃升
前端·人工智能·ai编程
飞天狗11125 分钟前
零基础JavaWeb入门——第4课:表单处理 —— 浏览器怎么把数据发给服务器
java·开发语言·前端·后端·servlet
Hooray43 分钟前
前端暗黑模式的适配艺术
前端·vue.js·视觉设计
恋猫de小郭44 分钟前
解析华为 DevEco Code 和小米 MiMo Code,都基于 OpenCode ,有什么区别?
android·前端·ios
IT_陈寒1 小时前
Vue的响应式让我原地裂开,你们也有这情况吗
前端·人工智能·后端
问心无愧05131 小时前
ctfshow web入门114
android·前端·笔记
晓得迷路了1 小时前
栗子前端技术周刊第 133 期 - Angular v22、React 编译器 Rust 版、pnpm 11.5...
前端·javascript·css
一个被程序员耽误的厨师1 小时前
02-架构篇-前端怎么反客为主把AI编排权拿回到自己手里
前端·人工智能·架构