CSS选择器

目录

一、CSS 选择器

1. 标签选择器

2. 类选择器

3. ID 选择器

4. 通配符选择器

5. 其他常用选择器

6. 选择器优先级

二、复合选择器

1. 后代选择器(空格)

2. 子选择器(>)

3. 相邻兄弟选择器(+)

4. 通用兄弟选择器(~)

5. 群组选择器(,)

三、伪类选择器

1. 状态伪类

2. 结构伪类

3. 表单伪类

四、结构伪类选择器

1. :first-child 与 :last-child

2. :nth-child(n) 与 :nth-last-child(n)

3. :nth-of-type(n) 与 :nth-last-of-type(n)

4. :only-child 与 :only-of-type

五、伪元素选择器

1. ::before 与 ::after

2. ::first-line 与 ::first-letter

3. ::selection


一、CSS 选择器

选择器用于指定 CSS 样式规则的应用对象,以下是核心选择器及用法:

1. 标签选择器

  • 语法标签名 { 样式 }

  • 作用:选择所有指定 HTML 标签。

  • 示例

    p {color: blue; /* 所有段落文本为蓝色 */
    }

2. 类选择器

  • 语法.类名 { 样式 }

  • 作用:选择所有具有相同 class 属性的元素。

  • 示例

    .highlight {background-color: yellow; /* 高亮背景 */
    }
    <span class="highlight">重要内容</span>

3. ID 选择器

  • 语法#id名 { 样式 }

  • 作用:选择唯一具有指定 id 的元素。

  • 示例

    #header {font-size: 24px; /* 页面头部字体大小 */
    }
    <div id="header">网站标题</div>

4. 通配符选择器

  • 语法* { 样式 }

  • 作用:选择页面所有元素。

  • 示例

    * {margin: 0; /* 清除所有元素的外边距 */
    }

5. 其他常用选择器

  • 后代选择器父元素 子元素(如 div p 选择所有在 div 内的段落)。

  • 子选择器父元素 > 子元素(仅直接子元素)。

  • 相邻兄弟选择器元素 + 元素(如 h1 + p 选择紧接在 h1 后的第一个段落)。

6. 选择器优先级

  • 权重顺序!important > 行内样式 > #id > .class > 标签 > 通配符。

  • 避免过度使用 !important,推荐通过优化选择器结构管理优先级。


二、复合选择器

复合选择器通过组合多个简单选择器实现更精确的元素定位。

1. 后代选择器(空格)

  • 语法祖先选择器 后代选择器 { 样式 }

  • 作用:选择所有嵌套在祖先元素内的后代元素。

  • 示例

    div p { color: red;  /* div 内的所有段落文本变红 */
    }

