【学术投稿-第四届智能电网和绿色能源国际学术会议(ICSGGE 2025)】CSS基本选择器详解:掌握基础,轻松布局网页

可线上

官网:www.icsgge.org

时间:2025年2月28-3月2日

目录

前言

一、基本选择器简介

1. 元素选择器(Type Selector)

基本语法

示例

注意事项

2. 类选择器(Class Selector)

基本语法

示例

注意事项

3. ID选择器(ID Selector)

基本语法

示例

注意事项:

4. 通配符选择器(Universal Selector)

基本语法

示例

注意事项

二、CSS选择器的注意事项

1. 优先级与特异性

2. 避免过度使用通配符选择器

3. 合理组合选择器

三、总结


前言

        CSS选择器是Web开发中的重要组成部分,它决定了样式规则如何应用到页面中的元素。掌握常见的CSS选择器,不仅能提升开发效率,还能让代码更加简洁和高效。在这篇博客中,我们将详细解析CSS的基本选择器,包括类型选择器、类选择器、ID选择器、通配选择器等,同时给出使用时的注意事项,帮助你更好地理解和运用这些选择器。


一、基本选择器简介

CSS选择器的作用是选择页面中的元素,然后将样式应用于它们。根据选择器的不同,CSS可以精确地定位到你想要操作的元素。常见的选择器包括元素选择器类选择器ID选择器通配符选择器等。

1. 元素选择器(Type Selector)

元素选择器是最基本的CSS选择器,用于选择某种类型的HTML元素并为其应用样式。你只需要写出元素的标签名称即可。

基本语法
element {
  property: value;
}
示例
p {
  color: blue;
}

这段代码将使页面中所有<p>标签的文字变为蓝色。

注意事项
  • 选择范围广泛:会影响页面中所有的相同元素。如果只想选择某一部分,可以结合其他选择器使用。
  • 优先级较低:在样式冲突时,元素选择器的优先级较低,可能会被类或ID选择器覆盖。

综合案例 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>元素选择器</title>
    <style>
        h2{
            color:aquamarine;
            font-size: 30px;
        }
        p{
            color:blue;
            font-size: 25px;
        }
    </style>
</head>
<body>
    <h1>欢迎来到土味官网,土的味道我知道</h1>
    <br>
    <h2>土味情话</h2>
    <h3>作者:网友</h3>
    <p>万水千山总是情,爱我多点行不行?</p>
    <p>我的心里给你留了块地,我的死心塌地!</p>
    <br>
    <h2>反杀土味情话</h2>
    <h3>作者:单身网友</h3>
    <p>一寸光阴一村金,劝你死了这条心.</p>
    <p>我心里只有一块地,我的玛莎拉蒂!</p>
</body>
</html>

 


2. 类选择器(Class Selector)

类选择器是通过HTML元素的class属性来选中元素,它允许你选择页面中所有具有特定类的元素。类选择器以.开头。

基本语法
.class-name {
  property: value;
}
示例
.button {
  background-color: red;
  color: white;
}

这段代码会使页面中所有类名为button的元素背景变为红色,文字变为白色。

注意事项
  • 类名复用:同一个类可以被多个元素使用,非常适合对多种元素应用相同的样式。
  • 命名规范:为了避免命名冲突,建议采用有意义且易于辨识的类名,例如button-primaryheader-title等。

综合案例 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>通配选择器</title>
    <style>
        /* 类选择器 选中类名为speak的元素 */
        .speak{
            color: red;
        }
        /* 类选择器 选中类名为answer的元素 */
        .answer{
            color: blue;
        }
        /* 类选择器 选中类名为size的元素 */
        .size{
            font-size: 35px;
        }
    </style>
</head>
<body>
    <h1>欢迎来到土味官网,土的味道我知道</h1>
    <br>
    <h2>土味情话</h2>
    <h3>作者:网友</h3>
     <p class="speak size">你对我说:万水千山总是情,爱我多点行不行?</p>
     <p class="speak">你对我说:我的心里给你留了块地,我的死心塌地!</p>
    <br>
    <h2>反杀土味情话</h2> 
    <h3>作者:单身网友</h3>
    <p class="answer">我对你说:一寸光阴一村金,劝你死了这条心.</p>
    <p class="answer">我对你说:我心里只有一块地,我的玛莎拉蒂!</p>
