9. 从《蜀道难》学CSS基础:三种选择器的实战解析

引言:当古诗遇上现代网页设计
今天我们通过李白的经典诗作《蜀道难》来学习CSS的三种核心选择器。这种古今结合的学习方式,既能感受中华诗词的魅力,又能掌握实用的网页设计技能。让我们开始这场穿越时空的技术之旅吧!

一、HTML骨架搭建

首先,我们来看网页的基本结构:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>css简介</title><style>/* CSS代码将在这里书写 */</style>
</head>
<body><h1>蜀道难</h1><h2 class="color_red itcalic">作者 李白</h2><p id="p1">噫吁嚱 !危乎高哉 !</p><p>蜀道之难 难于上青天 蚕丛及鱼凫 开国何茫然</p><p class="color_red">尔来四万八千岁 不与秦塞通人烟</p>
</body>
</html>

关键点解析:

  • <!DOCTYPE html> 声明文档类型
  • <html> 根元素,lang=“en” 指定语言
  • <head> 包含元数据和样式表
  • <body> 包含网页可见内容
  • 我们使用了<h1><h2><p>三种标签来组织内容

二、CSS选择器详解

1. 元素选择器 - 批量设置样式

h1 {color: yellowgreen;
}p {background-color: pink;
}

效果:

  • 所有<h1>标签文字变为黄绿色
  • 所有<p>标签背景变为粉色

特点:

  • 语法:标签名 { 样式规则 }
  • 作用于页面中所有同名元素
  • 适合批量设置相同元素的样式

2. ID选择器 - 唯一标识的元素

#p1 {font-size: 20px;
}

效果:

  • 只有id="p1"的段落文字变为20像素大小

特点:

  • 语法:#id值 { 样式规则 }
  • 每个ID在页面中必须唯一
  • 优先级高于元素选择器
  • 适合设置页面中唯一元素的样式

3. 类选择器 - 共享样式的元素

.color_red {color: red;background-color: #fff;
}

效果:

  • 所有class="color_red"的元素文字变为红色,背景变为白色
  • 包括第二个<h2>和第三个<p>标签

特点:

  • 语法:.类名 { 样式规则 }
  • 多个元素可以共享同一个类
  • 一个元素可以有多个类(用空格分隔)
  • 适合设置需要重复使用的样式

三、样式应用实例分析

让我们看看这些选择器在实际古诗排版中的效果:

1. 标题样式:
<h1>蜀道难</h1>
h1 { color: yellowgreen; }
  • 标题文字变为黄绿色,突出显示
2. 作者信息:
<h2 class="color_red itcalic">作者 李白</h2>
  • 使用了两个类:color_red和itcalic
  • 文字变为红色,背景白色
3. 特色段落:
<p id="p1">噫吁嚱 !危乎高哉 !</p>
#p1 { font-size: 20px; }
  • 首段文字放大,吸引读者注意
4. 诗句排版:
<p>蜀道之难 难于上青天 蚕丛及鱼凫 开国何茫然</p>
<p class="color_red">尔来四万八千岁 不与秦塞通人烟</p>
  • 第一段使用默认样式
  • 第二段使用红色文字和白色背景,形成视觉对比

四、选择器优先级规则

在上面的例子中,我们其实已经隐含地接触到了CSS优先级的概念:

  1. ID选择器 > 类选择器 > 元素选择器
  2. 当样式冲突时,优先级高的选择器会生效
  3. 可以通过!important强制覆盖(但不推荐滥用)

例如,如果我们这样写:

p { color: blue; }
#p1 { color: green; }
.color_red { color: red; }
  • 普通段落会是蓝色
  • id="p1"的段落会是绿色(覆盖蓝色)
  • class="color_red"的段落会是红色(除非同时有ID选择器覆盖)

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

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

相关文章

三角网格减面算法及其代表的算法库都有哪些?

