CSS 中的 id 和 class 选择器

在 CSS 中,idclass 是两个常用的选择器,它们用于为 HTML 元素添加样式。虽然它们的功能相似,但在使用场景和具体用法上有很大的区别。本文将详细介绍 idclass 的区别,并通过实例帮助你更好地理解它们的应用场景,特别是多个 class 的使用。


1. id 选择器

1.1 基本概念

id 选择器用于为页面中唯一的元素定义样式。一个页面中,每个 id 应该是唯一的,不能重复使用。id 选择器以 # 开头,后面跟着 id 的名称。

#header {background-color: #333;color: white;padding: 10px;
}

1.2 使用场景

id 选择器通常用于页面中唯一的元素,比如页面的头部、导航栏、页脚等。由于 id 是唯一的,它可以确保样式只应用于特定的元素。

示例:
<div id="header"><h1>Welcome to My Website</h1>
</div>

在这个例子中,#header 选择器只会应用于 idheaderdiv 元素。


2. class 选择器

2.1 基本概念

class 选择器用于为一组具有相同样式的元素定义样式。与 id 不同,class 可以在页面中重复使用。class 选择器以 . 开头,后面跟着 class 的名称。

.button {background-color: #007BFF;color: white;padding: 10px 20px;border: none;cursor: pointer;
}

2.2 使用场景

class 选择器通常用于需要重复使用的样式,比如按钮、卡片、列表项等。通过为多个元素添加相同的 class,可以轻松地为它们应用相同的样式。

示例:
<button class="button">Submit</button>
<button class="button">Cancel</button>

在这个例子中,.button 选择器会应用于所有 classbutton 的按钮元素。


2.3 多个 class 的使用

一个 HTML 元素可以同时拥有多个 class,通过空格分隔。这种方式可以让我们更灵活地组合样式,避免重复定义相同的 CSS 规则。