</body>
</html>


3. ID选择器(ID Selector)

ID选择器是通过HTML元素的id属性来选中元素,ID在页面中必须是唯一的。ID选择器以#开头,适合用于选择页面中唯一的元素。

基本语法
#id-name {
  property: value;
}
示例
#header {
  font-size: 24px;
  color: black;
}

这段代码会使页面中id="header"的元素字体大小为24px,颜色为黑色。

注意事项
  • ID唯一性:一个页面中只能有一个id为同名的元素。如果多个元素使用相同的ID,可能会导致样式和脚本的错误。
  • 优先级较高:ID选择器的优先级比类选择器和元素选择器都要高,因此它会覆盖相同元素的其他样式。

综合案例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ID选择器</title>
    <style>
        #earthy{
            color:aquamarine;
        }
        .size{
            font-size: 30px;
        }
        #unearthy{
            color:blue;
        }
    </style>
</head>
<body>
    <h1>欢迎来到土味官网,土的味道我知道</h1>
    <br>
    <h2 id="earthy" class="size">土味情话</h2>
    <h3>作者:网友</h3>
    <p>万水千山总是情,爱我多点行不行?</p>
    <p>我的心里给你留了块地,我的死心塌地!</p>
    <br>
    <h2 id="unearthy" class="size">反杀土味情话</h2>
    <h3>作者:单身网友</h3>
    <p>一寸光阴一村金,劝你死了这条心.</p>
    <p>我心里只有一块地,我的玛莎拉蒂!</p>
</body>
</html>

 


4. 通配符选择器(Universal Selector)

通配符选择器(*)用于选中页面中的所有元素。它的应用范围非常广泛,但不常用于样式设计中,通常用于全局的基础样式设置。

基本语法
* {
  property: value;
}
示例
* {
  margin: 0;
  padding: 0;
}

这段代码会清除页面中所有元素的外边距和内边距,通常用于网页布局的初始化。

注意事项
  • 慎用通配符选择器:由于它会影响页面上的所有元素,使用时要非常小心,避免造成不可预见的副作用。
  • 性能问题:通配符选择器的性能相对较差,因为它会作用于所有元素,可能导致页面渲染变慢。

综合案例 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>通配选择器</title>
    <style>
        *{
            color: red;
            font-size: 35px;
        }
    </style>
</head>
<body>
    <h1>欢迎来到土味官网,土的味道我知道</h1>
    <br>
    <h2>土味情话</h2>
    <h3>作者:网友</h3>
    <p>万水千山总是情,爱我多点行不行?</p>
    <p>我的心里给你留了块地,我的死心塌地!</p>
    <br>
    <h2>反杀土味情话</h2>
    <h3>作者:单身网友</h3>
    <p>一寸光阴一村金,劝你死了这条心.</p>
    <p>我心里只有一块地,我的玛莎拉蒂!</p>
</body>
</html>

 


二、CSS选择器的注意事项

1. 优先级与特异性

选择器的优先级(即特异性)会影响样式的应用。ID选择器的优先级最高,其次是类选择器,最后是元素选择器。

  • ID选择器#id(特异性为100)
  • 类选择器.class(特异性为10)
  • 元素选择器div(特异性为1)

2. 避免过度使用通配符选择器

虽然通配符选择器可以快速选择所有元素,但由于它会影响页面上的所有内容,可能会导致不必要的性能开销。因此应避免在生产环境中大量使用。

3. 合理组合选择器

使用组合选择器时,尽量避免过度嵌套,保持代码简洁且高效。嵌套过深的选择器可能会影响页面的性能,并导致样式难以维护。


三、总结

