【前端系列】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 选择器类型,包括基本选择器、属性选择器、关系选择器以及伪类和伪元素选择器。了解和熟练运用这些选择器将使您能够更好

相关推荐
GHUIJS1 小时前
【vue3】vue3.5
前端·javascript·vue.js
&白帝&1 小时前
uniapp中使用picker-view选择时间
前端·uni-app
魔术师卡颂1 小时前
如何让“学源码”变得轻松、有意义
前端·面试·源码
autumn8681 小时前
什么是css?
css
谢尔登1 小时前
Babel
前端·react.js·node.js
ling1s1 小时前
C#基础(13)结构体
前端·c#
卸任1 小时前
使用高阶组件封装路由拦截逻辑
前端·react.js
Estrella162 小时前
经典 web 页面排版:三栏布局
前端·css·面试
lxcw2 小时前
npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED
前端·npm·node.js
秋沐2 小时前
vue中的slot插槽,彻底搞懂及使用
前端·javascript·vue.js