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

embedded/2025/2/26 6:45:57/

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

目录

一、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.ppmy.cn/embedded/167218.html

相关文章

MCP协议

原理讲解 基础概念 Introduction - Model Context Protocol MCP Host&#xff1a;想要通过 MCP 访问数据的程序&#xff0c;例如 Claude Desktop、IDE 或 AI 工具MCP Clients&#xff1a;与服务器保持 1:1 连接的协议客户端MCP Servers&#xff1a;轻量级程序&#xff0c;每个…

基于Python+django+mysql旅游数据爬虫采集可视化分析推荐系统

2024旅游推荐系统爬虫可视化&#xff08;协同过滤算法&#xff09; 基于Pythondjangomysql旅游数据爬虫采集可视化分析推荐系统 有文档说明 部署文档 视频讲解 ✅️基于用户的协同过滤推荐算法 卖价就是标价~ 项目技术栈 Python语言、Django框架、MySQL数据库、requests网络爬虫…

开源测试_POmronFINSTCP

常用功能 EtherNetPLC PlcLink new EtherNetPLC(); //连接PLC&#xff0c;成功为0&#xff0c;不成功为非0 short linkSuccess PlcLink.Link(Para.IP, (short)Para.Port, Para.TimeOut); string address "D3000"; //读取PLC寄存器&#xff0c;成功为0&#xff0c…

05-1基于vs2022的c语言笔记——运算符

目录 前言 5.运算符和表达式 5-1-1 加减乘除运算符 1.把变量进行加减乘除运算 2.把常量进行加减乘除运算 3.对于比较大的数&#xff08;往数轴正方向或者负方向&#xff09;&#xff0c;要注意占位符的选取 4.浮点数的加减乘除 5-1-2取余/取模运算符 1.基本规则 2.c语…

uni-app 登录成功后自动跳转至登录前页面(H5\微信小程序)

uni-app 登录成功后自动跳转至登录前页面 一、新建配置文件&#xff0c;位于根目录下&#xff0c;config.js // 应用全局配置 module.exports {// 应用信息appInfo: {loginPage: "/pages/login",cacheRouteKey: "unLoginTargetRoute"// 更多配置项...}/…

嵌入式人工智能应用-第四章 支持向量机 9

文章目录 1 支持向量机(Support Vector Machine, SVM)1.1 背景介绍1.1.1 线性可分1.1.3 最大间隔超平面1.1.4 支持向量1.2 支持向量机问题描述1.3 线性SVM的算法的数学建模1.3.1 决策面方程1.3.2 分类“间隔计算模型”1.3.3 常见核函数1.4 支持向量机的优缺点1.4.1 优点1.4.2…

python-leetcode-字符串解码

394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; class Solution:def decodeString(self, s: str) -> str:stack []num 0curr_str ""for char in s:if char.isdigit():num num * 10 int(char)elif char [:stack.append((curr_str, num))curr_str, …

DeepSeek赋能机器人革命:从推理引擎到行业落地的全栈技术实践

——解析大模型如何重塑机器人产业的智能化未来 引言:机器人产业的技术范式转移 在2025年全球机器人市场规模突破2000亿美元的关键节点,DeepSeek凭借其创新的"推理优先"技术架构,正在重构机器人产业的智能化路径。通过将大模型的认知推理能力与机器人执行系统深…