CSS选择器是Web开发中不可或缺的基础,掌握了选择器的使用,就能够精确地控制页面中每个元素的样式。从简单的元素选择器到复杂的组合选择器,合理运用这些选择器能让你写出更加简洁、高效的CSS代码。在实际项目中,了解选择器的优先级、特异性,以及如何避免选择器过度嵌套,能帮助避免样式冲突,提高开发效率。

希望这篇博客帮助更好地理解和使用CSS选择器,助力你成为一个更加高效的Web开发者!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编程题-字母异位词分组(中等-重点)

题目&#xff1a; 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 解法一&#xff08;for循环遍历-时间复杂度超限&#xff09;&#xff1a; 由于互为字母异位词的…

Spring Boot整合DeepSeek实现AI对话(API调用和本地部署)

本篇文章会分基于DeepSeek开放平台上的API&#xff0c;以及本地私有化部署DeepSeek R1模型两种方式来整合使用。 本地化私有部署可以参考这篇博文 全面认识了解DeepSeek利用ollama在本地部署、使用和体验deepseek-r1大模型 Spring版本选择 根据Spring官网的描述 Spring AI是一…

阿里云IOT消息处理

文章主要讲述了阿里云IOT平台如何处理设备上报的消息、如何将消息路由到不同的处理逻辑、如何进行消息转发与转换等操作。 一、接收IOT消息 1.创建订阅 2.案列代码 官网案例代码&#xff1a;如何将AMQP JMS客户端接入物联网平台接收消息_物联网平台(IoT)-阿里云帮助中心 代码…

YOLO11网络结构以及改进1

YOLO11 1.YOLO11网络结构图在哪里&#xff1f;2.对应的网络结构图3.每一个模块详解3.1 Conv模块3.2关于卷积模块3.3 关于给各个模块指定参数的细节 4.加入CBAM 1.YOLO11网络结构图在哪里&#xff1f; 2.对应的网络结构图 3.每一个模块详解 3.1 Conv模块 位置&#xff1a;ultr…

数据结构——队列、哈希存储(2025.2.11)

目录 一、队列 1.定义 2.应用 3.分类 &#xff08;1&#xff09;逻辑结构 &#xff08;2&#xff09;物理结构 顺序队列 链式队列 二、哈希存储 1.定义 2.哈希冲突 &#xff08;1&#xff09;开放定址法 &#xff08;2&#xff09;再哈希法 &#xff08;3&#xf…

鸿蒙Next开发-添加水印以及点击穿透设置

在鸿蒙Next中&#xff0c;为App全局添加水印可以通过以下方式实现&#xff0c;其中通过窗口添加水印是一种常见且高效的方式。以下是具体方案和实现细节&#xff1a; 一、全局水印的实现方式 1. 窗口叠加水印&#xff08;首选、推荐&#xff09; 原理&#xff1a;在应用的主窗口…

C++算法竞赛基础语法-9

快速排序是一种高效的排序算法&#xff0c;由C. A. R. Hoare在1960年提出&#xff0c;基本思想是分治法&#xff08;Divide and Conquer&#xff09;策略&#xff0c;通过递归将一个大问题分解为若干个较小的子问题&#xff0c;然后合并这些子问题的解来解决原始问题 快速排序…

DeepSeek v3 技术报告阅读笔记

注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解&#xff0c;为笔记/大纲性质而非教程&#xff0c;建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心 核心&#xff1a; MLA 高效推理DeepSeekMOE 更…

jemalloc 5.3.0的base模块的源码及调用链使用场景的详细分析

一、背景 这篇博客&#xff0c;我们继续之前的 由jemalloc 5.3.0初始化时的内存分配的分析引入jemalloc的三个关键概念及可借鉴的高性能编码技巧-CSDN博客 博客里对初始化分配逻辑进行分析&#xff0c;已经涉及到了jemalloc 5.3.0里的非常重要的base模块的一部分逻辑&#xff…

从零搭建微服务项目(第5章——SpringBoot项目LogBack日志配置+Feign使用)

前言&#xff1a; 本章主要在原有项目上添加了日志配置&#xff0c;对SpringBoot默认的logback的配置进行了自定义修改&#xff0c;并详细阐述了xml文件配置要点&#xff08;只对日志配置感兴趣的小伙伴可选择直接跳到第三节&#xff09;&#xff0c;并使用Feign代替原有RestT…

