CSS选择器总结

news2024/11/16 8:40:47

作者:爱塔居

专栏:JavaEE​​​​​

作者简介:大三学生,希望和大家一起进步!

文章目录

文章目录

一、CSS选择器的概念

二、基础选择器

2.1 标签选择器

2.2 类选择器

 2.3 id选择器

 2.3 通配符选择器

 三、复合选择器

3.1 后代选择器

3.3 子选择器 

3.4 并集选择器

3.5 伪类选择器

3.5.1 链接伪类选择器

3.5.2 focus伪类选择器


一、CSS选择器的概念

在CSS中,选择器是选取需设置样式的元素的模式。要先选中元素,才能设置元素的属性。

二、基础选择器

作用特点
标签选择器能选出所有相同的标签不能差异化选择
类选择器能选出一个或多个标签根据需求选择,最灵活,最常用
id选择器能选出一个标签同一个id在一个HTML中只能出现一次
通配符选择器选择所有标签特殊情况下使用

2.1 标签选择器

🍓特点:

1.能快速把同一类型的标签都选出来

2.但是不能差异化选择

将所有p标签的颜色设置为cadeblue颜色,将div标签的颜色全设置为蓝色。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    p{
        color: cadetblue;
    }
    div{
        color:blue;
    }
    </style>
</head>
<body>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Et expedita non sapiente alias enim ut a accusamus laudantium suscipit. Earum ullam hic officia quibusdam id perferendis doloribus tempora nisi commodi.</p>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto, provident? Iste eos soluta provident quam? Voluptatum magni officia harum facilis quo ullam cupiditate? Modi mollitia reprehenderit corporis explicabo ab iure.</p>
    <div>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Pariatur fugiat possimus mollitia enim laboriosam, dolores eligendi suscipit itaque quas. Aliquid odio explicabo debitis maiores mollitia ullam tenetur nisi perferendis quibusdam.</div>
    <div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Exercitationem soluta praesentium quia sapiente mollitia expedita voluptates illo ipsum, minus officia libero maiores eos, earum eveniet quae quasi obcaecati nemo sequi.</div>
</body>
</html>

 生成:

2.2 类选择器

🍎特点:

1.差异化表示不同的标签

2.可以让多个标签的都使用同一个标签

🌵语法细节:

1.类名用.开头的

2.下方的标签使用class属性来调用

3.一个类可以被多个标签使用,一个标签也能使用多个类(多个类名能使用空格分隔,这种做法可以让代码更好复用)

4.如果是长的类名,可以使用-分割

5.不要使用纯数字、中文、标签名来命名类名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    p{
        color: cadetblue;
    }
    div{
        color:blue;
    }
    .green{
        color: green;
    }
    .red{
        color: red;
    }
    </style>
</head>
<body>
    <p class="green">Lorem ipsum dolor sit amet consectetur adipisicing elit. Et expedita non sapiente alias enim ut a accusamus laudantium suscipit. Earum ullam hic officia quibusdam id perferendis doloribus tempora nisi commodi.</p>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto, provident? Iste eos soluta provident quam? Voluptatum magni officia harum facilis quo ullam cupiditate? Modi mollitia reprehenderit corporis explicabo ab iure.</p>
    <div class="red">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Pariatur fugiat possimus mollitia enim laboriosam, dolores eligendi suscipit itaque quas. Aliquid odio explicabo debitis maiores mollitia ullam tenetur nisi perferendis quibusdam.</div>
    <div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Exercitationem soluta praesentium quia sapiente mollitia expedita voluptates illo ipsum, minus officia libero maiores eos, earum eveniet quae quasi obcaecati nemo sequi.</div>
</body>
</html>

效果: 

 注意:一个标签可以同时使用多个类名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    p{
        color: cadetblue;
    }
    div{
        color:blue;
        
    }
    .green{
        color: green;
    }
    .red{
        color: red;
    }
    </style>
</head>
<body>
    <p class="green">Lorem ipsum dolor sit amet consectetur adipisicing elit. Et expedita non sapiente alias enim ut a accusamus laudantium suscipit. Earum ullam hic officia quibusdam id perferendis doloribus tempora nisi commodi.</p>
    <p class="green">Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto, provident? Iste eos soluta provident quam? Voluptatum magni officia harum facilis quo ullam cupiditate? Modi mollitia reprehenderit corporis explicabo ab iure.</p>
    <div class="red">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Pariatur fugiat possimus mollitia enim laboriosam, dolores eligendi suscipit itaque quas. Aliquid odio explicabo debitis maiores mollitia ullam tenetur nisi perferendis quibusdam.</div>
    <div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Exercitationem soluta praesentium quia sapiente mollitia expedita voluptates illo ipsum, minus officia libero maiores eos, earum eveniet quae quasi obcaecati nemo sequi.</div>
    
