文章目录

  • 1 元素选择器
  • 2 id 选择器
  • 3 class 选择器
  • 4 通用选择器
  • 5 子元素选择器
  • 6 后代选择器
  • 7 相邻兄弟选择器
  • 8 后续兄弟选择器
  • 9 伪类选择器
  • 10 伪元素选择器
  • 11 属性选择器
    • 11.1 `[attribute]`
    • 11.2 `[attribute="value"]`
    • 11.3 `[attribute~="value"]`与`[attribute*="value"]`
    • 11.4 `[attribute|="value"]`与`[attribute^="value"]`
    • 11.5 `[attribute$="value"]`

选择器是 CSS 规则的开头部分,用于 选择要应用样式的 HTML 元素。选择器非常重要,因为它们决定了你的样式会作用于哪些元素。

选择器类型符号描述示例
元素选择器p直接通过 HTML 标签名来选择所有同类元素。h2 { color: teal; }
ID 选择器#通过元素的 id 属性来选择特定元素,一个 ID 在文档中必须是唯一的。#element { font-size: 35px; }
class 选择器.通过元素的 class 属性来选择元素,一个类可以被多个元素使用。.highlight { background-color: yellow; }
通用选择器*选择 所有 HTML 元素。常用于重置浏览器默认样式。* { font-family: '楷体'; }
子元素选择器>选择直接位于父元素内部的子元素。它只选择第一层级的子元素,不包括更深层级的后代。.father > p { color: yellowgreen; }
后代选择器 (空格)选择位于父元素内部的所有后代元素,无论层级有多深。它包括子元素、孙子元素等。.father p { color: coral; }
相邻兄弟选择器+选择紧跟在指定元素后面的第一个同级元素h3 + p { background-color: red; }
后续兄弟选择器~选取所有指定元素之后的相邻兄弟元素h3 ~ p { background-color: red; }
伪类选择器:选择处于特定状态或位置的元素,常用于用户交互。:hover 伪类会在鼠标悬停时应用样式。
伪元素选择器::用于创建并样式化虚拟元素,而不是选择实际存在的元素。::before::after 用于在元素内容前后插入虚拟内容。
属性选择器[attribute=value]用于根据元素的属性或属性值来选择 HTML 元素。[type] { border: 1px solid red; }

1 元素选择器

通过元素名称选择 HTML 元素。

语法: element { /* 样式 */ }

如下代码,p 选择器将选择所有 <p> 元素:

