六十天前端强化训练之第二天CSS选择器与盒模型深度解析

=====欢迎来到编程星辰海的博客讲解======

目录

一、CSS 核心概念

1. 三种引入方式

2. CSS 注释

3. 常见单位系统

二、CSS选择器核心知识

1. 基础选择器类型

2. 组合选择器

3. 伪类选择器(部分示例)

4. 优先级计算规则

三、盒模型深度解析

1. 标准盒模型图示

2. box-sizing详解

四、优先级覆盖实战案例

完整可运行代码

效果说明

五、学习要点总结

六、扩展阅读推荐


🚀 CodePen完全指南:从零开始玩转在线代码沙盒
—— 用浏览器就能写代码的神器,前端开发者的创意游乐场!

一、CSS 核心概念
1. 三种引入方式

HTML

<!-- 行内样式 -->
<div style="color: red;">示例文字</div><!-- 内嵌样式 -->
<head><style>.box { padding: 20px; }</style>
</head><!-- 外部样式表 -->
<link rel="stylesheet" href="styles.css">

2. CSS 注释

CSS

/* 单行注释 */
/*多行注释可跨多行
*/

3. 常见单位系统
单位类型示例适用场景
绝对单位px, pt固定尺寸元素
相对单位em, rem, %响应式布局
视窗单位vw, vh全屏布局
颜色单位#fff, rgb()颜色定义

CSS(层叠样式表)的基本语法由选择器声明块组成:


1. 选择器

指定要样式化的HTML元素。常见类型:

  • 元素选择器p { ... }(选中所有<p>标签)

  • 类选择器.class { ... }(选中class="class"的元素)

  • ID选择器#id { ... }(选中id="id"的元素)


2. 声明块

用大括号 {} 包裹,内部是属性-值对

CSS

选择器 {属性1: 值;属性2: 值;
}

示例

CSS

p {color: red;        /* 文字颜色 */font-size: 16px;   /* 字号 */margin: 10px;      /* 外边距 */
}


