css常用的选择器介绍

news2024/11/18 7:28:55

        CSS(层叠样式表)选择器是CSS规则的一部分,它用于选择和定位网页上的元素,以便将样式应用到这些元素上。CSS选择器的种类繁多,每种选择器都有其特定的用途、特点和效率。在这篇文章中,我们将讨论一些常用的CSS选择器,以及它们的优先级和性能。


        常用的CSS选择器
        1. **通用选择器(Universal Selector)**
   通用选择器(`*`)匹配文档中的所有元素。它没有特定性,优先级最低。


   * {
       margin: 0;
       padding: 0;
   }


        2. **元素/类型选择器(Type Selector)**
   元素选择器匹配文档中所有指定类型的元素。


   p {
       font-size: 16px;
   }


        3. **类选择器(Class Selector)**
   类选择器匹配具有特定类名的所有元素。类名前面有一个点(`.`)。


   .error {
       color: red;
   }


        4. **ID选择器(ID Selector)**
   ID选择器匹配具有特定ID属性值的元素。ID名前面有一个井号(`#`)。


   #header {
       background-color: #333;
   }


        5. **属性选择器(Attribute Selector)**
   属性选择器根据元素的属性及其值来匹配元素。


   a[href="https://example.com"] {
       color: blue;
   }
 


        6. **后代选择器(Descendant Selector)**
   后代选择器匹配指定元素的后代元素。


   div p {
       text-indent: 2em;
   }
 


        7. **子选择器(Child Selector)**
   子选择器匹配指定元素的直接子元素。


   div > p {
       text-indent: 2em;
   }


        8. **相邻同胞选择器(Adjacent Sibling Selector)**
   相邻同胞选择器匹配紧接在指定元素后的同级元素。


   h1 + p {
       margin-top: 0;
   }
  


9. **通用同胞选择器(General Sibling Selector)**
   通用同胞选择器匹配指定元素后的所有同级元素。


   h1 ~ p {
       font-size: 14px;
   }


10. **伪类选择器(Pseudo-class Selector)**
    伪类选择器匹配处于特定状态或位置的元素。


    a:hover {
        text-decoration: underline;
    }
 


11. **伪元素选择器(Pseudo-element Selector)**
    伪元素选择器用于选择元素的特定部分。


    p::first-line {
        font-weight: bold;
    }


        不同选择器的特点
- **通用选择器**:适用于快速重置默认样式,但由于其匹配范围太广,应谨慎使用以避免性能问题。
- **元素/类型选择器**:简单直观,适用于基础样式定义。
- **类选择器**:可重用性强,适用于多个相似元素的样式定义。
- **ID选择器**:具有唯一性,适用于页面中唯一的元素或组件。
- **属性选择器**:灵活,可以根据元素的属性值来定义样式。
- **后代选择器**:适用于层级较深的元素样式定义。
- **子选择器**:比后代选择器更具体,只选择直接子元素。
- **相邻同胞选择器**:选择特定元素后的第一个同级元素。
- **通用同胞选择器**:选择特定元素后的所有同级元素。
- **伪类选择器**:用于定义元素状态变化的样式。
- **伪元素选择器**:用于选择和样式化文档中的特定部分。
        选择器的效率
        CSS选择器的效率主要取决于浏览器如何解析和匹配这些选择器。一般来说,选择器的效率从高到低可以大致排序如下:
1. **ID选择器**:最快,因为ID在页面中是唯一的。
2. **类选择器**:较快,因为类可以在页面中多次使用。
3. **元素选择器**:中等,因为它们匹配所有相同类型的元素。
4. **伪类选择器**:取决于伪类的类型,如`:hover`通常较快。
5. **属性选择器**:较慢,因为需要检查元素的属性。
6. **后代选择器**:较慢,因为需要遍历DOM树。
7. **子选择器**:较慢,但比后代选择器快,因为它不遍历孙级元素。
8. **相邻同胞选择器**:较慢,因为它需要检查兄弟元素。
9. **通用同胞选择选择器**:较慢,因为它需要检查所有后续的兄弟元素。
10. **通用选择器**:最慢,因为它匹配页面上的所有元素。
        选择器的优先级
        CSS选择器的优先级决定了当多个规则应用于同一个元素时,哪个规则将最终被应用。CSS优先级由四个部分组成,按重要性从高到低排列:
