CSS(一):选择器

目录

CSS关联HTML的方式

内联样式

内部样式表

外部样式表

选择器

基本选择器

标签选择器

类选择器

id选择器

层次选择器

后代选择器

子选择器

相邻兄弟选择器

通用兄弟选择器

结构伪类选择器

[:first-child 和 :last-child](#:first-child 和 :last-child)

[:nth-child(x) 和 :nth-of-type(x)](#:nth-child(x) 和 :nth-of-type(x))

:hover

属性选择器


CSS关联HTML的方式

内联样式

内联样式是将 CSS 样式直接写在 HTML 元素的 style 属性中。这是最简单的方式,但只适用于少量样式,并且不便于维护

例如:

html 复制代码
<p style="color: blue; font-size: 20px;">这是一个蓝色的文本</p>

内部样式表

内部样式表是将 CSS 代码放在 HTML 文件的 <head> 部分,使用 <style> 标签进行定义。这种方法适用于只需要为当前页面设置样式的情况

例如:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>内部样式示例</title>
    <style>
        /* CSS 代码 */
        p {
            color: green;
            font-size: 18px;
        }
    </style>
</head>
<body>
    <p>这是一个绿色的文本。</p>
</body>
</html>

外部样式表

外部样式表是将 CSS 样式写在单独的 .css 文件中,并在 HTML 文件中通过 <link> 标签来引入(最常见方式)

例如:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>外部样式示例</title>
    <!-- 引入外部CSS文件 -->
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <p>这是一个红色的文本。</p>
</body>
</html>

选择器

基本选择器

标签选择器

标签选择器是通过标签名来选择元素,可以应用于页面上所有指定的标签

例如:

css 复制代码
h1 {
		color: red;
	}

所有 <h1> 标签的文字颜色都将变为红色

类选择器

类选择器通过给 HTML 元素加上 class 属性来选择元素,可以使多个不同的标签共享同一个类

类选择器的使用方法为.+类名

例如:

css 复制代码
<style>
	.title {
		color: red;
	}
</style>

<h1 class="title">标题</h1>
<p class="title">段落文字</p>

id选择器

为标签附上属性id,使用#+id的名称选择

id必须全局唯一

例如:

css 复制代码
<style>
	#name {
		color: red;
	}
</style>

<h1 id="name">名称</h1>

只有具有特定 id="name" 的元素会应用该样式

层次选择器

后代选择器

元素的所有后代都被选中

用前元素+空格+后元素表示

css 复制代码
body p {
	background: red;
}

在这个例子中,所有在 <body> 元素中的 <p> 元素都会被选中并设置背景颜色为红色

子选择器

只选中元素的子代,不选中孙代

用父元素+>+子元素表示

css 复制代码
body > p {
	background: red;
}

在这个例子中,只有 <body> 元素下的直接 <p> 子元素才会应用这个样式,而嵌套在其他元素中的 <p> 不会受到影响

相邻兄弟选择器

只选择元素相邻的下方的,唯一一个标签,且不含本身

用前元素+加号+后元素表示

css 复制代码
/*只有class为name的元素的下一个相邻p标签变色*/
.name + p {
	background: red;
}

在这个例子中,只有紧接在 .name 元素之后的 <p> 元素会被选中并应用背景色

通用兄弟选择器

选中当前元素的向下所有兄弟元素

用前元素+~+后元素表示

css 复制代码
/*class为name的元素下面的所有p标签变色*/
.name ~ p {
	background: red;
}

在这个例子中,所有在 .name 元素之后的 <p> 元素都会应用这个样式,无论它们之间的元素是什么

结构伪类选择器

:first-child:last-child

:first-child 选择器用于选中父元素的第一个子元素,:last-child 用于选择最后一个子元素

css 复制代码
ul li:first-child {
	color: red;
}

ul li:last-child {
	color: blue;
}

在这个例子中,第一个 <li> 元素的文字颜色会变为红色,最后一个 <li> 元素的文字颜色会变为蓝色

:nth-child(x):nth-of-type(x)

element:nth-child(x) 选择父元素中的第 x 个子元素。这个选择器是根据元素在其父元素中的位置来进行选择的,而不考虑元素的类型。如果该元素的类型和element不同,则不会发生任何改变

element:nth-of-type(x) 选择父元素中第 x 个指定类型的子元素。这个选择器在选择时仅会考虑与指定类型相同的元素,忽略其他类型的元素

html 复制代码
<div>
  <p>段落 1</p>
  <span>标签 1</span>
  <p>段落 2</p>
  <span>标签 2</span>
</div>

使用 :nth-child(2) 选择器:

css 复制代码
p:nth-child(2) {
  color: red;
}

这里,p:nth-child(2) 会选择父元素 <div> 中的第二个子元素。由于父元素的第二个子元素是 <span>(而不是 <p>),所以没有任何效果。

使用 :nth-of-type(2) 选择器:

css 复制代码
p:nth-of-type(2) {
  color: red;
}

这里,p:nth-of-type(2) 会选择父元素 <div> 中第二个 <p> 标签,文本颜色会变成红色

:hover

用于选择鼠标悬停在元素上的时候应用的样式

css 复制代码
a:hover {
	background: red;
}

当鼠标悬停在 <a> 标签上时,背景颜色会变成红色

属性选择器

属性选择器通过选择元素的特定属性及其值来应用样式

格式:标签名[属性名=属性值],其中属性值可以为正则表达式

一些常用的正则表达式:

  • =:绝对等于
  • *=:包含
  • ^=:以什么开头
  • $=:以什么结尾
css 复制代码
/*存在id属性的元素*/
a[id] {
	color: red;
}

/*id为first的元素*/
a[id="first"] {
	color: red;
}

/*class属性中含有link的元素*/
a[class*="link"] {
	color: red;
}

/*href属性值以http开头的元素*/
a[href^="http"] {
	color: red;
}
相关推荐
崔庆才丨静觅7 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60617 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅8 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment8 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅9 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊9 小时前
jwt介绍
前端
爱敲代码的小鱼9 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax