CSS基础:4种简单选择器的详解

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生,2年时间从1800到月入过万,工作5年买房。 分享成长心得。

261篇原创内容-公众号

后台回复“前端工具”可获取开发工具,持续更新中

后台回复“前端基础题”可得到前端基础100题汇总,持续更新中

今天,我们来聊一下 CSS 选择器。

CSS 选择器是一种机制,用于定位和选择 HTML 文档中要应用样式的元素。可以将其类比为钥匙,选择器是开启样式应用之门的钥匙,可以精确地选择需要样式化的元素。

CSS 基础选择器有以下 5 种:

  • 简单选择器:针对元素类型、类名、ID 等进行选择。

  • 组合选择器:通过元素之间的关系进行选择,如后代选择器、子元素选择器等。

  • 属性选择器:根据元素的属性值进行选择。

  • 伪类选择器:根据元素的状态或位置进行选择,如:hover、:visit 等。

  • 伪元素选择器:向文档中添加虚拟元素并选择它们,如::before、::after 等。

本次,咱们只说第一个:简单选择器这 1 个分类,其他分类随着深入学习再聊。

简单选择器有 4 个,我们一起来看一看吧。

一、id 选择器

id 选择器以#符号开头,后面跟着元素的 id 属性值。例如,要选择 id 为"header"的元素,可以写成"#header"。

代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>CSS Id Selector Example</title>
    <style>
      /* CSS样式 */
      #header {
        background-color: #333;
        color: #fff;
        padding: 10px;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <div id="header">
      <h1>Welcome to My Website</h1>
    </div>
    <div>
      <h1>我没有被选中</h1>
    </div>
  </body>
</html>

图片

id 选择器的重要性在于它可以唯一标识页面中的某个元素。什么是唯一标识呢?唯一标识某元素意味着在整个 HTML 文档中,该元素具有独一无二的标识符,即 id 属性的值在文档中是唯一的,确保该样式的精准应用。

这样,即使页面中存在多个相同类型的元素,我们也可以准确地为目标元素添加样式,而不会影响其他元素的外观。

同时,id 选择器需要注意以下事项

  • 不能包含空格:ID 中不能包含空格,因为空格在 CSS 中是选择器的分隔符,会导致选择器解析错误。

  • 不能包含特殊字符:ID 中最好不要包含特殊字符和空格,建议使用字母、数字、连字符(-)和下划线(_)组合。

  • 语义化:ID 应该用于唯一标识页面中的一个元素,不应该用于样式控制或者组合选择器,更应该遵循语义化的原则,这个后续我们深入学习就会明白了。现在知道有这个规则就可以。

二、类(class)选择器

类选择器允许我们为多个元素定义相同的样式,并且在样式复用中发挥着重要作用。通过为元素添加相同的类名称,我们可以轻松地将样式应用于多个元素,从而提高了代码的复用性和维护性。

