CSS: 选择器与三大特性

news2025/7/14 13:42:13

标签选择器

标签选择器就是选择一些HTML的不同标签,由于它们的标签需求不同,所以CSS需要设置标签去选择它们,为满足它们的需求给予对应的属性

基础选择器

标签选择器

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        p{
            color: brown;
        }
    </style>
</head>
<body>
    <p>Hello,World</p>
</body>
</html>

这里的<style></style>里面的p{}就是标签选择器,它选择了<p></p>标签,将<p></p>标签内的文本颜色修改为红色 

演示结果

这里的Hello,World是红色的

 类选择器

类选择器的存在是为了差异化每个选择器标签,它的基本格式为

.类名{所需要的属性}

<div class="类名 类名 ...">文本</div>

基本代码

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        .set{
            color: brown;
        }
        .size{
            font-size: 50px;
        }
    </style>
</head>
<body>
    <p class="set size">Hello,World</p>
</body>
</html>

演示结果

这里<p></p>的文本添加了两个类型名,分别是更改颜色和大小的类选择器

id选择器 

id选择器和类选择器的使用方式是相同的,唯一的不同点在于id选择器只能引用一个类名,而类选择器可以引用多个类名

基本使用方式

#id{属性}

<div id="属性名">文本内容</div> 

代码演示

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        #set{
            color: brown;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div id="set">Hello,World</div>
</body>
</html>

演示结果

 

通配选择器 

通配选择器格式

*{属性}

通配选择器会对所有文本生效

