【CSS】认识CSS选择器及各选择器对应的用法

news2025/1/14 18:18:38

目录

一、什么是CSS?

二、CSS 选择器

1. 标签选择器

2. 类选择器

3. ID选择器

4. 通配符选择器

5. 复合选择器


一、什么是CSS?

CSS(Cascading Style Sheet),层叠样式表。它与 HTML(超文本标记语言)一起使用,用于控制页面的样式。

CSS 能够对网页中元素位置的排版进行像素级精确控制,实现美化页面的效果。能够做到页面的样式和结构分离。

CSS 可以理解为“东方四大邪术”之化妆术。对页面的展示进行“化妆”。

二、CSS 选择器

CSS 选择器的主要功能就是选中页面指定的标签元素。选中元素后,对元素的属性进行设置。

认识 CSS 选择器之前,需要先了解一下 CSS 的引入方式,在HTML文档中引入CSS样式表有三种主要的方式:

1. 内联样式:内联样式是直接将CSS样式写在HTML元素的style属性中,仅对该元素生效。这种方式适用于只需要应用样式到少数几个元素的情况。

<div style="color: red; font-size: 20px;">这是一个红色的文字</div>

2. 内部样式表:内部样式表是将CSS代码直接写在HTML文档的<style>标签内,通常放在<head>标签中。这种方式适用于只在当前页面使用的样式,或者需要针对特定页面进行定制化样式的情况。

<head>
    <style>
        /* CSS样式 */
        body {
            background-color: #f0f0f0;
        }
    </style>
</head>

3. 外部样式表:外部样式表是将CSS代码写入一个独立的.css文件中,并通过<link>标签将其链接到HTML文档中。这种方式的优点是可以将样式与内容分离,方便管理和维护,并且可以在多个页面中重复使用相同的样式。

<head>
    <link rel="stylesheet" type="text/css" href="styles.css">
</head>

此处通过 HTML 代码演示 CSS 选择器的使用,以下演示使用内部样式表的方式引入 CSS 选择器:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="font32">我是⼀个div, class为font32</div>
    <div class="font32">我是⼀个div, class为font32</div>
    <div><a href="#">我是⼀个div</a></div>
    <!-- 无序列表 -->
    <ul> 
        <li>aaa</li>
        <li>bbb</li>
        <li><a href="#">ccc</a></li>
    </ul>
    <!-- 有序列表 -->
    <ol>
        <li>111</li>
        <li>222</li>
        <li>333</li>
    </ol>
    <button id="submit">提交</button>
</body>

</html>

代码初始效果如下:

CSS选择器主要分为以下几种:

1. 标签选择器

标签选择器是CSS中最简单的选择器之一,它通过选择HTML元素的标签名称来应用样式。此处在以上代码 head 中引入 CSS 选择器:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        /* 选择所有的a标签, 设置颜⾊为红⾊ */
        a {
            color: red;
        }

        /* 选择所有的div标签, 设置颜⾊为绿⾊ */
        div {
            color: green;
        }
    </style>
</head>

 

2. 类选择器

类选择器用于选择具有相同类名的元素,并为它们应用相同的样式。类选择器以.开头,后面跟着类名。在前面代码 head 中再添加一个类选择器:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        /* 选择所有的a标签, 设置颜⾊为红⾊ */
        a {
            color: red;
        }

        /* 选择所有的div标签, 设置颜⾊为绿⾊ */
        div {
            color: green;
        }

        /* 选择class为font32的元素, 设置字体⼤⼩为32px */
        .font32 {
            font-size: 32px;
        }
    </style>
</head>

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

3. ID选择器

ID选择器是CSS中用于选择具有特定id属性的元素的选择器。ID选择器以#符号开头,后跟着id属性的值。

与类选择器不同,id选择器是唯一的,每个HTML文档中的元素都应该具有唯一的id。因此,id选择器通常用于针对单个元素应用特定样式或JavaScript操作。

在前面代码 head 中再添加一个ID选择器:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        /* 选择所有的a标签, 设置颜⾊为红⾊ */
        a {
            color: red;
        }

        /* 选择所有的div标签, 设置颜⾊为绿⾊ */
        div {
            color: green;
        }

        /* 选择class为font32的元素, 设置字体⼤⼩为32px */
        .font32 {
            font-size: 32px;
        }

        /* 选择id为submit的元素, 设置颜⾊为红⾊ */
        #submit {
            color: red;
        }
    </style>
</head>

4. 通配符选择器

通配符选择器(Universal Selector)在CSS中用   * 表示,它匹配文档中的任何元素。通配符选择器将应用样式于文档中的所有元素,包括HTML元素、内联元素和已应用类和id的元素。通常使用于设置默认参数。

5. 复合选择器

复合选择器是指由多个简单选择器组合而成的选择器,用于更精确地选中文档中的元素。复合选择器可以根据元素的类型、类、ID等属性来进行选择。