</body>
</html>

 2.3 id选择器

和类选择器类似

1.CSS中使用#开头,表示id选择器

2.id选择器的值和html中某个元素的id值相同

3.html的元素id不必带#

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    #green{
        color: green;
    }
   
    </style>
</head>
<body>
    <p id="green">Lorem ipsum dolor sit amet consectetur adipisicing elit. Et expedita non sapiente alias enim ut a accusamus laudantium suscipit. Earum ullam hic officia quibusdam id perferendis doloribus tempora nisi commodi.</p>
</body>
</html>

效果:

 2.3 通配符选择器

使用*的定义,选取所有的标签。

就比如下列代码,将所有内容设置为红色,不需要被页面结构调用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    *{
        color: red;
    }
   
    </style>
</head>
<body>
    <div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque eius dicta consequatur. Nihil nisi id est quibusdam deleniti, autem rerum consequatur nesciunt perspiciatis! Nam atque debitis obcaecati excepturi expedita saepe?</div>
    <div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Animi ex saepe quam, a eos voluptates delectus neque voluptatibus reiciendis eveniet quaerat obcaecati. Eligendi perferendis delectus, ipsa quas repudiandae non autem!</div>
    <p id="green">Lorem ipsum dolor sit amet consectetur adipisicing elit. Et expedita non sapiente alias enim ut a accusamus laudantium suscipit. Earum ullam hic officia quibusdam id perferendis doloribus tempora nisi commodi.</p>
</body>
</html>

效果:

 三、复合选择器

选择器作用注意事项
后代选择器选择后代元素可以是孙子元素
子选择器选择子元素只能选亲儿子,不能选孙子
并集选择器选择相同样式的元素更好地做到代码复用
链接伪类选择器选择不同状态的链接重点掌握a:hover的写法
:focuse伪类选择器选择被选中的元素重点掌握input:focus

3.1 后代选择器

选择某个父元素中的某一个子元素

元素1 元素2 {样式声明}

元素1和元素2要使用空格分割

元素1是父级,元素2是子级,只选元素2,不影响元素1

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    ul li{
        color: red;
    }
    ol li{
        color:green
    }
    </style>
</head>
<body>
  <ul>
<li>111</li>
<li>222</li>
  </ul>
  <ol>
    <li>333</li>
    <li>444</li>
  </ol>
</body>
</html>

 也可以是孙子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    ul div{
        color: red;
    }
    ol li{
        color:green
    }
    </style>
</head>
<body>
  <ul>
<li>111</li>
<li><div>222</div></li>
  </ul>
  <ol>
    <li>333</li>
    <li>444</li>
  </ol>
</body>
</html>

3.3 子选择器 

和后代选择器类似,但只能选择子标签

元素1>元素2 {样式声明}

使用大于号分隔

只选亲儿子,不选孙子元素

<div class="two">

        <a href="#">链接1</a>

        <p><a href="#">链接2</a></p>

<div>

后代选择器的写法,会把链接1和2都选中

.two a{

color:red;

}

子选择器的写法,只选链接1

.two>a{

color:red;

}

3.4 并集选择器

用于选择多组标签(集体声明)

元素1,元素2{样式声明}

1.通过逗号分割多个元素

2.表示同时选中元素1和元素2

3.任何基础选择器都可以使用并集选择器

4.并集选择器建议竖着写,每个选择器占一行。(最后一个选择器不能加逗号)

代码示例:

<div>苹果</div>

<h3>香蕉</h3>

<ul>

        <li>鸭梨</li>

        <li>橙子</li>

</ul>

1.把苹果和香蕉颜色改成红色

div,

h3{

        color;red;

}

2.把鸭梨和橙子也一起改成红色

div,

h3,

ul>li{

        color:red;

}

3.5 伪类选择器

3.5.1 链接伪类选择器

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

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

a:hover 选择鼠标指针悬停上的链接

a:active 选择活动链接(鼠标按下但是未弹起)

示例:

<a href="#">小猫</a>

a:link{

        color:black;

        text-decoration:none;

}

a:visited{

        color:green;

}

a:hover{

        color:red;

}

a:active{

        color:blue;

}