2. 子选择器(>

  • 语法父选择器 > 子选择器 { 样式 }

  • 作用:仅选择直接子元素。

  • 示例

    ul > li {list-style: none;  /* 仅清除 ul 的直接子 li 的项目符号 */
    }

3. 相邻兄弟选择器(+

  • 语法前一个选择器 + 后一个选择器 { 样式 }

  • 作用:选择紧接在前一个元素后的第一个兄弟元素。

  • 示例

    h1 + p {margin-top: 0;  /* 紧接在 h1 后的第一个段落顶部无外边距 */
    }

4. 通用兄弟选择器(~

  • 语法前一个选择器 ~ 后续兄弟选择器 { 样式 }

  • 作用:选择前一个元素之后的所有同级元素。

  • 示例

    h2 ~ p {font-style: italic;  /* h2 之后的所有段落变为斜体 */
    }

5. 群组选择器(,

  • 语法选择器1, 选择器2 { 样式 }

  • 作用:同时为多个选择器应用相同样式。

  • 示例

    h1, h2, h3 {font-family: "Arial", sans-serif;
    }

三、伪类选择器

伪类选择器用于定义元素的特定状态或结构位置。

1. 状态伪类

  • :hover:鼠标悬停时触发。

  • :active:元素被激活(如点击)时生效。

  • :focus:元素获得焦点时(如表单输入)。

  • :visited:已访问的链接。

  • :checked:选中的复选框或单选按钮。

  • 示例

    a:hover {color: #ff4500;  /* 链接悬停时变为橙色 */
    }
    input:focus {border-color: blue;  /* 输入框聚焦时边框变蓝 */
    }

2. 结构伪类

  • :first-child:父元素的第一个子元素。

  • :last-child:父元素的最后一个子元素。

  • :nth-child(n):第 n 个子元素(支持公式如 2n+1)。

  • :nth-of-type(n):同类型中的第 n 个元素。

  • :not(selector):排除匹配选择器的元素。

  • 示例

    li:nth-child(odd) {background: #f0f0f0;  /* 奇数行列表项背景变灰 */
    }
    p:not(.warning) {color: #333;  /* 非警告类段落文本为深灰色 */
    }

3. 表单伪类

  • :disabled:禁用状态的表单元素。

  • :required:必填字段。

  • 示例

    input:disabled {opacity: 0.5;  /* 禁用输入框半透明 */
    }

四、结构伪类选择器

结构伪类选择器根据元素在文档树中的位置或结构关系进行选择。

1. :first-child 与 :last-child

  • 作用:选择父元素的第一个或最后一个子元素。

  • 示例

    ul li:first-child { color: red;  /* 列表的第一个项变红 */
    }
    ul li:last-child {font-weight: bold;  /* 列表的最后一项加粗 */
    }

2. :nth-child(n) 与 :nth-last-child(n)

  • 作用:选择父元素的第 n 个子元素(正向或逆向计数)。

  • 参数

    • 数字:如 2 选择第二个元素。

    • 公式:如 2n+1(奇数项)、even(偶数项)。

  • 示例

    tr:nth-child(2n) {background: #f5f5f5;  /* 表格偶数行背景变灰 */
    }
    tr:nth-last-child(1) {border-bottom: none;  /* 最后一行无底部边框 */
    }

3. :nth-of-type(n) 与 :nth-last-of-type(n)

  • 作用:选择同类型元素中的第 n 个(正向或逆向计数)。

  • 示例

    article:nth-of-type(3) {border: 2px solid blue;  /* 第三个 article 元素加蓝色边框 */
    }

4. :only-child 与 :only-of-type

  • 作用

    • :only-child:选择作为父元素唯一子元素的元素。

    • :only-of-type:选择父元素中唯一类型的元素。

  • 示例

    div p:only-child {color: green;  /* 当 div 内只有一个 p 时生效 */
    }

五、伪元素选择器

伪元素选择器用于在元素内容前后插入虚拟元素或修饰特定部分。

1. ::before 与 ::after

  • 作用:在元素内容的前面或后面插入内容(需配合 content 属性)。

  • 示例

    .price::before {content: "¥";  /* 价格前添加货币符号 */color: #ff4500;
    }
    .tooltip::after {content: attr(data-tip);  /* 通过 data 属性动态显示提示 */display: none;position: absolute;
    }

2. ::first-line 与 ::first-letter

  • 作用

    • ::first-line:选择元素的首行文本。

    • ::first-letter:选择元素的首字母。

  • 示例

    p::first-line {font-weight: bold;  /* 段落首行加粗 */
    }
    p::first-letter {font-size: 2em;  /* 首字母放大 */float: left;
    }

3. ::selection

  • 作用:自定义用户选中文本的样式。

  • 示例

    ::selection {background: #ffb7b7;  /* 选中文本背景为粉色 */color: #000;
    }

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

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

相关文章

QuickAPI 和 DBAPI 谁更香?SQL生成API工具的硬核对比(一)

最近低代码开发火得不行&#xff0c;尤其是能把数据库秒变API的工具&#xff0c;简直是开发者的救星。今天咱就聊聊两款国内玩家&#xff1a;QuickAPI&#xff08;麦聪软件搞出来的低代码神器&#xff09;和 DBAPI&#xff08;开源社区的硬核作品&#xff09;。这两货都能靠SQL…

MySQL单表查询大全【SELECT】

山再高&#xff0c;往上攀&#xff0c;总能登顶&#xff1b;路再长&#xff0c;走下去&#xff0c;定能到达。 Mysql中Select 的用法 ------前言------【SELECT】0.【准备工作】0.1 创建一个库0.2 库中创建表0.3 表中加入一些数据 1.【查询全部】2.【查询指定列】2.1查询指定列…

开启云服务器ubuntu22.04的远程桌面,支持Windows远程连接 - 开启XRDP支持

效果图 环境 云服务器 Ubuntu 22.04 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy 本地windows10 步骤 前置动作 # 远程登录 ssh rootx.x.x.x# 看看硬盘够不够空间&…

虚拟化数据恢复—重装系统服务器崩了的数据恢复过程

虚拟化数据恢复环境&故障&#xff1a; VMware虚拟化平台 vmfs文件系统 工作人员误操作重装操作系统&#xff0c;服务器崩溃。 重装系统会导致文件系统元文件被覆盖。要恢复数据&#xff0c;必须找到&提取重装系统前的文件系统残留信息&#xff0c;通过提取出来的元文件…

harmonyOS NEXT开发与前端开发深度对比分析

文章目录 1. 技术体系概览1.1 技术栈对比1.2 生态对比 2. 开发范式比较2.1 鸿蒙开发范式2.2 前端开发范式 3. 框架特性对比3.1 鸿蒙 Next 框架特性3.2 前端框架特性 4. 性能优化对比4.1 鸿蒙性能优化4.2 前端性能优化 5. 开发工具对比5.1 鸿蒙开发工具5.2 前端开发工具 6. 学习…

AI智能混剪工具:AnKo打造高效创作的利器!

AI智能混剪工具&#xff1a;AnKo打造高效创作的利器&#xff01; 随着AI技术的迅速发展&#xff0c;AI智能混剪工具逐渐成为内容创作的利器&#xff0c;尤其是AnKo&#xff0c;作为一款免费的AI创作平台&#xff0c;提供了多模型AI聚合工具平台&#xff0c;能为用户带来更高效…

【Hestia Project 数据集】美国化石燃料 CO₂ 排放数据

Hestia Project™ 是一个革命性的研究项目,旨在帮助城市更精确地量化和管理与气候变化相关的碳排放问题。该项目提供了细粒度(建筑、街道、工厂级别)的化石燃料 CO₂ 排放数据,并通过直观的三维可视化系统向公众、政策制定者、科学家和工业界提供详细的时空信息,支持碳管理…

【TCP】三次挥手,四次挥手详解--UDP和TCP协议详解

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…

传感云揭秘:边缘计算的革新力量

在当今快速发展的科技时代&#xff0c;传感云和边缘计算系统正逐渐成为人们关注的焦点。传感云作为物联网与云计算的结合体&#xff0c;通过虚拟化技术将物理节点转化为多个服务节点&#xff0c;为用户提供高效、便捷的服务。而边缘计算则是一种靠近数据源头或物端的网络边缘侧…

Springboot中的 Mapper 无法找到的 可能原因及解决方案

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. 问题所示 执行代码的时候,出现如下问题: A component required a bean of type cn.iocoder.yudao.module.gate.dal.mysql.logger.GateOperateLogMap…

【c++】开发环境IDE、常见调试方法(gdb等)、基础c++语法特性、算法OJ刷题、入门c++项目【持续更新】

1 开发环境&IDE 基本就是如下3款,个人使用体验&#xff1a; vscode&#xff1a;优点-轻量化&#xff0c;插件多&#xff0c;便于远程调试&#xff0c;缺点-配置复杂 clion&#xff1a;优点-集成环境&#xff0c;最易于上手&#xff0c;缺点-商业软件&#xff0c;收费 visu…

Leetcode做题记录----3

1474、删除链表M个节点之后的N个节点 思路&#xff1a; 1、两个循环解决问题 第一个循环移动M个位置&#xff0c;第二个循环确定移动N个位置后的&#xff0c;然后将M位置的节点的next指向&#xff0c;N位置后的节点即可 2、注意边界条件和判空处理 代码实现&#xff1a; pub…

pytorch快速入门——手写数字分类GPU加速

&#x1f451;主页&#xff1a;吾名招财 &#x1f453;简介&#xff1a;工科学硕&#xff0c;研究方向机器视觉&#xff0c;爱好较广泛… ​&#x1f4ab;签名&#xff1a;面朝大海&#xff0c;春暖花开&#xff01; pytorch快速入门——手写数字分类GPU加速 一、tensor1&#…

阿里wan2.1本地部署

1.安装虚拟环境&#xff0c; a) 安装python-3.11.8 b)在本地目录运行 - python -m venv Wan2.1-env - cd Scripts - activate 2.下载代码 git clone https://github.com/Wan-Video/Wan2.1.git cd Wan2.1 3.安装依赖库 pip install torch torchvision --index-url https://…

HTTPS建立连接过程

一、混合加密 通过混合加密的方式可以保证信息的机密性&#xff0c;解决了窃听的风险。 HTTPS采用的是对称加密和非对称加密结合的混合加密方式&#xff1a; &#xff08;1&#xff09; 在通信建立前采用非对称加密的方式交换会话密钥&#xff0c;后续就不再使用非对称加密。 &…

Leetcode-2272. Substring With Largest Variance [C++][Java]

目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-2272. Substring With Largest Variancehttps://leetcode.com/problems/substring-with-largest-variance/description/2272. 最大波动的子字符串 - 力扣&#xff08;LeetCode&#xff09;2272. 最大波动的子字符串…

蓝桥杯备赛 Day0_移动零

&#x1f388; 个人主页&#x1f449;&#xff1a;tbRNA-CSDN博客tbRNA-CSDN博客tbRNA-CSDN博客 &#x1f4af; 个人简介&#xff1a;在校大学生一枚&#x1f48b;. &#x1f60d; 希望我的文章对大家有着不一样的帮助&#xff0c;欢迎大家关注我&#xff0c;感谢大家的多多支持…

EDAS:投稿经验-word版本-问题解决

1. 字体不对&#xff0c;字体未嵌入问题 问题&#xff1a;word转PDF后&#xff0c;总是显示有字体格式不对&#xff08;忘记截图了&#xff09;。 办法&#xff1a;1. EDAS投稿PDF格式问题-CSDN博客-PDF上修改 IEEE论文检测的字体未嵌入问题Times New Ro…

TCP/IP协议中三次握手(Three-way Handshake)与四次挥手(Four-way Wave)

TCP/IP协议中三次握手&#xff08;Three-way Handshake&#xff09;与四次挥手&#xff08;Four-way Wave&#xff09; 一、TCP三次握手&#xff08;Three-way Handshake&#xff09;二、TCP四次挥手&#xff08;Four-way Wave&#xff09;三、常见问题解答总结为什么三次握手不…

代码随想录Day16

Day16 二叉树part06 LeetCode 530.二叉搜索树的最小绝对差 题目描述 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 输入&#xff1a;root [4,2,6,1,3] 输出&…