例如:想把上述代码中 ul 标签下的 li 标签下的 a 标签,设置为黄色,此时就可以使用复合选择器,还是在前面代码 head 中再添加一个复合选择器:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        /* 选择所有的a标签, 设置颜⾊为红⾊ */
        a {
            color: red;
        }

        /* 选择所有的div标签, 设置颜⾊为绿⾊ */
        div {
            color: green;
        }

        /* 选择class为font32的元素, 设置字体⼤⼩为32px */
        .font32 {
            font-size: 32px;
        }

        /* 选择id为submit的元素, 设置颜⾊为红⾊ */
        #submit {
            color: red;
        }

        /*只设置 ul 标签下的 li 标签下的 a 标签, 颜⾊为黄色*/
        ul li a {
            color: yellow;
        }
    </style>
</head>

以上三个标签选择器 ul li a 中的任意,都可以替换成类选择器,或者ID选择器,可以是任意选择器的组合,也可以是任意数量选择器的组合。

这种以空格分隔的多个选择器,称为复合选择器中的后代选择器。 

除 1. 后代选择器 外,常见的复合选择器还包括:

2. 子代选择器:以 > 分隔的两个简单选择器,用于选择指定元素的直接子元素。

ul > li {
    /* 选中 ul 元素的直接子元素 li 元素 */
}

3. 相邻兄弟选择器:以 + 分隔的两个简单选择器,用于选择指定元素之后紧跟的同级兄弟元素。

h2 + p {
    /* 选中紧跟在 h2 元素之后的 p 元素 */
}

4. 通用兄弟选择器:以 ~ 分隔的两个简单选择器,用于选择指定元素之后的所有同级兄弟元素。

h2 ~ p {
    /* 选中在 h2 元素之后的所有 p 元素 */
}

除以上四种常见的复合选择器外,还有交集选择器和并集选择器等。

  • 交集选择器使用无连接符将两个选择器组合在一起,表示选择同时满足两个选择器的元素。
  • 并集选择器使用逗号将多个选择器组合在一起,表示选择多个选择器中的任意一个选择器代表的元素。

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

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

相关文章

2024第16届成都教育连锁加盟展6月1日举办 免费参观

2024第16届成都教育连锁加盟展6月1日举办 免费参观 邀请函 主办单位&#xff1a; 中国西部教体融合博览会组委会 承办单位&#xff1a;重庆港华展览有限公司 博览会主题&#xff1a;责任教育科技兴邦 幼教、普教、高教、校外教育、K12学科辅导、婴幼儿教育、兴趣辅导、学…

C++从入门到精通---模版

文章目录 泛型编程函数模版模版参数的匹配原则类模版类模版的定义格式类模版的实例化 总结 泛型编程 泛型编程是一种编程范式&#xff0c;旨在实现通用性和灵活性。它允许在编写代码时使用参数化类型&#xff0c;而不是具体的类型&#xff0c;从而使代码更加灵活和可重用。 在…

[机器学习-01]一文了解|机器学习简介、工具选择和Python包基础应用

目录 前言 正文 01-机器学习简介 &#xff08;1&#xff09;诞生过程 &#xff08;2&#xff09;人工智能、机器学习和深度学习之间的关系 &#xff08;3&#xff09;机器学习核心 02-机器学习工具 &#xff08;1&#xff09;Anaconda简介 &#xff08;2&#xff09;Jupyte…

牛客NC97 字符串出现次数的TopK问题【中等 哈希+优先级队列 Java/Go】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/fd711bdfa0e840b381d7e1b82183b3ee 核心 哈希&#xff0c;优先级队列Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返…

固定资产管理系统参考论文(论文 + 源码)

【免费】固定资产管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89282536 固定资产管理系统 摘 要 随着计算机信息技术的发展以及对资产、设备的管理科学化、合理化的高要求&#xff0c;利用计算机实现设备及资产的信息化管理已经显得非常重要。 固…

加州大学欧文分校英语中级语法专项课程04:Intermediate Grammar Project学习笔记(完结)

Intermediate Grammar Project Course Certificate Specialization Certificate Specialization Intro Course Intro 本文是学习 Coursera: Intermediate Grammar Project 这门课的学习笔记。 文章目录 Intermediate Grammar ProjectWeek 01: IntroductionCapstone Introducti…

元器件的检测及万用表的使用

实验目的&#xff1a; 1. 了解万用表的结构和原理&#xff1b; 2. 识别常用电子元器件&#xff0c;学习使用万用表测量电阻、电感、电容和二极管的方法&#xff1b; 3. 学习使用万用表测量直流电压和直流电流的方法&#xff1b; 4. 理解万用表内阻对测量结果的影响&#xf…

Python学习笔记------pycharts模块

pyecharts模块简介 Echarts是个由百度开源的数据可视化&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到众多开发者的认可&#xff0c;而python是门富有表达力的语言&#xff0c;很适合用于数据处理&#xff0c;当数据分析遇上数据可视化时pyechart…

【计算机毕业设计】基于SSM++jsp的菜匣子优选系统【源码+lw+部署文档+讲解】