下面是一个简单的代码案例,演示了如何使用 class 选择器为多个元素添加相同的样式:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>CSS Class选择器示例</title>
    <style>
      /* 定义class选择器 */
      .highlight {
        color: red;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <!-- 使用class选择器应用样式 -->
    <p class="highlight">这是一个示例段落。</p>
    <p class="">这是另一个示例段落。</p>
    <p class="highlight">这是第三个示例段落。</p>
  </body>
</html>

图片

在上面的代码中,我们定义了一个名为.highlight的 class 选择器,并为其指定了红色文本和粗体字体样式。然后,在 HTML 文档中的多个段落元素中,我们使用了相同的 class 名称,以便将相同的样式应用于这些段落。这样,所有具有.highlight类的段落都会呈现相同的样式,从而实现了样式的复用和统一管理。

同时,class 选择器需要注意以下事项

  • 命名规范:Class 应该采用有意义的命名,符合语义化和命名规范,推荐使用连字符(-)分隔单词。

  • 不能以数字开头:Class 不能以数字开头,因为 CSS 中类名不能以数字开头,可以使用字母、连字符(-)和下划线(_)开头,建议是字母开头,其他 2 者开头没有实际意义。

  • 避免过度修饰:Class 名称应该简洁明了,避免过度修饰和冗长的命名,提高代码的可读性和维护性。

三、* 选择器

* 选择器是 CSS 中的通配选择器,它可以匹配 HTML 或 XML 文档中的所有元素。

其作用是用于向所有元素应用相同的样式规则,无论元素的类型、结构或位置如何,都会被这个通配符选择器选中并应用相应的样式。通配选择器在某些情况下很有用,例如需要对整个页面或大部分元素应用相同样式时,可以使用通配选择器简化样式表的编写。

比如,我们整个页面/项目的字体普遍是 12 像素大小,字体普遍都是宋体,字体颜色普遍是#666,行高 24 像素,那这时候,就可以在 CSS 的头部用这个选择器。如图。

图片

但同时也要注意,过度使用通配选择器可能会导致样式规则的冲突和性能问题,因此在网页其他部分应谨慎使用。

四、分组选择器

分组选择器是指将多个选择器组合在一起,用逗号分隔,以同时选中这些选择器所匹配的所有元素,并为它们应用相同的样式规则。它的作用是简化样式表的书写,同时可以为不同类型的元素统一设置样式。

举个 HTML 案例,假设有以下四种标签需要设置相同的样式:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Group Selector Example with Class</title>
    <style>
      /* 分组选择器 */
      h1,
      p,
      a,
      .highlight {
        color: green; /* 设置文字是绿色 */
      }

      /* 定义highlight类的样式 */
      .highlight {
        background-color: yellow; /* 设置背景颜色为黄色 */
      }
    </style>
  </head>
  <body>
    <h1>This is a heading</h1>
    <p>This is a paragraph.</p>
    <a href="#" class="highlight">This is a highlighted link</a>
    <ul>
      <li>List item 1</li>
      <li class="highlight">List item 2</li>
    </ul>
    <h3 class="highlight">这是高亮的h3</h3>
    <h4>我没有被选中</h4>
  </body>
</html>

图片

在这个案例中,除了分组选择器 h1, p ,a 外,还新增了 .highlight 类选择器,并为具有该类的元素设置了背景颜色为黄色。这样就可以为带有 .highlight 类的元素设置不同于其他元素的样式。

最后

来再次总结一下这 4 个选择器。

  1. id 选择器

优点:具有唯一性,能够精确选择特定元素。

应用场景:适用于需要特定样式的元素,如页面顶部导航栏、页脚等。

  1. class 选择器

优点:适用于多个元素共享同一样式的情况,可以在不改变 HTML 结构的情况下重用样式。

应用场景:常用于定义可重复使用的样式,如按钮样式、卡片样式等。比如,淘宝这块商品的样子,虽然商品不一样,但外观宽高字体什么的其实是一样的,这就用class。

图片

  1. 通配符* 选择器

优点:选择所有元素,可以作为全局样式的基础,但一般不推荐使用。

应用场景:适用于全局重置样式或者设置基础样式。

  1. 分组选择器

优点:能够同时选择多个不同类型的元素,减少重复代码。

应用场景:适用于同时给多个元素应用相同样式的情况。

总体来说,这些选择器在 CSS 中发挥着重要的作用,能够帮助开发者实现不同层次和需求的样式控制。但在使用时需要注意选择器的优先级和层叠顺序,避免样式冲突和覆盖问题,保持样式代码的可维护性和可读性。

那随着我们写页面的越来越多,对这些的应用会越来越熟练。

ok。本文完。

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

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

相关文章

Axure案例分享—垂直手风琴(附下载地址)

今天分享的案例是Axure8(兼容9和10)制作的垂直手风琴 一、功能介绍 折叠或展开多个面板内容&#xff0c;默认为展开一项内容&#xff0c;点击任一收起的选项&#xff0c;展开面板&#xff0c;其他面板收起二、制作过程 原型是由矩形组件以及动态面板构成&#xff0c; 拖入一…

面向C++程序员的Rust教程(二)

先序文章请看&#xff1a; 面向C程序员的Rust教程&#xff08;一&#xff09; 所有权与移动语义 要说Rust语言跟其他语言最大的区别&#xff0c;那笔者觉得非数这个所有权和移动语义莫属。 深浅复制 对于绝大多数语言来说&#xff0c;变量/对象之间的赋值通常都是复制语义。…

python标准数据类型--元组常用方法

在Python中&#xff0c;元组&#xff08;Tuple&#xff09;是一种不可变的有序集合&#xff0c;它与列表类似&#xff0c;但是元组中的元素不能被修改。元组通常用于存储不可变的数据集合&#xff0c;例如一组常量或者一组固定的值。本篇博客将介绍一些Python中元组的常用方法&…

软考高级架构师:人工智能芯片概念和例题

一、AI 讲解 人工智能芯片是专门设计来处理与人工智能&#xff08;AI&#xff09;相关的任务的集成电路。这些芯片针对AI应用的高计算需求进行了优化&#xff0c;以提升处理速度和效率&#xff0c;同时降低能耗。它们在AI领域&#xff0c;如深度学习、机器学习和数据分析中发挥…

python爬虫获取豆瓣前top250的标题(简单)

今天是简略的一篇&#xff0c;简单小实验 import requests from bs4 import BeautifulSoup# 模拟浏览器的构成&#xff08;请求头&#xff09; headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch…

10 款最佳 Mac 数据恢复软件,在为时已晚之前值得尝试

查看 10 年适用于 Mac 的 2024 款最佳免费数据恢复软件&#xff0c;可在大多数在线搜索中找到。精选列表将帮助您做出明智的决定并节省您的时间和精力。 10 款最佳 Mac 数据恢复软件 很明显&#xff0c;您此后将面临数据丢失事件。理所当然地&#xff0c;您期待一款可靠、与您…

中文大模型隐私保护哪家强?InternLM 与 Baichuan2 胜出!

引言&#xff1a;中文大模型隐私保护能力探索 本文研究了大语言模型&#xff08;LLMs&#xff09;对隐私和安全的影响&#xff0c;采用了三层渐进框架对语言系统的隐私进行评估。主要目标是全面评估LLMs对私人信息的敏感性&#xff0c;并检查其在识别、管理和保护敏感数据方面…

微信小程序短链接工具推荐

现在微信小程序大行其道&#xff0c;但工作中大部分人选择了短链接的方式来推广微信小程序&#xff0c;那么微信小程序短链接工具哪个好?今天就分享一篇从网上看到的关于《微信小程序短链接工具推荐》文&#xff0c;作者是souki&#xff0c;一起来看看吧! 一、缩链 1、生成方…

【智能算法】阿基米德优化算法(AOA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年&#xff0c;Hashim等人受到阿基米德定律启发&#xff0c;提出了阿基米德优化算法&#xff08;Archimedes Optimization Algorithm&#xff0c;AOA&#xff09;。 2.算法原理 2.1算法思想 …

python导入本地当前目录下的文件和父目录下的文件

今天我想要导入本地当前目录下的文件和父目录下的文件&#xff0c;网上查了很多教程&#xff0c;但还都是报错&#xff0c;最后几经尝试&#xff0c;终于成功解决了这一问题&#xff0c;在这里详细记录一下过程&#xff0c;同时也希望能够对大家有所帮助~~~:&#xff09; 导入…

Python人工智能应用---中文分词词频统计

目录 1.中文分词 2.循环分别处理列表 &#xff08;1&#xff09;分析 &#xff08;2&#xff09;代码解决 3.词袋模型的构建 &#xff08;1&#xff09;分析需求 &#xff08;2&#xff09;处理分析 1.先实现字符串的连接 2.字符串放到新的列表里面 4.提取高频词语 &…

vivado 向 SVF 目标添加器件

向 SVF 目标添加器件 创建 SVF 目标后 &#xff0c; 可向其中添加器件以定义 SVF JTAG 器件链配置。 SVF JTAG 器件链配置应与目标硬件链相匹配 &#xff0c; 以 确保能正确执行 SVF 文件。 使用 Vivado IDE 单击“ ”按钮以向 SVF 链添加赛灵思器件或非赛灵思器件。…

程序·人生

诡异之极 2024.03.12 清新环境&#xff08;股票代码002573&#xff09;委托卖出 20000股&#xff0c;委托价4.58&#xff0c;当日最高价4.57 2024.03.11 清新环境&#xff08;股票代码002573&#xff09;委托卖出 20000股&#xff0c;委托价4.55&#xff0c;当日最高价4.54 …

【Python系列】读取 Excel 第一列数据并赋值到指定列

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

windwos安全加固

一、账号管理 按用户类型分配账号 目的&#xff1a;根据系统要求&#xff0c;设定不同账户和组&#xff0c;管理员、数据库 sa、审计用户、来宾用户等 实施方法&#xff1a; 打开本地用户和计算机管理器 ​ 1.打开运行&#xff0c;输入lusrmgr.msc 2.根据用户要求将账户加入…

鸡尾酒排序解读

在数据处理的海洋中&#xff0c;排序算法无疑是引领我们探索数据规律的灯塔。今天&#xff0c;我们要探讨的是一种有趣且独特的排序算法——鸡尾酒排序。鸡尾酒排序&#xff0c;也被称为定向冒泡排序、双冒泡排序或搅拌排序&#xff0c;是冒泡排序的一种变体&#xff0c;它通过…

[计算机效率] 磁盘空间分析工具:FolderSize

3.15 磁盘空间分析工具&#xff1a;FolderSize FolderSize是一款磁盘管理工具&#xff0c;提供预约交互式磁盘空间分析体验&#xff0c;可以可视化观察磁盘空间使用情况。程序可以帮助用户快速查看并统计硬盘中的各个分区所占用的空间大小以及文件夹和文件的大小&#xff0c;并…

CCleaner如何还原系统 CCleaner怎么恢复注册表 ccleaner官方下载

CCleaner是一款电脑清理软件&#xff0c;其中的注册表清理功能是该软件很重要的功能。注册表作为电脑的重要文件&#xff0c;不可以随便清理&#xff0c;而CCleaner可以帮我们安全&#xff0c;快速地清除注册表。同时&#xff0c;CCleaner还有还原系统的功能。下面将为大家介绍…

Windows与Linux路径分隔符对比及Java代码实战

在Windows中&#xff0c;磁盘中用反斜杠&#xff08;又称为右斜杠&#xff09;\表示路径的分隔。在浏览器中用正斜杠/来表示路径的分隔。 Linux则是统一用/表示路径的分隔的。下面给出Linux中一些常见的路径表示&#xff1a; / 表示根目录./ 表示当前目录…/ 表示上级目录 …

如果夸克网盘开了会员下载还是很慢怎么办

最近发现一个windows系统下很奇怪的bug&#xff0c;通过夸克网盘客户端下载别人分享的夸克网盘内容的时候&#xff0c;莫名其妙的会在10M/s和0M/s之间来回徘徊&#xff0c;速度慢到不能忍。 在尝试了几种方法之后&#xff0c;发现一种神奇的方法居然可以解决这个奇怪的bug...所…