以下是三角网格减面算法及其代表库/工具的详细分类&#xff0c;涵盖经典算法和现代实现&#xff1a; ​​1. 顶点聚类&#xff08;Vertex Clustering&#xff09;​​ ​​原理​​&#xff1a;将网格空间划分为体素栅格&#xff0c;合并每个栅格内的顶点。​​特点​​&#…

URP - 屏幕图像(_CameraOpaqueTexture)

首先需要在unity中开启屏幕图像开关才可以使用该纹理 同样只有不透明对象才能被渲染到屏幕图像中 若想要该对象不被渲染到屏幕图像中&#xff0c;可以将其Shader的渲染队列改为 "Queue" "Transparent" 如何在Shader中使用_CameraOpaqueTexture&#xf…

vue 和 html 的区别

使用 Vue.js 和原生 HTML 开发 Web 应用有显著的区别&#xff0c;主要体现在开发模式、功能扩展、性能优化和维护性等方面。以下是两者的对比分析&#xff1a; &#x1f9f1; 原生 HTML&#xff08;HTML CSS JavaScript&#xff09; 特点&#xff1a; 静态结构&#xff1a;H…

LeetCode[226] 翻转二叉树

思路&#xff1a; 使用递归&#xff0c;归根结底还是左右节点互相倒&#xff0c;那么肯定需要一个temp节点在中间传递&#xff0c;最后就是递归&#xff0c;没什么说的 代码&#xff1a; /*** Definition for a binary tree node.* public class TreeNode {* int …

幂等的几种解决方案以及实践

目录 什么是幂等&#xff1f; 解决幂等的常见解决方案&#xff1a; 唯一标识符案例 数据库唯一约束 案例 乐观锁案例 分布式锁&#xff08;Distributed Locking&#xff09; 实践精选方案 首先 为什么不直接使用分布式锁呢&#xff1f; 自定义实现幂等组件&#xff01…

PowerShell中的Json处理