目录 第一章 绪 论 第二章 关键技术的研究 2.1 JSP技术介绍 2.2 JAVA简介 2.3 ECLIPSE 开发环境 2.4 Tomcat服务器 2.5 MySQL数据库 第三章 系统分析 3.1 系统设计目标 3.2 系统可行性分析 3.3 系统功能分析和描述 3.4系统UML用例分析 3.4.1管理员用例 3.4.2用户用例 3.5系统流…

创建和管理数据库

1. 一条数据的存储过程 存储数据是处理数据的第一步.只有正确的把数据存储起来&#xff0c;我们才能进行有效的处理和分析.否则&#xff0c;只能是一团乱麻.在MySQL中&#xff0c;一个完整的数据存储过程一共有四步 : 创建数据库&#xff0c;确认字段&#xff0c;创建数据表&a…

三层交换机与防火墙连通上网实验

防火墙是一种网络安全设备&#xff0c;用于监控和控制网络流量。它可以帮助防止未经授权的访问&#xff0c;保护网络免受攻击和恶意软件感染。防火墙可以根据预定义的规则过滤流量&#xff0c;例如允许或阻止特定IP地址或端口的流量。它也可以检测和阻止恶意软件、病毒和其他威…

口胡题解(5月)

https://www.luogu.com.cn/problem/CF627E https://www.luogu.com.cn/problem/CF930C 假设已经知道了最终每个点被覆盖多少次&#xff0c;设为序列 a a a。 那么就是问去除 a a a当中多少个数&#xff0c;使得这个序列有可能是先递增再递减的一个序列。 直接分类讨论&#…

Windows 系统mstsc内网远程server2016,出现错误代码

win10 企业版 mstsc内网远程server2016&#xff0c;出现错误代码&#xff1a; 远程桌面连接出现身份验证错误。要求的函数不受支持。这可能是由于CredSSP加密数据库修正 解决方法&#xff1a; WINR 在框内输入gpedit.msc 2、依次打开 计算机配置----管理模板-----系统—凭据…

笔记2:cifar10数据集获取及pytorch批量处理

&#xff08;1&#xff09;cifar10数据集预处理 CIFAR-10是一个广泛使用的图像数据集&#xff0c;它由10个类别的共60000张32x32彩色图像组成&#xff0c;每个类别有6000张图像。 CIFAR-10官网 以下为CIFAR-10数据集data_batch_*表示训练集数据&#xff0c;test_batch表示测试…

【第13章】spring-mvc之validator

文章目录 前言一、准备1. 引入库2. add.jsp3. show.jsp 二、代码部分1.实体类2. 控制器类3. 效果4. 展示 总结 前言 【第20章】spring-validator 虽然前面已经在spring介绍过&#xff0c;但是为了保证代码可用&#xff0c;还是会从头讲到尾&#xff0c;尽量把关键点列出来讲给…

Spring后端参数校验——自定义校验方式(validation)

文章目录 开发场景技术名词解释——Spring Validation自定义校验 技术细节小结1.实体参数校验2.自定义校验 完整代码 开发场景 业务场景&#xff1a;新增文章 基本信息 请求路径&#xff1a;/article 请求方式&#xff1a;POST 接口描述&#xff1a;该接口用于新增文章(发布文…

STC8增强型单片机开发

1.C51版本Keil环境搭建 下载地址是 Keil Product Downloads 选择C51进行下载&#xff1a; 2.STC环境添加 STC-ISP下载 进入stc官网 深圳国芯人工智能有限公司-工具软件 3.将STC添加到Keil中 打开stc-isp工具 按照图例点击按钮 选择keil的安装目录&#xff0c;以实际安装目…

【SpringMVC 】什么是SpringMVC(三)?基于springmvc的文件上传、基于springmvc的拦截器、基于springmvc的邮件发送

文章目录 SpringMVC第五章1、SpringMVC文件上传1、基本步骤1-2345-82、邮件发送1、基本步骤1-234-5567-8 简单邮件带附件的邮件第六章1、拦截器的使用使用步骤232、调度的使用基本步骤1-56-8调度规则3、shiro安全框架核心概念基本语法1、基于ini文件的认证**测视类**2、基于rea…

电商API接口:品牌为提升价格竞争力做定价参考

品牌为了提升价格竞争力&#xff0c;在进行产品定价时&#xff0c;可以从以下几个方面作为参考依据&#xff1a; 市场调研&#xff1a; 分析同类竞品在各大电商平台的均价、最高价和最低价&#xff0c;了解市场行情和消费者心理预期价位。 成本核算&#xff1a; 精确计算产…

力扣41. 缺失的第一个正数

Problem: 41. 缺失的第一个正数 文章目录 题目描述思路复杂度Code 题目描述 思路 1.将nums看作为一个哈希表&#xff0c;每次我们将数字n移动到nums[n - 1]的位置(例如数字1应该存在nums[0]处…),则在实际的代码操作中应该判断nums[i]与nums[nums[i] - 1]是否相等&#xff0c;若…