1. **重要性(!important)**:当在一个样式声明中使用了`!important`时,该声明将覆盖其他所有声明。
2. **内联样式**:直接在HTML元素上定义的样式具有最高的优先级。
3. **ID选择器**:ID选择器的优先级高于类选择器和元素选择器。
4. **类选择器、属性选择器、伪类选择器**:类选择器、属性选择器和伪类选择器的优先级高于元素选择器。
5. **元素选择器、伪元素选择器**:元素选择器和伪元素选择器的优先级较低。
6. **通用选择器、后代选择器、子选择器、相邻同胞选择器、通用同胞选择器**:这些选择器的优先级取决于它们的具体组合和位置。
        CSS优先级可以通过特异性(specificity)来量化,特异性是一个四位的数字,每一位代表一种选择器的类型。具体来说,特异性从高到低分别是:ID选择器、类选择器/属性选择器/伪类选择器、元素选择器/伪元素选择器、通用选择器。例如,`.class1 #id1`的特异性是`0111`,而`div p`的特异性是`0011`。
        总结
        CSS选择器是CSS的核心部分,它们允许开发者精确地控制网页上的样式。了解不同选择器的特点和优先级,可以帮助开发者更有效地编写和维护CSS代码。在实际开发中,应该尽量使用简洁、高效的选择器,避免使用过于复杂或低效的选择器,以提高网页的性能和可维护性。
在使用CSS选择器时,还应该注意以下几点:
- **可读性**:选择器应该易于理解,避免过于复杂或晦涩难懂的选择器。
- **可维护性**:选择器应该易于维护和更新,避免过度依赖特定的HTML结构。
- **性能**:选择器应该尽可能高效,特别是在处理大量元素或复杂页面时。
- **优先级**:理解选择器的优先级,避免在样式表中出现不必要的覆盖和冲突。
        通过合理使用CSS选择器,我们可以创建出结构清晰、易于维护且性能优异的样式表,从而为用户提供更好的网页体验。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

oracle11安装及使用

安装oracle11 可访问我的资源 也可以网盘获取 链接:https://pan.baidu.com/s/1RDrGkqDA7tfKRnpJXUBMDw 提取码:z3na 上传安装包到服务器 在指定目录下创建文件夹installfile,我是在/newdisk/oracle/installfile,将安装文件…

数码管静态显示(一)

1.原理 计数0.5S,一个时钟周期20ns,因此要计数0.5s就是要从0计数到24999_999。 级联两个芯片可以实现16位得串并转换 MR是主复位端口,横线表示低电平有效。通常接到vcc,防止数据得清零。DS输入数据,SHCP输入时钟&#…

C#,动态规划(DP)金矿问题(Gold Mine Problem)的算法与源代码

1 金矿问题(Gold Mine Problem) 给定一个N*M尺寸的金矿,每个点都有一个非负数表示当前点所含的黄金数目,最开始矿工位于第一列,但是可以位于任意行。矿工只能向右,右上,右下三个方向移动。问该…

CTFHub技能树web之XSS

在XSS系列的题目中,由于需要使用能够接受XSS数据的平台,并且由于使用的是CTFHub的模拟机器人点击我们的虚假URL,因此使用的XSS平台不能是自己本地搭建的,如果是本地的模拟点击的机器人将无法访问我们给的这个URL地址,也…

【前端素材】推荐优质在线通用果蔬商城电商网页eStore平台模板(附源码)

一、需求分析 1、系统定义 通用果蔬网站是指专门提供各类果蔬产品展示和销售的在线平台。它将不同种类的新鲜水果、蔬菜、干果、坚果等聚集在一起,为消费者提供方便、快捷的购物渠道。 2、功能需求 通用果蔬网站是指专门提供各类果蔬产品展示和销售的在线平台。…

u盘文件损坏怎么恢复数据?分享3个U盘数据恢复方法

在现代生活中,U盘作为一种便携式存储设备,已经广泛地应用于工作和生活的各个方面。然而,无论是由于硬件故障、病毒感染还是不当操作,U盘中的数据都有可能遭受损坏或丢失。面对这种情况,如何有效地恢复U盘中的文件成为了…

openGauss学习笔记-231 openGauss性能调优-系统调优-资源负载管理-资源负载管理概述

文章目录 openGauss学习笔记-231 openGauss性能调优-系统调优-资源负载管理-资源负载管理概述231.1 功能描述231.2 相关概念**231.2.1 资源管理****231.2.2 控制组****231.2.3 资源池** openGauss学习笔记-231 openGauss性能调优-系统调优-资源负载管理-资源负载管理概述 231.…