3. 属性和值

  • 属性:要修改的样式类型(如 colorwidth

  • :具体的样式设置(如 blue50%20px

  • 每对属性值用 : 连接,结尾用 ; 分隔。


4. 注释

用 /* 注释内容 */ 添加说明。


5. 常见注意点

  • 区分大小写(建议全小写)

  • 分号不可省略(最后一个声明可省,但建议保留)

  • 属性值可用空格、百分比、颜色名称等多种形式。


一句话总结
通过 选择器 { 属性: 值; } 的格式,精准控制网页元素的样式表现。

二、CSS选择器核心知识
1. 基础选择器类型

CSS

/* 元素选择器 */
div { color: red; }/* 类选择器 */
.container { width: 1200px; }/* ID选择器 */
#main-nav { background: #333; }/* 属性选择器 */
input[type="text"] { border: 1px solid #ccc; }/* 通配符选择器 */
* { margin: 0; padding: 0; }

2. 组合选择器

CSS

/* 后代选择器 */
article p { line-height: 1.6; }/* 子选择器 */
ul > li { list-style: none; }/* 相邻兄弟选择器 */
h2 + p { margin-top: 0; }/* 通用兄弟选择器 */
h2 ~ p { color: #666; }

3. 伪类选择器(部分示例)

CSS

/* 动态伪类 */
a:hover { color: #f00; }
input:focus { outline: 2px solid blue; }/* 结构伪类 */
li:nth-child(2n) { background: #f5f5f5; }
tr:first-child { font-weight: bold; }

4. 优先级计算规则

权重等级表:

TEXT

!important > 行内样式(1000) > ID(100) > 类/属性/伪类(10) > 元素/伪元素(1)

计算示例:

CSS

#nav .item:hover  // 100 + 10 + 10 = 120
div#header a.btn  // 1 + 100 + 10 = 111


三、盒模型深度解析
1. 标准盒模型图示

TEXT

+-----------------------------------+
|             margin(40)           |
|  +-----------------------------+  |
|  |          border(2)          |  |
|  |  +-----------------------+  |  |
|  |  |       padding(20)     |  |  |
|  |  |  +-----------------+  |  |  |
|  |  |  |  content(200)   |  |  |  |
|  |  |  +-----------------+  |  |  |
|  |  +-----------------------+  |  |
|  +-----------------------------+  |
+-----------------------------------+

2. box-sizing详解

CSS

.box {box-sizing: content-box; /* 默认值 */box-sizing: border-box;  /* 现代开发推荐值 */
}

尺寸计算对比:

TEXT

content-box: width = content宽度
border-box: width = content + padding + border


四、优先级覆盖实战案例
完整可运行代码

HTML

<!DOCTYPE html>
<html>
<head>
<style>/* 元素选择器(权重:0,0,1) */div { width: 200px;padding: 20px;background: lightblue !important;  /* 强制最高优先级 */}/* 类选择器(权重:0,1,0) */.priority-box {background: lightgreen;border: 2px solid darkgreen;}/* ID选择器(权重:1,0,0) */#specialBox {background: salmon;margin: 10px;}/* 行内样式(权重:1,0,0,0) */
</style>
</head>
<body><div class="priority-box" id="specialBox" style="background: goldenrod">优先级实践盒子</div>
</body>
</html>

效果说明

最终显示效果:

  • 背景色:lightblue(!important强制覆盖)
  • 边框:darkgreen(类选择器生效)
  • 外边距:10px(ID选择器生效)
  • 行内样式背景色被覆盖

五、学习要点总结
  1. 优先级黄金法则

    • !important > 行内样式 > ID > 类 > 元素
    • 权重计算不采用十进制进位制
    • 相同优先级时后定义的生效
  2. 盒模型要点

    • 总宽度 = width + padding + border + margin
    • box-sizing改变计算方式
    • 负margin的特殊应用场景
  3. 开发建议

    • 避免过度使用ID选择器
    • 谨慎使用!important
    • 统一使用border-box模型

    CSS

    * { box-sizing: border-box;margin: 0; padding: 0; 
    }
    


六、扩展阅读推荐
  1. 官方文档:

    • MDN CSS选择器
    • W3C盒模型规范
  2. 深度文章:

    • CSS选择器性能优化指南
    • 现代CSS盒模型最佳实践
  3. 可视化工具:

    • CSS选择器测试沙盒
    • 交互式盒模型演示

建议通过Chrome开发者工具的Elements面板实时调试选择器匹配情况和盒模型计算细节,这是掌握这些概念的最佳实践方式。

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

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

相关文章

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片

【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片 根据您的需求&#xff0c;目前需要了解以下几个关键点及分步解决方案&#xff1a; --- 一、现状分析 1. Ollama 的限制&#xff1a; - 目前Ollama主要面向文本大模型&#xff0c;原生不支持直接上传/处理图片 …

【音视频】音视频录制、播放原理

一、音视频录制原理 通常&#xff0c;音视频录制的步骤如下图所示&#xff1a; 我们分别从音频和视频开始采样&#xff0c;通过麦克风和摄像头来接受我们的音频信息和图像信息&#xff0c;这通常是同时进行的&#xff0c;不过&#xff0c;通常视频的采集会比音频的采集慢&…

解锁养生密码,拥抱健康生活

在快节奏的现代生活中&#xff0c;养生不再是一种选择&#xff0c;而是我们保持活力、提升生活质量的关键。它不是什么高深莫测的学问&#xff0c;而是一系列融入日常的简单习惯&#xff0c;每一个习惯都在为我们的健康加分。 早晨&#xff0c;当第一缕阳光洒进窗户&#xff0c…

7种内外网数据交换方案全解析 哪种安全、高效、合规?

内外网数据交换方案主要解决了企业跨网络数据传输中的安全、效率与合规性问题。通过采用先进的加密技术、高效的数据传输协议以及严格的审批和审计机制&#xff0c;该方案确保了数据在内外网之间的安全交换&#xff0c;同时提高了传输效率&#xff0c;并满足了企业对数据合规性…

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置 前言整体思路安装 WSL2Windows 环境升级为 WIN11 专业版启用window子系统及虚拟化 安装WSL2通过 Windows 命令提示符安装 WSL安装所需的 Linux 发行版&#xff08;如 Ubuntu 20.04&#xff09;查看…

监听其他音频播放时暂停正在播放的音频

要实现当有其他音频播放时暂停当前音频&#xff0c;你可以使用全局事件总线或 Vuex 来管理音频播放状态。这里我将展示如何使用一个简单的事件总线来实现这个功能。 首先&#xff0c;你需要创建一个事件总线。你可以在项目的一个公共文件中创建它&#xff0c;例如 eventBus.js…

Android数据库SQLite、Room、Realm、MMKV/DataStore、ObjectBox性能比较

Android主流数据库基础特点核心数据库特性与性能对比维度总结 在 Android 开发中&#xff0c;数据库选型直接影响应用的性能、开发效率和可维护性。不同数据库的存储限制&#xff0c;比如常用的SharedPreferences、SQLite、还有基于SQLite封装的greenDao等&#xff0c;这些似乎…

Solidity study

Solidity 开发环境 Solidity编辑器&#xff1a;Solidity编辑器是一种专门用于编写和编辑Solidity代码的编辑器。常用的Solidity编辑器包括Visual Studio Code、Atom和Sublime Text。以太坊开发环境&#xff1a;以太坊开发环境&#xff08;Ethereum Development Environment&am…

【废物研究生零基础刷算法】DFS与递归(一)典型题型

文章目录 跳台阶递归实现指数级枚举递归实现排列型枚举上面两题总结 递归实现组合型枚举P1036选数 跳台阶 思路&#xff1a; 如果 n 1&#xff0c;只有一种走法&#xff08;走 1 级&#xff09;。如果 n 2&#xff0c;有两种走法&#xff08;11 或 2&#xff09;。对于 n &g…

GCC 和 G++的基本使用

GCC 和 G 命令 GCC 和 G 命令GCC&#xff08;GNU C 编译器&#xff09;基本用法常用选项示例 G&#xff08;GNU C 编译器&#xff09;基本用法常用选项示例 GCC 与 G 的区别选择使用 GCC 还是 G C编译流程1. 预处理&#xff08;Preprocessing&#xff09;2. 编译&#xff08;Co…

HWUI 和 Skia

&#x1f4cc; HWUI 和 Skia 的关系 Skia 是 Android 的底层 2D 图形库&#xff0c;提供 CPU 和 GPU 渲染能力&#xff0c;支持 OpenGL、Vulkan、Metal 等后端。HWUI 是 Android UI 组件的 GPU 渲染引擎&#xff0c;主要用于 加速 View、动画、阴影等 UI 元素的绘制。HWUI 依赖…

编写第一个 C++ 程序 – Hello World 示例

“Hello World”程序是学习任何编程语言的第一步&#xff0c;也是您将学习的最直接的程序之一。它是用于演示编码过程如何工作的基本程序。您所要做的就是在输出屏幕上显示 “Hello World”。 C Hello World 程序 下面是在控制台屏幕上打印 “Hello World” 的 C 程序。 // …

【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程

本小节学习建议&#xff1a;掌握Python编程、统计学&#xff08;时间序列分析&#xff09;、金融学基础&#xff08;资产定价理论&#xff09;三者结合&#xff0c;是进入量化领域的核心路径。 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章目录 1.1 量化金…

docker部署GPU环境

使用 Docker 部署 GPU 环境涉及到几个关键步骤,以下是详细步骤: 1. 安装 NVIDIA 驱动程序 确保你的系统已经安装了 NVIDIA GPU 驱动。这是使用 GPU 的前提条件。 2. 安装 Docker 和 nvidia-container-toolkit 首先,确保你已经安装了 Docker。然后,安装 NVIDIA Containe…

Pytorch实现之混合成员GAN训练自己的数据集

简介 简介:提出一种新的MMGAN架构,使用常见生成器分布的混合对每个数据分布进行建模。由于生成器在多个真实数据分布之间共享,高度共享的生成器(通过混合权重反映)捕获分布的公共方面,而非共享的生成器捕获独特方面。 论文题目:MIXED MEMBERSHIP GENERATIVE ADVERSARI…

matlab和java混合编程经验分享

最常用的就是可以查到再控制栏deploytool选择library complier打包&#xff0c;但是有问题就是比如果用了外部的求解器比如yalmip或者cplex的话用这个方法会找不到外部的求解器&#xff0c;网上找了很多&#xff0c;基本都大同小异。 后面分享一个亲测有效的打包方法&#xff0…

观成科技:海莲花“PerfSpyRAT”木马加密通信分析

1.概述 在2024年9月中旬至10月&#xff0c;东南亚APT组织“海莲花”通过GitHub发布开源安全工具项目&#xff0c;针对网络安全人员发起了定向攻击。通过对相关攻击活动进行分析&#xff0c;可以将其与一些海莲花的样本关联起来。这些样本的通信数据结构与海莲花此前使用的攻击…

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(一)

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷&#xff08;一&#xff09; 第一部分&#xff1a;网络平台搭建与设备安全防护任务书DCRS:DCFW:DCWS:WAF: 第二部分&#xff1a;网络安全事件响应、数字取证调查、应用程序安全任务书任务 1&…

2月25(信息差)

&#x1f30d;四川省人民医院接入DeepSeek 将AI技术应用于看病全流程 &#x1f384;机器人新风口&#xff01;OpenAI押注公司 采用这种新材料 更轻盈耐磨&#xff01;尼龙概念股名单 ✨小米15 Ultra、小米SU7 Ultra定档2月27日 雷军宣布&#xff1a;向超高端进发 1.深夜王炸&…

全面汇总windows进程通信(三)

在Windows操作系统下,实现进程间通信(IPC, Inter-Process Communication)有几种常见的方法,包括使用管道(Pipe)、共享内存(Shared Memory)、消息队列(Message Queue)、命名管道(Named Pipe)、套接字(Socket)等。本文介绍如下几种: RPC(远程过程调用,Remote Pr…