🍇如何让一个已经被访问过的链接恢复成未访问的状态?

ctrl+shift+delete

【注意】

1.按照LVHA{link,visited,hover,active)的顺序书写,否则会记忆规则“绿化”。

2.浏览器的a标签都有默认样式,一般实际开发都需要单独制定样式。

3.实际开发主要给链接做一个样式,然后给hover做一个样式即可。

3.5.2 focus伪类选择器

选取获取焦点的input表单元素。

<div class="three">

        <input type="text">

        <input tepe="text">

         <input type="text">

         <input type="text">

</div>

.three>input:focus{

        color:red;

}

此时被选中的表单的字体就会变成红色。

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

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

相关文章

【mysql环境】mysql的多种安装方法、环境配置总结

目录 第一步&#xff1a;mysql安装方法 方法一&#xff1a; 方法二&#xff1a; 方法三&#xff1a; 第二步&#xff1a;配置环境变量 第三步&#xff1a;验证是否配置成功 第一步&#xff1a;mysql安装方法 方法一&#xff1a; 下载MSI安装程序&#xff0c;进行mysql的…

解决多ffmpeg环境冲突问题

解决多ffmpeg环境冲突问题 问题描述&#xff1a; 使用make安装了ffmpeg-5.1&#xff0c;安装目录目录位于/usr/loacl/ffmpeg&#xff0c;但是使用ffmpeg -version命令出来的版本是4.3&#xff0c;如下图所示&#xff1a; 解决方案&#xff1a; 可以使用以下命令来确定正在…

redis源码之:扩容后的dictScan遍历顺序与JDK的concurrentHashMap 扩容机制

进入正题前&#xff0c;先来复习下关于2次幂的mod运算 设n为2次幂&#xff0c;数a mod n 等价于 a & n-1 从二进制来看&#xff0c;相当于余数为a省去n最高位左侧的所有位(含最高位)&#xff0c;保留n右侧所有低位即为余数 如&#xff1a;a 7(0000_0111),n4(0000_0100),通…

Linux挂载详解

Linux 系统中“一切皆文件”&#xff0c;所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来&#xff0c;任何硬件设备也都是文件&#xff0c;它们各有自己的一套文件系统&#xff08;文件目录结构&#xff09;。 因此产生的问题是&#xff0c;当在 Linux 系统中使…

高考完,报了个嵌入式专业~~

正文 大家好&#xff0c;我是bug菌~ 最近高考成绩陆续公布&#xff0c;也是看到了一家欢喜一家忧心&#xff0c;确实像我们在外面打拼过的这群人&#xff0c;就深有体会:"高考确实是人生的一道分水岭"。 不过今天这里主要是介绍一下嵌入式行业相关的一些专业学校&…

一文掌握设计模式(定义+UML类图+应用)

一、引子 从学编程一开始就被告知&#xff0c;要想做一名优秀的程序员两大必要技能&#xff1a;1.源码阅读(JDK、C等底层语言封装) 2.设计模式(使用某种语言优雅的落地典型场景功能)。一般随着工作年限的增长&#xff0c;被迫对底层语言/框架源码阅读的越来愈多&#xff0c;但是…

软件的演练场景编排的主要作用是什么?

在软件开发过程中&#xff0c;演练场景编排是一种重要的方法&#xff0c;旨在提供一个模拟真实环境的平台&#xff0c;帮助开发团队和用户测试和验证软件的功能、性能和适应性&#xff0c;那软件的演练场景编排的主要作用是什么&#xff1f; 软件演练场景编排是指通过创建特定的…

【Vue2.0源码学习】实例方法篇-数据相关方法

文章目录 0. 前言1. vm.$watch1.1 用法回顾1.2 内部原理 2. vm.$set2.1 用法回顾2.2 内部原理 3. vm.$delete3.1 用法回顾3.2 内部原理 0. 前言 与数据相关的实例方法有 3 个&#xff0c;分别是vm.$set、vm.$delete和vm.$watch。它们是在stateMixin函数中挂载到Vue原型上的&am…

MMDeploy SDK使用记录(ncnn)

参考&#xff1a;mmpose/projects/rtmpose at main open-mmlab/mmpose GitHub MMDeploy 提供了一系列工具&#xff0c;帮助我们更轻松的将 OpenMMLab 下的算法部署到各种设备与平台上。目前&#xff0c;MMDeploy 可以把 PyTorch 模型转换为 ONNX、TorchScript 等和设备无关的…

RabbitMQ 能保证消息可靠性吗