演示代码

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        *{
            color:aqua;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div>Hello,World</div>
</body>
</html>

演示结果

CSS复合选择器

复合选择器是由基础选择器构成的,当我们的代码非常庞大时,复合选择器可以用来更准确的定位某个标签,将它的属性改写

后代选择器

后代选择器是由两个父子选择器构成的,当标签的class既满足父标签又满足子标签那么它的属性才会被后代选择器修改

基本结构

.father son{}

我们来演示一下

演示代码

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        .father span{
            color: blueviolet;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div class="father">
        <span>Ni Hao</span>
            <p>
                <span>
                    Hello,World;
                </span>
            </p>
    </div>
</body>
</html>

演示结果

 我们可以得知当文本满足后代选择器的两个先后条件时,后代选择器的更改生效,只要满足子标签在父标签的内部即可

子选择器

子选择器需要子标签是父标签里面的第一个直接标签,也就是说子标签必须要是父标签的亲儿子标签,否则不生效

语法

父亲>儿子{}

演示代码

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        div>span{
            color: blueviolet;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div>
        <span>Ni Hao</span>
            <p>
                <span>
                    Hello,World;
                </span>
            </p>
    </div>
</body>
</html>

演示结果

我们可以看到,同样是<span></span>标签,但其中鄙视<div></div>标签的亲儿子标签不会被后代选择器选择 

并集选择器

并集选择器可以在同一行定义许多个其它的复合选择器或基础选择器

语法

元素1 元素2{} 

演示代码

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        div,span,.father div{
            color: blueviolet;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div>WeChat</div>
    <span>Ni Hao</span>
    <p>Hello,World;</p>
</body>
</html>

演示结果

我们可以发现这个并集选择器同时选择了<span></span>和<div></div>两个标签

当然我们也可以并上子选择器和后代选择器

演示代码

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        .blue span,div>span{
            color: blueviolet;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div>
        <p class="blue">
            <span>P内的span文字标签</span>
            <div>P内的div文字标签</div>
        </p>
        <span>div内的span文字标签</span>
    </div>
</body>
</html>

 演示结果

我们可以看到并集选择器同时完成了子选择器和后代选择器的功能

伪类选择器 

用于给一些元素添加某种效果

链接伪类选择器

a:link,选择未被访问的链接

a:visited,选择已经被访问的链接

a:hover,选择鼠标悬停的链接

a:active,选择鼠标点击的链接

演示代码

<!DOCTYPE html>
<head>
    <title>HOME</title>
    <style>
        a{
            font-size: 50px;
        }
        a:link {
            color: rgb(165, 14, 14);
        }
        a:active {
            color: rgb(249, 5, 5);
        }
        a:hover {
            color: rgb(153, 0, 255);
        }
        a:visited {
            color: rgb(127, 253, 2);
        }
    </style>
</head>
<body>
    <a href="https://www.bilibili.com/">bilibili</a>
</body>
</html>

演示结果

 当我们鼠标悬停时

这里由于浏览器的安全限制我们就先不演示其它的了 

:focus 伪类选择器

focus用于获取表单,focus通过获取表单得到修改表单的权限

我们来演示一下

演示代码

当我们点击这些表单的时候,这些表单便会因为选择器添加的属性而变色

CSS三大特性 

层叠性

当我们由两个相同的选择器时,那么就会发生命名冲突,那么命名冲突后,编译器会怎么选择属性呢

演示代码

<html>
<head>
    <title>Document</title>
    <style>
        p{
            color: brown;
            font-size: 50px;
        }
        p{
            color: blue;
        }
    </style>
</head>
<body>
    <p>Hello,World</p>
</body>
</html>

演示结果

当由两个p选择器时,后面的选择器属性会覆盖前面的,没有被覆盖的属性会继承下来,比如颜色被覆盖,但是文本大小被继承下来

继承性 

在CSS中子进程会继承父进程的特性

演示代码

<html>
<head>
    <title>Document</title>
    <style>
        div{
            color: brown;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div>
        your name   
    <p>Hello,World</p>
    </div>
</body>
</html>

演示结果

这里的<p></p>标签继承了<div></div>标签的特性

优先级 

当一个元素被多个选择器选择会出现两种情况

选择器相同,执行层优先

选择器不同,执行优先级

选择器的优先级取决于,选择器的权重

选择器权重
从父级继承 / 通配符*0.0.0.0
标签选择器0.0.0.1
类选择器 / 伪类选择器0.0.1.0
id选择器0.1.0.0
行内样式style=""1.0.0.0
!important 修饰

代码演示

<html>
<head>
    <title>Document</title>
    <style>
        div{
            color: brown;
            font-size: 50px;
        }
        .father
        {
            color:black;
        }
        #son{
            color: blue;
        }
    </style>
</head>
<body>
    <div class="father" id="son">
        Hello,World
    </div>
</body>
</html>

演示结果

因为id选择器权重最高,所以是蓝色

还有一个!important元素,当选择器加上它时,那么它的优先级就是最高

当有两个元素都加了!important时,那么就比较它们各自的优先级,如果它们时相同的选择器,那么就比它们那个在后面

代码演示

<html>
<head>
    <title>Document</title>
    <style>
        div{
            color: brown;
            font-size: 50px;
        }
        #son{
            color: blue !important;
        }
        .father
        {
            color:black !important;
        }
    </style>
</head>
<body>
    <div class="father" id="son">
        Hello,World
    </div>
</body>
</html>

演示结果

 虽然father加了!important,但是son也加了,所以最后比较的就是son和father的优先级

 权重的叠加

当我们使用后代选择器或者子选择器时,便会发生权重的叠加

比如div span的权重叠加起来就是 0.0.0.1 + 0.0.0.1 = 0.0.0.2

div .father的权重                            0.0.0.1 + 0.0.1.0 =0.0.1.1

.father .son的权重                          0.0.1.0 + 0.0.1.0 =0.0.2.0

权重会在对应的位置叠加,但权重不会进位

代码演示

<html>
<head>
    <title>Document</title>
    <style>
        .FATHER span{
            color: brown;
            font-size: 50px;
        }
        div span
        {
            color: blue;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div class="FATHER">
        <span>
            HELLO,WORLD
        </span>
    </div>
</body>
</html>

演示结果

因为.FATHER + span的权重大于 div + span的权重,所以最后是.FATHER + span选择器生效

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

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

相关文章

M0基础篇之ADC

本节课使用到的例程 一、Single模式例程基本配置的解释 在例程中我们只使用到了PA25这一个通道&#xff0c;因此我们使用的是Single这个模式&#xff0c;也就是我们在配置模式的时候使用的是单一转换。 进行多个通道的测量我们可以使用Sequence这个模式。 二、Single模式例程基…

OSPF综合实验实验报告

OSPF综合实验实验报告 一、实验拓扑 二、实验要求 1.R5为ISP&#xff0c;其上只能配置IP地址&#xff1b;R4作为企业边界路由器&#xff0c; 出口公网地址需要通过PPP协议获取&#xff0c;并进行chap认证 2&#xff0c;整个OSPF环境IP基于172.16.0.0/16划分&#xff1b; 3&…

vue3+ant design vue + Sortable实现多级表格列拖动

1、最近遇到个需求&#xff0c;需使用vue3ant design vue Sortable实现多级表格的表头允许用户拖拽移动。即当用户拖拽一级表头时&#xff0c;其对应的子级表头及数据应同步移动&#xff0c;并且只允许一级非固定表头允许拖拽。 2、代码 <a-table:data-source"rowDat…

基于开源链动2+1模式AI智能名片S2B2C商城小程序的分销价格管控机制研究

摘要&#xff1a;本文聚焦开源链动21模式AI智能名片S2B2C商城小程序在分销体系中的价格管控机制&#xff0c;通过解析其技术架构与商业模式&#xff0c;揭示平台如何通过"去中心化裂变中心化管控"双轨机制实现价格统一。研究显示&#xff0c;该模式通过区块链存证技术…

阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化

作者&#xff1a;裘文成&#xff08;翊韬&#xff09; 摘要 随着企业全球化业务的扩展&#xff0c;如何高效、经济且可靠地将分布在海外各地的应用与基础设施日志统一采集至阿里云日志服务 (SLS) 进行分析与监控&#xff0c;已成为关键挑战。 本文聚焦于阿里云高性能日志采集…

体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链

在竞技体育与全民健身并行的时代背景下&#xff0c;体育培训机构正面临双重挑战&#xff1a;既要通过科学训练提升学员竞技水平&#xff0c;又需严格把控运动安全风险。作为实验室数字化管理的核心工具&#xff0c;质检LIMS系统凭借其标准化流程管控与智能化数据分析能力&#…

设计模式【cpp实现版本】

文章目录 设计模式1.单例模式代码设计1.饿汉式单例模式2.懒汉式单例模式 2.简单工厂和工厂方法1.简单工厂2.工厂方法 3.抽象工厂模式4.代理模式5.装饰器模式6.适配器模式7.观察者模式 设计模式 1.单例模式代码设计 ​ 为什么需要单例模式&#xff0c;在我们的项目设计中&…

阿维塔汽车CAN总线数据适配技术解析与免破线数据采集实践

在智能电动汽车快速迭代的背景下&#xff0c;阿维塔凭借其高度集成的电子电气架构成为行业焦点。昨天我们经过实测&#xff0c;适配了该车型CAN总线数据适配的核心技术&#xff0c;从硬件接口定位、无损伤接线方案到关键动力系统数据解码进行系统性剖析&#xff0c;为智能诊断、…

用纯HTML和CSS仿写知乎登录页面

这是知乎的官方的登录页面 这是我的登录页面&#xff0c;使用 HTML CSS 进行编写。我觉得这是一个供前端新手练手的一个不错的小项目&#xff0c; 在这个系列&#xff0c;我将会用 HTML CSS 编写各大知名网站的登录界面&#xff0c;欢迎大家交流探讨。 源码展示: body{ba…

【Redis】C++如何使用redis

文章目录 1. redis客户端2. 使用通用命令3. 使用string命令3. 使用list命令4. 使用set命令5. 使用hash命令6. 使用zset命令 1. redis客户端 在前面的学习种&#xff0c;我们都是使用redis命令行客户端手动执行操作的&#xff1b;但是更多的时候&#xff0c;需要使用redis的api…

考研系列-408真题计算机组成原理篇(2010-2014)

写在前面 此文章是本人在备考过程中408真题计算机组成原理部分(2010年-2014年)的易错题及相应的知识点整理,后期复习也常常用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2010年 1.DRAM芯片的排列和编址方式 这个区别于多体交叉编址:这个可以理…

47.电压跌落与瞬时中断干扰的防护改善措施

电压跌落与瞬时中断干扰的防护改善措施 1. 电压跌落与瞬时中断的影响机理2. 解决措施 1. 电压跌落与瞬时中断的影响机理 跌落发生的常见场景如下&#xff1a; &#xff08;1&#xff09;电源插头接触不良&#xff0c;瞬态中断即刻恢复&#xff1b; &#xff08;2&#xff09;电…

极狐Gitlab 里程碑功能介绍

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 里程碑 (BASIC ALL) 极狐GitLab 中的里程碑是一种跟踪议题和合并请求的方法&#xff0c;这些请求是为了在特定时间段内实现更…

一次Android Fragment内存泄露的bug解决记录|Fragment not attach to an Activity

Bug描述 前些天出现了一个 bug。Activity 页面里放了一个 ViewPager2&#xff0c;其中的每一页是一个 Fragment。其中第一页的 Fragment 实现了一个监听器&#xff0c;当事件发生和首次添加到监听器管理者 listener manager 时&#xff0c;manager 会通知所有监听者&#xff0…

LVGL图像导入和解码

LVGL版本&#xff1a;8.1 概述 在LVGL中&#xff0c;可以导入多种不同类型的图像&#xff1a; 经转换器生成的C语言数组&#xff0c;适用于页面中不常改变的固定图像。存储系统中的外部图像&#xff0c;比较灵活&#xff0c;可以通过插卡或从网络中获取&#xff0c;但需要配置…

project从入门到精通(五)

目录 创建资源的基本信息 在project中创建资源工作表 ​编辑信息详解 最大单位 标准费率与加班费率 每次使用成本 成本累算 基准日历 三类资源工作表的总结——不同的资源必须要设置的属性 除了资源名称是必须设置的之外&#xff0c;剩余的资源的可设置选项如下图所…

第3.2.3节 Android动态调用链路的获取

3.2.3 Android App动态调用链路 在Android应用中&#xff0c;动态调用链路指的是应用在运行时的调用路径。这通常涉及到方法调用的顺序和调用关系&#xff0c;特别是在应用的复杂逻辑中&#xff0c;理解这些调用链路对于调试和性能优化非常重要。 1&#xff0c;动态调用链路获…

亿级流量系统架构设计与实战(六)

微服务架构与网络调用 当某个业务从单体服务架构转变为微服务架构后,多个服务之间会通过网络调用形式形成错综复杂的依赖关系。 在微服务架构中 , 一个微服务正常工作依赖它与其他微服务之间的多级网络调用。 网络是脆弱的 , RPC 请求有较大的概率会遇到超时 、 抖动 、 断…

浅聊find_package命令的搜索模式(Search Modes)

背景 find_package应该算是我们使用最多的cmake命令了。但是它是如何找到上游库的.cmake文件的&#xff1f; 根据官方文档&#xff0c;整理下find_package涉及到的搜索模式。 搜索模式 find_package涉及到的搜索模式有两种&#xff1a;模块模式(Module mode)和配置模式(Conf…

【LLaMA-Factory】使用LoRa微调训练DeepSeek-R1-Distill-Qwen-7B

【LLaMA-Factory】使用LoRa微调训练DeepSeek-R1-Distill-Qwen-7B 本地环境说明禁用开源驱动nouveau安装nvidia-smi安装Git环境安装Anaconda(conda)环境下载DeepSeek-R1-Distill-Qwen-7B模型安装LLaMA-Factory下载LLaMA-Factory安装LLaMA-Factory依赖修改环境变量安装deepspeedA…