1.定义JSON字符串变量 PS C:\WINDOWS\system32> $body {"Method": "POST","Body": {"model": "deepseek-r1","messages": [{"content": "why is the sky blue?","role"…

奥威BI:AI+BI深度融合,重塑智能AI数据分析新标杆

在数字化浪潮席卷全球的今天&#xff0c;企业正面临着前所未有的数据挑战与机遇。如何高效、精准地挖掘数据价值&#xff0c;已成为推动业务增长、提升竞争力的核心议题。奥威BI&#xff0c;作为智能AI数据分析领域的领军者&#xff0c;凭借其创新的AIBI融合模式&#xff0c;正…

【Linux网络】网络协议基础

网络基础 计算机网络背景 独立模式:计算机之间相互独立 网络互联:多台计算机连接在一起,完成数据共享 局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起 广域网WAN:将远隔千里的计算机都连在一起 所谓"局域网"和"广域网"只是一个相对的概念.比…

LabVIEW表面粗糙度测量及算法解析

在制造业和科研领域&#xff0c;表面粗糙度测量对保障产品质量、推动材料研究意义重大。表面粗糙度作为衡量工件表面加工质量的关键指标&#xff0c;直接影响着工件诸如磨损、密封、疲劳等机械性能。随着技术的发展&#xff0c;LabVIEW 在表面粗糙度测量及数据处理中发挥着不可…

深入探索 JavaScript 中的模块对象

引言 在现代 JavaScript 开发中&#xff0c;模块化编程是一项至关重要的技术。它允许开发者将代码拆分成多个独立的模块&#xff0c;每个模块专注于单一功能&#xff0c;从而提高代码的可维护性、可测试性和复用性。而模块对象则是模块化编程中的核心概念之一&#xff0c;它为…

Linux——Mysql数据库

目录 一&#xff0c;数据库简介 二&#xff0c;数据库的基本概念 1&#xff0c;数据 2&#xff0c;数据库和数据库表 3&#xff0c;数据库管理系统和数据库系统 三&#xff0c;主流数据库介绍 四&#xff0c;数据库的两大类型 1&#xff0c;关系型数据库 主键 外键 2…

73页最佳实践PPT《DeepSeek自学手册-从理论模型训练到实践模型应用》

这份文档是一份关于 DeepSeek 自学手册的详细指南&#xff0c;涵盖了 DeepSeek V3 和 R1 模型的架构、训练方法、性能表现以及使用技巧等内容。它介绍了 DeepSeek V3 作为强大的 MoE 语言模型在数学、代码等任务上的出色表现以及其训练过程中的创新架构如多头潜在注意力和多 To…

LabVIEW 2019 与 NI VISA 20.0 安装及报错处理

在使用 Windows 11 操作系统的电脑上&#xff0c;同时安装了 LabVIEW 2019 32 位和 64 位版本的软件。此前安装的 NI VISA 2024 Q1 版&#xff0c;该版本与 LabVIEW 2019 32 位和 64 位不兼容&#xff0c;之后重新安装了 NI VISA 20.0。从说明书来看&#xff0c;NI VISA 20.0 …

基于Centos7的DHCP服务器搭建

一、准备实验环境&#xff1a; 克隆两台虚拟机 一台作服务器&#xff1a;DHCP Server 一台作客户端&#xff1a;DHCP Clinet 二、部署服务器 在网络模式为NAT下使用yum下载DHCP 需要管理员用户权限才能下载&#xff0c;下载好后关闭客户端&#xff0c;改NAT模式为仅主机模式…

最全盘点,赶紧收藏:2025 年全网最全的 Java 技术栈内容梳理(持续更新中)

大家好&#xff0c;我是栗筝i&#xff0c;是一个拥有 5 年经验的 Java 开发工程师和技术博主&#xff0c;曾有多年在国内某大厂工作的经历。从 2022 年 10 月份开始&#xff0c;我将持续梳理出全面的 Java 技术栈内容&#xff0c;一方面是对自己学习内容进行整合梳理&#xff0…

【项目实践】boost 搜索引擎

1. 项目展示 boost搜索引擎具体讲解视频 2. 项目背景 对于boost库&#xff0c;官方是没有提供搜索功能的&#xff0c;我们这个项目就是来为它添加一个站内搜索的功能。 3. 项目环境与技术栈 • 项目环境&#xff1a; ubuntu22.04、vscode • 技术栈&#xff1a; C/C、C11、S…

一个简单的MCP测试与debug

最近MCP挺火&#xff0c;我也跟着网上教程试试&#xff0c;参考如下&#xff0c;感谢原博主分享&#xff1a; https://zhuanlan.zhihu.com/p/1891227835722606201https://zhuanlan.zhihu.com/p/1891227835722606201 MCP是啥&#xff1f;技术原理是什么&#xff1f;一个视频搞…

深度学习系统学习系列【7】之卷积神经网络(CNN)

文章目录 说明卷积神经网络概述(Convolutional Neural Network,CNN)卷积神经网络的应用图像分类与识别图像着色自然语言处理NLP卷积神经网络的结构卷积神经网络中的数据流动 CNN与ANN的关系 卷积操作Padding 操作滑动窗口卷积操作网络卷积层操作矩阵快速卷积Im2col算法GEMM算法…

事务隔离(MySQL)

事务隔离 —— 为什么你改了我还看不见&#xff1f; 在数据库中&#xff0c;事务&#xff08;Transaction&#xff09; 用于保证一组数据库操作要么全部成功&#xff0c;要么全部失败&#xff0c;这是一种原子性的操作机制。在 MySQL 中&#xff0c;事务的支持由存储引擎层实现…

华为昇腾910B通过vllm部署InternVL3-8B教程

前言 本文主要借鉴&#xff1a;VLLM部署deepseek&#xff0c;结合自身进行整理 下载模型 from modelscope import snapshot_download model_dir snapshot_download(OpenGVLab/InternVL3-8B, local_dir"xxx/OpenGVLab/InternVL2_5-1B")环境配置 auto-dl上选择单卡…