系列文章目录 消息队列选型——为什么选择RabbitMQ RabbitMQ 五种消息模型 RabbitMQ 能保证消息可靠性吗 系列文章目录前言一、消息可靠性的定义二、几种不可靠的场景三、防意外丢失1. 消息持久化2. 队列持久化3. 发布确认3.1 简单发布确认3.2 批量发布确认3.3 异步发布确认 4…

Vector - CAPL - CAPL入门 - 01

前面已经介绍了很多CAPL相关的函数极其应用&#xff0c;今天CAPL能够完成的功能来介绍在车载网络测试中都能够帮助测试工程师完成哪些工作&#xff1f;让我们对它有一个最基础的认识。 CAPL在总线中的应用 > 分析特定消息或特定数据 > 分析数据流量 > 创建和修改工具…

智慧班牌系统源码,相关技术:springboot,elmentui ,Quartz,jpa,jwt

电子班牌系统的主要功能包括&#xff1a;班级管理、学生信息管理、教师管理、课程管理、作业管理、考试管理、公告管理、评价管理、学校消息发布等。在班级管理方面&#xff0c;该系统可以实现教师对班级的整体管理以及学生个人信息的管理&#xff0c;包括个人信息、考试成绩、…

【Java】Java核心 72:XML (上)

文章目录 1 XML概述什么是XMLXML作用 2 编写第1个XML文件需求效果步骤 3 XML的组成&#xff1a;声明和元素XML组成文档声明元素&#xff08;标签、标记&#xff09; 4 XML的组成&#xff1a;属性、注释和转义字符属性的语法注释转义字符[实体字符]小结 1 XML概述 什么是XML 英…

rabbitmq设置允许外部访问

rabbitmq默认端口为15672,用户名和密码都为guest,是不允许外部访问的. 允许外部访问设置需要操作两步: 第一步:添加其它用户,guest只能用于本机 第二步:Virtual Host允许添加的用户访问,点击下图红色部分. spring配置 spring:rabbitmq:host: 192.168.101.57port: 5672username…

idea中有个目录不显示,磁盘中是有的

java项目src下有个目录data不显示 通过打开D盘看目录是有的&#xff0c;运行项目的时候报错&#xff0c;找不到目录下的文件。 解决方案&#xff1a; idea -> file -> seetings -> EDitor -> file types 打开页面后右侧显示有ignore files and folders 查看这里面有…

【Visual Studio】关于rc文件预处理器宏

问题 VS工程调试遇到一个问题&#xff1a;明明在 项目\属性&#xff0c;C/C\预处理器 页面定义了宏&#xff0c;为什么rc编译时没有影响&#xff1f; 百度后发现&#xff0c;和下方链接中问题很相似。 https://bbs.csdn.net/topics/50485796https://bbs.csdn.net/topics/50…

【运维】查询数据库每张表的数据及索引占用大小

【SQL】查询数据库每张表的数据及索引占用大小 SELECTa.*,CONCAT( a.总大小 / 1024000000, G ) 总大小G FROM(SELECTTABLE_SCHEMA,TABLE_NAME,sum( DATA_LENGTH ) 数据大小,sum( INDEX_LENGTH ) 索引大小,( sum( DATA_LENGTH ) sum( INDEX_LENGTH ) ) 总大小FROMinformation_s…

C# [unity]求顶点数量不等的两条曲线的中线

好久没写了.最近在尝试重写lgsvl导入地图数据的方式,地图同学提供的opendrive车道线计算不准,所以直接让他们导出经纬度的高精地图json数据,但是这种数据只有车道边界线,没有车道中心线, 基于只是想小改而非大改的前提下,还是要算出车道中心线.搞个小demo传上来,代码写的很拙劣…

宝塔定时任务实现磁盘使用率超阀值后自动发送邮件

服务器磁盘使用空间不足会产生各种不可预知的灾难&#xff0c;服务器上的应用几乎全部不能用&#xff0c;如果没有遇到过磁盘占满的问题&#xff0c;可能很难发现它。 步骤 安装邮件发送工具sendEmail磁盘检测并发送邮件shell脚本宝塔配置计划任务 安装邮件发送工具sendEmail …

【ROS】TF2坐标转换及实战示例

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法…感兴趣就关注我吧&#xff01;你定不会失望。 文章目录 0.ROS中的坐标转换消息包0.1 geometry_msgs/TransformStamped0.2 geometry_msgs/PointStamped1.静态坐标转换1.1导入所需功能包1.2发布方实现1.3 …