示例:
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title><style>/* 定义 .center 类,用于将文本居中 */.center {text-align: center;}/* 定义 .color 类,用于将文本颜色设置为红色 */.color {color: #ff0000;}/* 定义 .highlight 类,用于为文本添加背景高亮 */.highlight {background-color: yellow;}</style>
</head><body><!-- 使用单个 class --><h1 class="center">标题居中</h1><!-- 使用多个 class --><p class="center color">段落居中,颜色为红色。</p><!-- 使用多个 class,并添加额外样式 --><p class="center color highlight">段落居中,颜色为红色,背景高亮。</p>
</body>
</html>
代码解析
  1. <style> 部分

    • 定义了三个 class
      • .center:将文本内容居中对齐。
      • .color:将文本颜色设置为红色。
      • .highlight:为文本添加黄色背景高亮。
  2. <body> 部分

    • <h1 class="center">
      • 只使用了 .center 类,因此标题会居中对齐,但没有其他样式。
    • <p class="center color">
      • 同时使用了 .center.color 类,因此段落会居中对齐,并且文本颜色为红色。
    • <p class="center color highlight">
      • 同时使用了 .center.color.highlight 类,因此段落会居中对齐,文本颜色为红色,并且背景为黄色。

运行效果

  1. 标题

    • 文本内容居中对齐。
    • 样式:text-align: center;
  2. 第一个段落

    • 文本内容居中对齐。
    • 文本颜色为红色。
    • 样式:text-align: center; color: #ff0000;
  3. 第二个段落

    • 文本内容居中对齐。
    • 文本颜色为红色。
    • 背景为黄色。
    • 样式:text-align: center; color: #ff0000; background-color: yellow;

3. id 和 class 的区别

特性id 选择器class 选择器
唯一性页面中唯一,不能重复使用可以重复使用,适用于多个元素
优先级优先级高优先级低
使用场景用于页面中唯一的元素用于需要重复使用的样式
选择器符号#.

4. 实际应用中的选择

在实际开发中,选择使用 id 还是 class 取决于具体的需求。以下是一些常见的应用场景:

4.1 使用 id 的场景

  • 页面布局中的主要部分:如头部、导航栏、页脚等。
  • 需要 JavaScript 操作的元素:通过 id 可以方便地使用 document.getElementById() 获取元素。
<div id="navbar"><ul><li>Home</li><li>About</li><li>Contact</li></ul>
</div>

4.2 使用 class 的场景

  • 重复使用的样式:如按钮、卡片、列表项等。
  • 需要为多个元素应用相同样式的情况
  • 多个 class 组合使用:通过组合多个 class 实现样式的复用和灵活组合。
<div class="card primary"><h2>Card Title</h2><p>This is a primary card.</p>
</div>
<div class="card danger"><h2>Another Card Title</h2><p>This is a danger card.</p>
</div>

在这个例子中:

  • 第一个 div 同时拥有 cardprimary 两个 class,因此它会应用 .card.primary 的样式。
  • 第二个 div 同时拥有 carddanger 两个 class,因此它会应用 .card.danger 的样式。

5. 总结

  • id 选择器:用于页面中唯一的元素,优先级高,适合用于页面布局的主要部分或需要 JavaScript 操作的元素。
  • class 选择器:用于重复使用的样式,优先级低,适合用于多个元素需要应用相同样式的情况。
  • 多个 class:可以通过组合多个 class 实现样式的复用和灵活组合,提高代码的可维护性。

在实际开发中,合理使用 idclass 选择器可以帮助你更好地组织和管理 CSS 代码,提高代码的可维护性和可读性。

希望本文对你理解 CSS 中的 idclass 选择器有所帮助!如果你有任何问题或建议,欢迎在评论区留言讨论。


相关阅读:

  • CSS 选择器详解
  • CSS 优先级机制

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

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

相关文章

Prometheus+grafana实践:Doris数据库的监控

文章来源&#xff1a;乐维社区 Doris数据库背景 Doris&#xff08;Apache Doris&#xff09;是一个现代化的MPP&#xff08;Massive Parallel Processing&#xff0c;大规模并行处理&#xff09;数据库&#xff0c;主要用于在线分析处理&#xff08;OLAP&#xff09;场景。 D…

【unity游戏开发之InputSystem——02】InputAction的使用介绍(基于unity6开发介绍)

文章目录 前言一、InputAction简介1、InputAction是什么&#xff1f;2、示例 二、监听事件started 、performed 、canceled1、启用输入检测2、操作监听相关3、关键参数 CallbackContext4、结果 三、InputAction参数相关1、点击齿轮1.1 Actions 动作&#xff08;1&#xff09;动…

现代JavaScript网页设计

现代JavaScript网页设计&#xff1a;打造沉浸式3D粒子交互系统 案例概述 本文将实现一个基于WebGL的3D粒子交互系统&#xff0c;结合物理引擎与光线追踪技术&#xff0c;创造出具有以下高级特性的现代网页体验&#xff1a; 动态粒子矩阵&#xff08;100,000粒子实时渲染&…

基于 WEB 开发的在线学习系统设计与开发

标题:基于 WEB 开发的在线学习系统设计与开发 内容:1.摘要 摘要&#xff1a;随着互联网技术的飞速发展&#xff0c;在线学习已经成为一种重要的学习方式。本文介绍了基于 WEB 开发的在线学习系统的设计与开发过程。该系统采用了 B/S 架构&#xff0c;使用 Java 语言和 MySQL 数…

从Spring请求处理到分层架构与IOC:注解详解与演进实战

引言 在Spring开发中&#xff0c;请求参数处理、统一响应格式、分层架构设计以及依赖管理是构建可维护应用的核心要素。然而&#xff0c;许多开发者在实践中常面临以下问题&#xff1a; 如何规范接收不同格式的请求参数&#xff1f; 为何要引入分层架构&#xff1f; 什么是控…

逐笔成交逐笔委托Level2高频数据下载和分析:20250124

逐笔成交逐笔委托下载 链接: https://pan.baidu.com/s/1UWVY11Q1IOfME9itDN5aZA?pwdhgeg 提取码: hgeg Level2逐笔成交逐笔委托数据分享下载 通过Level2逐笔成交与逐笔委托的详细数据&#xff0c;这种以毫秒为单位的信息能揭示许多关键点&#xff0c;如庄家意图、误导性行为&…

详解Redis的Zset类型及相关命令

目录 Zset简介 ZADD ZCARD ZCOUNT ZRANGE ZREVRANGE ZRANGEBYSCORE ZPOPMAX BZPOPMAX ZPOPMIN BZPOPMIN ZRANK ZREVRANK ZSCORE ZREM ZREMRANGEBYRANK ZREMRANGEBYSCORE ZINCRBY ZINTERSTORE 内部编码 应用场景 Zset简介 有序集合相对于字符串、列表、哈希…

深度解析:哪种心磁图技术是心脏检查的精准之选?

在全球心血管疾病的阴影日益笼罩的今天&#xff0c;医学界正积极寻求一种无损、无创、无辐射的心脏健康监测方式。心磁图仪&#xff08;MCG&#xff09;&#xff0c;这一前沿技术&#xff0c;凭借其独特的优势&#xff0c;悄然成为心脏电磁功能监测的新星。它不仅为心肌缺血、心…

jupyter配置说明

使用以下命令修改jupyter的配置文件参数&#xff1a; vim /root/.jupyter/jupyter_lab_config.py #这里填写远程访问的IP名&#xff0c;填*则默认是主机IP名 c.ServerApp.ip * # 这里的密码填写上面生成的密钥 c.ServerApp.password ************************************…

对grid布局有哪些了解【css】

CSS Grid 布局是现代网页设计中非常强大的布局方式之一&#xff0c;它能够使你以更加灵活且直观的方式来设计网页的布局&#xff0c;特别适用于复杂的多行多列的布局。它允许你在网页上创建非常精确的网格&#xff0c;帮助你把内容放置在多个行和列中。 1. Grid 布局的基本概念…

Node.js下载安装及环境配置教程 (详细版)

Node.js&#xff1a;是一个基于 Chrome V8 引擎的 JavaScript 运行时&#xff0c;用于构建可扩展的网络应用程序。Node.js 使用事件驱动、非阻塞 I/O 模型&#xff0c;使其非常适合构建实时应用程序。 Node.js 提供了一种轻量、高效、可扩展的方式来构建网络应用程序&#xff0…

软件越跑越慢的原因分析

如果是qt软件&#xff0c;可以用Qt Creator Profiler 作性能监控如果是通过web请求&#xff0c;可以用JMeter监控。 软件运行过程中逐渐变慢的现象&#xff0c;通常是因为系统资源&#xff08;如 CPU、内存、磁盘 I/O 等&#xff09;逐渐被消耗或软件中存在性能瓶颈。这个问题…

leetcode_链表 203.移除链表元素

203.移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回新的头节点 。 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, val0, nextNone): # …