p {color:red;text-align:center;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>p{color:red;text-align:center;} </style></head><body><p>Hello World!</p><p>这个段落采用CSS样式化。</p></body>
</html>
image-20250904030548863

2 id 选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式,CSS 中 id 选择器以 “#” 来定义。

语法: #id { /* 样式 */ }

以下的样式规则应用于元素属性 id=“para1”:

#para1
{text-align:center;color:red;
}

ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>#para1{text-align:center;color:red;} </style></head><body><p id="para1">Hello World!</p><p>这个段落不受该样式的影响。</p></body>
</html>
image-20250904025514612

3 class 选择器

class 选择器用于描述一组元素的样式,class 选择器有别于 id 选择器,class可以在多个元素中使用。

语法: .class { /* 样式 */ }

在以下的例子中,所有拥有 center 类的 HTML 元素均为居中。

.center {text-align:center;}

你也可以指定特定的 HTML 元素使用 class。

在以下实例中, 所有的 p 元素使用 class=“center” 让该元素的文本居中:

p.center {text-align:center;}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>p.center{text-align:center;}</style></head><body><h1 class="center">这个标题不受影响</h1><p class="center">这个段落居中对齐。</p> </body>
</html>
image-20250904025746855

4 通用选择器

选择所有 HTML 元素。通用选择器使用 * 符号,选择页面上的所有元素。

语法: * { /* 样式 */ }

以下实例选择了所有元素:

* {background-color: #b0c4de;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>菜鸟教程(runoob.com)</title><style>* {background-color: #b0c4de;}</style></head><body><h1>我的 CSS web 页!</h1><p>你好世界!这是来自 runoob 菜鸟教程的实例。</p></body>
</html>
image-20250904034620743

5 子元素选择器

子元素选择器使用大于号 >,它会选中直接位于父元素内部的子元素。它只选择第一层级的子元素,不包括更深层级的后代元素。

语法: parent > child { /* 样式 */ }

以下实例选择了<div>元素中所有直接子元素 <p>

div>p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>div>p{background-color:yellow;}</style></head><body><h1>Welcome to My Homepage</h1><div><h2>My name is Donald</h2><p>I live in Duckburg.</p></div><div><span><p>I will not be styled.</p></span></div><p>My best friend is Mickey.</p></body>
</html>
image-20250904030911078

6 后代选择器

后代选择器使用空格,它会选中位于父元素内部的所有后代元素,无论层级有多深。这包括子元素、孙子元素、曾孙子元素等。

语法: ancestor descendant { /* 样式 */ }

以下实例选取所有 <p> 元素插入到 <div> 元素中:

div p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>div p{background-color:yellow;}</style></head><body><div><p>段落 1。 在 div 中。</p><p>段落 2。 在 div 中。</p></div><p>段落 3。不在 div 中。</p><p>段落 4。不在 div 中。</p></body>
</html>
image-20250904030821740

7 相邻兄弟选择器

相邻兄弟选择器使用加号 +,它会选中紧跟在指定元素后面的第一个同级元素。这两个元素必须拥有同一个父元素,并且选择器中的第二个元素必须紧跟在第一个元素之后。

语法: element1 + element2 { /* 样式 */ }

以下实例选取了所有位于 <div> 元素后的第一个 <p> 元素:

div+p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>div+p{background-color:yellow;}</style></head><body><h1>文章标题</h1><div><h2>DIV 内部标题</h2><p>DIV 内部段落。</p></div><p>DIV 之后的第一个 P 元素。</p><p>DIV 之后的第二个 P 元素。</p></body>
</html>
image-20250904031005536

8 后续兄弟选择器

后续兄弟选择器选取所有指定元素之后的相邻兄弟元素。

以下实例选取了所有 <div> 元素之后的所有相邻兄弟元素 <p>:

div~p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>div~p{background-color:yellow;}</style></head><body><p>之前段落,不会添加背景颜色。</p><div><p>段落 1。 在 div 中。</p><p>段落 2。 在 div 中。</p></div><p>段落 3。不在 div 中。</p><p>段落 4。不在 div 中。</p></body>
</html>
image-20250904031222249

9 伪类选择器

CSS伪类用于选择处于特定状态或位置的元素,而不是基于它们的名称、ID 或类名。伪类以冒号 : 开头。它们常用于用户交互,如鼠标悬停、链接访问状态等。

语法: selector:pseudo-class { /* 样式 */ }

CSS类也可以使用伪类:

selector.class:pseudo-class { /* 样式 */ }

在支持 CSS 的浏览器中,链接的不同状态都可以以不同的方式显示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>a:link {color:#000000;}      /* 未访问链接*/a:visited {color:#00FF00;}  /* 已访问链接 */a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */a:active {color:#0000FF;}  /* 鼠标点击时 */</style></head><body><p><b><a href="/css/" target="_blank">这是一个链接</a></b></p><p><b>注意:</b> a:hover 必须在 a:link 和 a:visited 之后,需要严格按顺序才能看到效果。</p><p><b>注意:</b> a:active 必须在 a:hover 之后。</p></body>
</html>
image-20250904031932053

注意: 在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。

注意: 在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

**注意:**伪类的名称不区分大小写。

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

p:first-child i
{color:blue;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style>p:first-child i{color:blue;} </style></head><body><p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p><p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p><p><b>注意:</b> 当:first-child 作用于 IE8 及更早版本的浏览器, DOCTYPE 必须已经定义.</p></body>
</html>
image-20250904032119831

10 伪元素选择器

CSS 伪元素是一种特殊的选择器,它可以在不改变 HTML 结构的情况下对页面元素的特定部分进行样式设置。

伪元素用于创建并样式化虚拟元素,这些元素在 HTML 文档中并不实际存在。伪元素以双冒号 :: 开头。

语法: selector::pseudo-element { /* 样式 */ }

CSS 类也可以使用伪元素:

selector.class::pseudo-element { /* 样式 */ }

常用的 CSS 伪元素有 ::before::after::first-line::first-letter 等。

::before/::after 伪元素可以在元素的内容前面/后面插入新内容。

下面的例子在每个 <h1> 元素前面插入内容 "Before: ":

h1::before 
{content:"Before: ";
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>菜鸟教程(runoob.com)</title><style>h1::before {content: "Before";}</style></head><body><h1>This is a heading</h1><p>The :before pseudo-element inserts content before an element.</p><h1>This is a heading</h1><p><b>注意:</b>仅当 !DOCTYPE 已经声明 IE8 支持这个内容属性</p></body>
</html>
image-20250904033328349

11 属性选择器

CSS 属性选择器用于根据元素的属性或属性值来选择 HTML 元素。

属性选择器可以帮助你在不需要为元素添加类或 ID 的情况下对其进行样式化。

11.1 [attribute]

选择带有指定属性的所有元素(无论属性值是什么)。

/* 选择所有具有 `type` 属性的元素 */
[type] {border: 1px solid red;
}

下面的例子是把包含标题(title)的所有元素变为蓝色:

<!DOCTYPE html>
<html><head><style>[title]{color:blue;}</style></head><body><h2>Will apply to:</h2><h1 title="Hello world">Hello world</h1><a title="runoob.com" href="https://www.runoob.com/">runoob.com</a><hr><h2>Will not apply to:</h2><p>Hello!</p></body>
</html>
image-20250904035047373

11.2 [attribute="value"]

选择具有指定属性和值完全匹配的元素。

/* 选择所有 `type` 属性等于 `text` 的元素 */
[type="text"] {background-color: yellow;
}

下面的实例改变了标题 title=‘runoob’ 元素的边框样式:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title>  <style>[title=runoob]{border:5px solid green;}</style></head><body><h2>将适用:</h2><img title="runoob" src="logo.png" width="270" height="50" /><br><a title="runoob" href="https://www.runoob.com/">runoob</a><hr><h2>将不适用:</h2><p title="greeting">Hi!</p><a class="runoob" href="https://www.runoob.com/">runoob</a></body>
</html>
image-20250904035245860

11.3 [attribute~="value"][attribute*="value"]

  • [attribute~="value"] 选择属性值中包含指定的独立单词 value(用空格分隔的词列表之一)的元素。

    /* 选择属性值中包含单词 `button` 的元素 */
    [class~="button"] {font-weight: bold;
    }
    
  • [attribute*="value"] 选择属性值中包含指定值的元素,不要求是独立单词。

    /* 选择所有 `title` 属性中连续包含 `tutorial` 的元素 */
    [title*="tutorial"] {font-style: italic;
    }
    

下面是包含指定值的title属性的元素样式的例子,使用(~)分隔属性和值:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title>  <style>[title*=hello]{color:red;} [title~=hello]{color:blue;} </style></head><body><h2>~=:</h2><h1 title="hello world">Hello world</h1><p title="student hello">Hello CSS students!</p><hr><h2>*=:</h2><p title="student-hello">Hi CSS students!</p></body>
</html>
image-20250904040421711

11.4 [attribute|="value"][attribute^="value"]

  • [attribute|="value"]:选择完整且唯一的单词 value,或者以 value- 分隔开,常用于语言代码。

    /* 选择所有 `lang` 属性是 `en` 或者以 `en-` 开头的元素 */
    [lang|="en"] {color: green;
    }
    
  • [attribute^="value"]:选择属性值以指定值开头的元素,不要求是独立单词。

    /* 选择所有 `href` 属性以 `https` 开头的链接 */
    [href^="https"] {text-decoration: none;
    }
    

11.5 [attribute$="value"]

选择属性值以指定值结尾的元素,不要求是独立单词。

/* 选择所有 src 属性以 .jpg 结尾的图片 */
[src$=".jpg"] {border: 2px solid blue;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/95811.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/95811.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/95811.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络:概述层---OSI参考模型

&#x1f310; OSI七层参考模型详解&#xff1a;从物理层到应用层的完整剖析 &#x1f4c5; 更新时间&#xff1a;2025年9月3日 &#x1f3f7;️ 标签&#xff1a;OSI模型 | 网络协议 | 七层模型 | 计算机网络 | 网络架构 | 协议栈 | 王道考研 摘要: 本文将用最通俗易懂的语言&…

JVM相关 2|Java 垃圾回收机制(GC算法、GC收集器如G1、CMS)的必会知识点汇总

目录&#xff1a;&#x1f9e0; 一、GC基础概念1. 什么是垃圾回收&#xff08;Garbage Collection, GC&#xff09;&#xff1f;2. 判断对象是否为垃圾的方法&#x1f9e9; 二、GC核心算法1. 标记-清除算法&#xff08;Mark-Sweep&#xff09;2. 标记-整理算法&#xff08;Mark…

04 - 【HTML】- 常用标签(下篇)

表格标签 1 表格 table 在HTML中&#xff0c;表格是通过<table>标签来创建的&#xff0c;它允许在html中以行和列的形式组织数据。HTML提供了一套完整的标签来创建功能丰富的表格。 2 表格的 结构 3 表格table代码结构 4 表格结构解析 <thead></thead>&…

nVisual从入门到精通—应用实例

五、应用实例 5.1 数据中心的规划设计 5.1.1 规划设计流程5.1.2 创建模型库 5.1.2.1 设备模型库 设备模型库基于组织内实际使用的设备型号进行构建&#xff0c;主要包含以下对象类型&#xff1a;机柜、网络设备、板卡、组合模型。 设备属性字段&#xff1a;除系统保留字段&…

代码可读性的详细入门

&#x1f3e0;个人主页&#xff1a;尘觉主页 文章目录前言一、可读性的重要性二、用名字表达代码含义三、避免名字歧义四、良好的代码风格五、注释的价值六、如何编写注释七、提高控制流的可读性八、拆分长表达式九、变量与可读性十、抽取函数十一、一次只做一件事十二、用自然…

轮轨法向接触斑计算

轮轨法向接触斑计算 &#xff0c;同时输出 接触斑面积、长轴 a、短轴 b、最大 Hertz 压力 pmax 等关键指标 算法基于 Hertz 接触理论&#xff08;适用于单点椭圆接触&#xff09;&#xff0c;并给出如何扩展到 非 Hertz / 有限元验证的提示。1 理论回顾&#xff08;Hertz 椭圆…

实习结束,秋招开启

大家好&#xff0c;依旧是你们的老朋友仰望-星空~~&#xff0c;我又消失了3个月&#xff0c;快四个月了&#x1f604;&#xff0c;不少文章都 落灰了。这段时间其实一直在忙着找实习&#xff0c;然后准备面试题、刷算法、做项目啥的&#xff0c;也是比较忙碌的&#xff0c;也就…

14 C++ STL 容器实战:stack/list 模拟实现指南 + priority_queue 用法及避坑技巧

stack和queuestack的模拟实现和应用--底层就是顺序表从栈的接口中可以看出&#xff0c;栈实际是一种特殊的vector&#xff0c;因此使用vector完全可以模拟实现stack。#include<vector> namespace Stack { template<class T> class stack { public:stack() {}void p…

Linux基础指令(入门必备2.0)

创作初心&#xff1a;在加深个人对知识系统理解的同时希望可以帮助到更多需要的同学 &#x1f604;柯一梦的专栏系列 &#x1f680;柯一梦的Gitee主页 &#x1f6e0;️柯一梦主页详情 座右铭&#xff1a;心向深耕&#xff0c;不问阶序&#xff1b;汗沃其根&#xff0c;花自满枝…

《失落之魂》M站评分仅40?国产动作类游戏究竟何去何从?

前段时间频频预热的国产动作游戏《失落之魂》已正式发售&#xff0c;外媒Push Square发布了该作的阶段性评测。评测指出&#xff0c;尽管《失落之魂》在规模上已接近3A级&#xff0c;但能感受到其独立制作的根基。这款游戏于2016年通过索尼“中国之星计划”获得支持&#xff0c…

一个专为地图制图和数据可视化设计的在线配色网站,可以助你制作漂亮的地图!

ColorBrewer 是一个专为地图制图和数据可视化设计的在线配色工具&#xff0c;由宾夕法尼亚州立大学地理学教授 Cynthia Brewer 及其团队开发 。 它提供了科学、美观且考虑周全的配色方案&#xff0c;旨在帮助用户&#xff08;无论是科研人员、设计师还是GIS分析师&#xff09;…

Python图像处理基础(十六)

Python图像处理基础(十六) 文章目录 Python图像处理基础(十六) 10、图像增强和滤镜 10.1 ImageEnhance 10.1.1 亮度 10.1.2 对比度 10.1.3 颜色 10.1.4 清晰度 10.2 ImageFilter 10.3 预定义滤镜 10.4 参数化滤镜 10.4.1 模糊函数 10.4.2 反锐化蒙版 10.4.3 排序和平均滤波…

python中等难度面试题(1)

1、请解释Python中的深拷贝(deep copy)和浅拷贝(shallow copy)的区别&#xff0c;并举例说明它们在实际应用中可能引发的问题。 答&#xff1a; 在Python中&#xff0c;拷贝对象通常指的是创建一个新的对象&#xff0c;这个新对象是原始对象的一个副本。拷贝可以分为两种类型&a…

AI+Java 守护你的钱袋子!金融领域的智能风控与极速交易

当你在异国他乡用信用卡支付酒店费用&#xff0c;手机瞬间弹出银行短信“是否为本人操作”&#xff1b;当你盯着股票行情软件&#xff0c;看着某只股票的股价在3秒内从涨停跌至平盘&#xff0c;懊悔手动下单慢了一步——这些金融场景中的“安全感”与“遗憾”&#xff0c;背后都…

Docker跨架构部署实操第二弹

1. 项目内容 项目目录包含 Dockerfile 与 main.py&#xff0c;并且容器内路径固定为&#xff1a; 数据&#xff1a;/root/autodl-tmp/data模型&#xff1a;/root/autodl-tmp/models保存&#xff1a;/root/autodl-tmp/save 服务端口&#xff1a;9011&#xff08;容器内与宿主映…

PyTorch 学习率调度器(LR Scheduler)

文章目录 PyTorch 学习率调度器&#xff08;LR Scheduler&#xff09;1. 一句话定义2. 通用使用套路3. 内置调度器对比速览4. 各调度器最小模板① LambdaLR&#xff08;线性 warmup&#xff09;② StepLR③ MultiStepLR④ CosineAnnealingLR⑤ ReduceLROnPlateau&#xff08;必…

新后端漏洞(上)- Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)

漏洞介绍&#xff1a;Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本&#xff08;包含&#xff09;以前存在一处SpEL表达式注入漏洞&#xff0c;当攻击者可以访问Actuator API的情况下&#xff0c;将可以利用该漏洞执行任意命令。漏洞环境&#xff1a;docke…

【OJ】C++ vector类OJ题

只出现过一次的数字&#xff08;简单&#xff09; 136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 这道题使用异或就非常简单了&#xff0c;所有数异或到一起&#xff0c;相同的数据双双消除&#xff0c;只剩下一个的数。 C语言异或运算详解-CSDN博客 clas…

为什么外网主机可以telnet通内网nginx端口,但是http请求失败?

问题是这样的:我内网主机nginx配置了 域名80端口&#xff0c;然后防火墙没有配置80端口&#xff0c;但是外网机子去telnet 80端口可以通&#xff0c;用浏览器请求域名不能访问nginx&#xff0c;然后防火墙开了80端口后&#xff0c;浏览器就可以访问nginx了&#xff0c;为什么防…

【Linux游记】基础指令篇

​​​​​​ 枫の个人主页 你不能改变过去&#xff0c;但你可以改变未来 算法/C/数据结构/C/Linux Hello&#xff0c;这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕&#xff0c;我们继续来学习C&#xff0c;C更新的同时我也会更新Linux。Linux操作系统是很经典的…