Linux系统——Nginx负载均衡模式

目录 一、Nginx优点 二、Nginx配置项——Conf Upstream 模块 三、Nginx负载均衡 1.负载均衡策略 1.1轮询 1.2IP_hash 1.3URL_hash 1.4Least_conn 1.5Weight 1.6Fair 2.Nginx负载均衡配置状态参数 3.什么是会话保持 3.1会话保持有什么作用呢 3.2Nginx会话保持 3…

果园预售系统|基于Springboot的果园预售系统设计与实现(源码+数据库+文档)

果园预售系统目录 目录 基于Springboot的果园预售系统设计与实现 一、前言 二、系统功能设计 三、系统功能设计 1 、果园管理 2、水果管理 3、果树管理 4、公告管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…

“智农”-高标准农田

高标准农田是指通过土地整治、土壤改良、水利设施、农电配套、机械化作业等措施,提升农田质量和生产能力,达到田块平整、集中连片、设施完善、节水高效、宜机作业、土壤肥沃、生态友好、抗灾能力强、与现代农业生产和经营方式相适应的旱涝保收、稳产高产…

Unity(第十六部)声音和视频

声音 1、听声音 创建相机的时候,相机自带Audio Listener 多个相机的时候,我们只保留一个Audio Listener就可以 2、声音源,环境音 添加Audio Source就行中文叫声音源 3、脚本执行的声音 using System.Collections; using System.Collection…

【OpenGL的着色器03】内置变量(gl_Position等)

目录 一、说明 二、着色器的变量 2.1 着色器变量 2.2 着色器内置变量 三、最常见内置变量使用范例 3.1 常见着色器变量 3.2 示例1: gl_PointSize 3.3 示例2:gl_Position 3.4 gl_FragColor 3.5 渲染点片元坐标gl_PointCoord 3.6 gl_PointCoo…

使用 Helm 安装 极狐GitLab

本篇作者 徐晓伟 使用 Helm 简便快捷的部署与管理 极狐GitLab 前提条件 k8s 完成 helm 的配置 k8s 完成 ingress 的配置 内存至少 10G 演示环境是 龙蜥 Anolis 8.4(即:CentOS 8.4)最小化安装k8s 版本 1.28.2calico 版本 3.26.1nginx ingre…

继续预训练对大语言模型的影响

翻译自文章:Investigating Continual Pretraining in Large Language Models: Insights and Implications 摘要 本文研究了大型语言模型(LLMs)中不断学习(CL)的不断发展领域,重点是制定有效和可持续的训练…

数据库分库分表中间件选择

目前分库分表的中间件有三种设计思路,分别是: 采用分散式架构,适用于用Java开发的高性能轻量级OLTP应用程序,以Sharding-JDBC为代表。采用中间层Proxy架构,提供了静态输入和所有语言支持,适用于OLAP应用程…

云计算 2月26号 (进程管理和常用命令)

一、权限扩展 文件权限管理之: 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ---------------- f…

day57 集合 List Set Map

List实现类 List接口特点:元素有序 可重复 Arraylist 可变数组 jdk 8 以前Arraylist容量初始值10 jdk8 之后初始值为0,添加数据时,容量为10; ArrayList与Vector的区别? LinkList:双向链表 优点&#xff1…

linux系统---LNMP架构下部署Discuz社区论坛与Wordpress博客

目录 一、编译安装Nginx 1、关闭防火墙 2、安装依赖包 3、创建运行用户 4、压缩软件包并编译安装 5、软链接路径优化 ​编辑 6、添加Nginx系统服务 二.编译安装MySQL服务 1.安装依赖环境 ​编辑 2、创建运行用户 3、编译安装 ​编辑 4、修改mysql 配置文件 5、…

Opencv基本操作 (上)

目录 图像基本操作 阈值与平滑处理 图像阈值 图像平滑处理 图像形态学操作 图像梯度计算 Sobel 算子 Canny 边缘检测 图像金字塔与轮廓检测 图像轮廓 接口定义 轮廓绘制 轮廓特征与相似 模板匹配 傅里叶变换 傅里叶变换的作用 滤波 图像基本操作 读取图像&…

electron 项目环境变量使用注意 public

问题 最近项目中,electron需要调用唤醒本地的另一个客户端程序,但是这个客户端程序报错了。sqlite3 报out of memory. apiSHGetFolderPathW 获取CSIDL_COMMON_DOCUMENTS报 1008,试图引用不存在的令牌。 排查 一看到这个,首先想…