2024最新版JavaScript逆向爬虫教程-------基础篇之Chrome开发者工具学习

目录 一、打开Chrome DevTools的三种方式二、Elements元素面板三、Console控制台面板四、Sources面板五、Network面板六、Application面板七、逆向调试技巧 7.1 善用搜索7.2 查看请求调用堆栈7.3 XHR 请求断点7.4 Console 插桩7.5 堆内存函数调用7.6 复制Console面板输出 工…

Elasticsearch+Logstash+Kibana可视化集群部署

文章目录 1.组件介绍简述2.集群规划3.Es组件部署4.Logstash组件部署5.Kibana组件部署6.Kibana的基础使用 1.组件介绍简述 Elasticsearch&#xff1a;开源实时分布式搜索和分析引擎&#xff0c;支持大规模数据存储和高吞吐量&#xff0c;提供丰富的搜索功能和可扩展性。 Logsta…

08模拟法 + 技巧 + 数学 + 缓存(D3_数学)

目录 1. 多数元素 1.1. 题目描述 1.2. 解题思路 方法一&#xff1a;哈希表 方法二&#xff1a;排序 方法三&#xff1a;随机化 方法四&#xff1a;分治 方法五&#xff1a;Boyer-Moore 投票算法 2. 按规则计算统计结果 2.1. 题目描述 2.2. 解题思路 3. 整数拆分 3.…

基于IOS实现各种倒计时功能

ZJJTimeCountDown 效果图 特点&#xff1a; 1、已封装&#xff0c;支持自定义 2、支持文本各种对齐模式 3、各种效果都可以通过设置 ZJJTimeCountDownLabel 类属性来实现 4、支持背景图片设置 5、分文本显示时间时&#xff0c;支持设置文字大小&#xff0c;来动态设置每个文本…

【TS合成MP4】你怎么专打裂开的切片呀

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言TS与MP4格式概述TS与MP4格式概述TS合成MP4的需求背景TS合成MP4的方法概述 合并方法…

【动手学强化学习】01初探强化学习

文章目录 什么是强化学习强化学习解决的问题强化学习的独特性 什么是强化学习 强化学习是机器通过与环境交互来实现目标的计算方法。智能体与环境的交互方式如图所示&#xff0c;在每一轮交互中&#xff0c;智能体根据感知状态经过自身计算给出本轮动作&#xff0c;将其作用于…

C++,STL容器适配器,priority_queue:优先队列深入解析

文章目录 一、容器概览与核心特性核心特性速览二、底层实现原理1. 二叉堆结构2. 容器适配器架构三、核心操作详解1. 容器初始化2. 元素操作接口3. 自定义优先队列四、实战应用场景1. 任务调度系统2. 合并K个有序链表五、性能优化策略1. 底层容器选择2. 批量建堆优化六、注意事项…

duckdb导出Excel和导出CSV速度测试

运行duckdb数据库 D:>duckdb v1.2.0 5f5512b827 Enter “.help” for usage hints. Connected to a transient in-memory database. Use “.open FILENAME” to reopen on a persistent database. 生成模拟数据&#xff0c;10个列&#xff0c;100万行数据&#xff1b; --…

k8s集群离线安装kuberay operator

1,安装方式 采用helm安装方式&#xff0c;首先下载对应的helm chart&#xff0c;这里采用v1.2.2版本&#xff0c;下载地址&#xff1a; https://github.com/ray-project/kuberay-helm/releases/tag/kuberay-operator-1.2.2 2,解压并修改镜像源 由于是在内网环境下搭建&#…

结构形模式---适配器模式

适配器模式是一种结构形模式&#xff0c;主要用于不同在两个互不兼容的类或者库之间增加一个转换。 适配器模式的实现由两种方式&#xff0c;一种是适配器对象&#xff0c;一种是适配器类。 适配器是对象是将第三方接口通过对象调用引入到适配器中。 适配器类是通过多继承将…