日志收集Day005

1.filebeat的input类型之filestream实战案例: 在7.16版本中已经弃用log类型,之后需要使用filebeat,与log不同&#xff0c;filebeat的message无需设置就是顶级字段 1.1简单使用&#xff1a; filebeat.inputs: - type: filestreamenabled: truepaths:- /tmp/myfilestream01.lo…

Vue中设置报错页面和“Uncaught runtime errors”弹窗关闭

文章目录 前言操作步骤大纲1.使用Vue自带的报错捕获机制添加报错信息2.在接口报错部分添加相同机制3.把报错信息添加到Vuex中方便全局使用4.添加报错页面备用5.app页面添加if判断替换报错界面 效果备注&#xff1a;vue项目中Uncaught runtime errors:怎样关闭 前言 在开发Vue项…

01、硬件设计常用经典电路

前言 一直想入职嵌入式软件&#xff0c;但是25年作为学历一般的应届生真是太难了&#xff0c;于是今年实习就不想跑太远了&#xff0c;就在老家5线小城市进入了一家小企业&#xff0c;当电子工程师实习&#xff08;学徒&#xff09;。 抱着入职什么&#xff0c;就学习什么的态…

使用Cline+deepseek实现VsCode自动化编程

不知道大家有没有听说过cursor这个工具&#xff0c;类似于AIVsCode的结合体&#xff0c;只要绑定chatgpt、claude等大模型API&#xff0c;就可以实现对话式自助编程&#xff0c;简单闲聊几句便可开发一个软件应用。 但cursor受限于外网&#xff0c;国内用户玩不了&#xff0c;…

微信小程序中常见的 跳转方式 及其特点的表格总结(wx.navigateTo 适合需要返回上一页的场景)

文章目录 详细说明总结wx.navigateTo 的特点为什么 wx.navigateTo 最常用&#xff1f;其他跳转方式的使用频率总结 以下是微信小程序中常见的跳转方式及其特点的表格总结&#xff1a; 跳转方式API 方法特点适用场景wx.navigateTowx.navigateTo({ url: 路径 })保留当前页面&…

Redis for AI

Redis存储和索引语义上表示非结构化数据&#xff08;包括文本通道、图像、视频或音频&#xff09;的向量嵌入。将向量和关联的元数据存储在哈希或JSON文档中&#xff0c;用于索引和查询。 Redis包括一个高性能向量数据库&#xff0c;允许您对向量嵌入执行语义搜索。可以通过过…

[Unity 热更方案] 使用Addressable进行打包管理, 使用AssetBundle进行包的加载管理.70%跟练

在正常的开发过程中我们经常遇到一些关于热更的方案,有一些已有的方案供我们选择,但是实机情况往往不尽如人意,各有优缺点. 现在我们同样有一个热更的需求,但是要求打包简单,加载过程可查,防止出现一些资源和流程的问题. 下面介绍我在项目中使用的方案. 打包方面使用Addressabl…