04--CSS基础(3) - 指南

news/2025/11/9 17:55:19/文章来源:https://www.cnblogs.com/gccbuaa/p/19204563

一.浏览器调试工具

查看CSS属性

1.打开

在网页上F12或者右键检查打开调试工具

2.标签页含义

elements 查看标签结构
console 查看控制台
source 查看源码+断点调试
network 查看前后端交互过程
application 查看浏览器提供的一些扩展功能(本地存储等)
Performance, Memory, Security, Lighthouse 暂时不使用, 先不深究

3.elements标签页使用

ctrl + 滚轮进行缩放, ctrl + 0 恢复原始大小.
使用左上角箭头选中元素
右侧可以查看当前元素的属性, 包括引入的类.
右侧可以修改选中元素的 css 属性. 例如颜色, 可以点击颜色图标, 弹出颜色选择器, 修改颜色. 例如
字体大小, 可以使用方向键来微调数值.
此处的修改不会影响代码, 刷新就还原了~
如果 CSS 样式写错了, 也会在这里有提示. (黄色感叹号)

二.元素显示模式

在CSS中,元素有很多显示模式,这里具体介绍两种

块级元素

行内元素

1.块级元素

常见元素

h1 - h6  p  div  ul  ol li  ...

特点

独占一行
高度, 宽度, 内外边距, 行高都可以控制.
宽度默认是父级元素宽度的 100% (和父元素一样宽)
是一个容器(盒子), 里面可以放行内和块级元素.

Document
parent
不指明高度

注:文字类的元素内不能使用块级元素
p 标签主要用于存放文字, 内部不能放块级元素, 尤其是 div

2.行内元素/内联元素

常见元素

a
strong
b
em
i
del
s
ins
u
span
...

特点

不独占一行, 一行可以显示多个
设置高度, 宽度, 行高无效
左右外边距有效(上下无效). 内边距有效.
默认宽度就是本身的内容
行内元素只能容纳文本和其他行内元素, 不能放块级元素
Document
内容1内容2内容3

a 标签中不能再放 a 标签 (虽然 chrome 不报错, 但是最好不要这么做).
a 标签里可以放块级元素, 但是更建议先把 a 转换成块级元素.

3.块级元素和行内元素的区别

块级元素独占一行, 行内元素不独占一行
块级元素可以设置宽高, 行内元素不能设置宽高.
块级元素四个方向都能设置内外边距, 行内元素垂直方向不能设置

4.改变显示模式

使用 display 属性可以修改元素的显示模式.
可以把 div 等变成行内元素, 也可以把 a , span 等变成块级元素.
display: block 改成块级元素 [常用]
display: inline 改成行内元素 [很少用]
display: inline-block 改成行内块元素
Document
内容1内容2内容3
内容1内容2内容3

三.盒模型

每个HTML元素都相当于一个盒子

1.盒子组成

边框 border
内容 content
内边距 padding
外边距 margin

2.边框

基础属性

粗细: border-width
样式: border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框
颜色: border-color
Document
test1
test2
test3

当对边框整体设置又对某个边框单独设置了,就近原则

谁在下面就是什么颜色

.test3 {border-top: red;border:green;border-bottom: blue;border-style: solid;border-width: 4px;}

边框撑大盒子

Document
边框撑大盒子
边框不撑大盒子

可以看到第一个比400*400大个边框的距离,第二个就整整是400*400

* {
box-sizing: border-box;
}

一般来说这个设置是放在统配符选择器中的,修改浏览器的行为,使得边框不撑大盒子,这里为了演示就放在类里了

3.内边距

padding 设置内容和边框之间的距离

基础写法

默认内容是顶着边框来放置的. padding 来控制这个距离
可以给四个方向都加上边距
padding-top
padding-bottom
padding-left
padding-right
Document


复合写法

可以把多个方向的 padding 合并到一起. [四种情况都要记住, 都很常见]
padding: 5px; 表示四个方向都是 5px
padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px
padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px
padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)

控制台查看元素的盒模型

这个控制台显示的很清楚

4.外边距

控制盒子和盒子之间的距离

基础写法

可以给四个方向都加上边距
margin-top
margin-bottom
margin-left
margin-right

复合写法

规则与padding相同

margin: 10px; // 四个方向都设置
margin: 10px 20px; // 上下为 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40
Document

5.块级元素水平居中

前提

指定宽度(如果不指定宽度, 默认和父元素一致)
把水平 margin 设为 auto

三种写法

margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;
Document
哈哈哈

这里我们就要介绍一下text-align和margin:auto的区别了

margin: auto 是给块级元素用得到.
text-align: center 是让行内元素或者行内块元素居中的.
另外, 对于垂直居中, 不能使用 "上下 margin auto " 的方式.

四.去除浏览器的默认样式

浏览器会给元素加上一些默认的样式, 尤其是内外边距. 不同浏览器的默认样式存在差别.
为了保证代码在不同的浏览器上都能按照统一的样式显示, 往往我们会去除浏览器默认样式.
使用通配符选择器即可完成这件事情
* {margin: 0;padding: 0;}

五.弹性布局

1.初体验

Document
span1span2span3
span1span2span3
span1span2span3
span1span2span3
span1span2span3

2.flex布局基本概念

flex flexible box 的缩写. 意思为 "弹性盒子".
任何一个 html 元素, 都可以指定为 display:flex 完成弹性布局.
flex 布局的本质是给父盒子添加 display:flex 属性, 来控制子盒子的位置和排列方式

基础概念

被设置为 display:flex 属性的元素, 称为 flex container
它的所有子元素立刻称为了该容器的成员, 称为 flex item
flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)

注意:当父元素设置为 display: flex 之后, 子元素的 float, clear, vertical-align 都会失效

常用属性

justify-content
设置主轴上的子元素排列方式.
使用之前一定要确定好主轴是哪个方向
取值效果
flex-start子元素紧贴主轴起始端(默认)。
flex-end子元素紧贴主轴结束端。
center子元素在主轴上居中。
space-between首尾贴边,中间等距。
space-around每个子元素两侧间距相等(首尾间距为中间的一半)。
space-evenly所有间距(包括首尾)完全相等。

未指定 justify-content , 默认按照从左到右的方向布局

align-items
设置侧轴上的元素排列方式
在上面的代码中, 我们是让元素按照主轴的方向排列, 同理我们也可以指定元素按照侧轴方向排列.
取值效果
stretch子元素拉伸填满交叉轴(默认)。
flex-start子元素紧贴交叉轴起始端(顶部或左侧)。
flex-end子元素紧贴交叉轴结束端(底部或右侧)。
center子元素在交叉轴上居中。
baseline子元素根据文本基线对齐。
first baseline明确使用首行基线对齐(CSS Grid 常用)。
last baseline明确使用末行基线对齐(CSS Grid 常用)。
取值和 justify-content 差不多
理解 stretch(拉伸):
这个是 align-content 的默认值. 意思是如果子元素没有被显式指定高度, 那么就会填充满父元素的
高度

Document
span1span2span3

注意:align-items 只能针对单行元素来实现. 如果有多行元素, 就需要使用 item-contents

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

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

相关文章

P14462 【MX-S10-T3】『FeOI-4』寻宝游戏

P14462 【MX-S10-T3】『FeOI-4』寻宝游戏 P14462 【MX-S10-T3】『FeOI-4』寻宝游戏 - 洛谷 (luogu.com.cn) 分类讨论。\(len\ge 3\)。 找到一个目标桶 \(x\),把剩下的都扔进去。 设剩下的桶之中,个数和为 \(sum\),最…

完整教程:FocusAny 发布v1.1.0 插件搜索过滤,FAD文件优化,插件显示MCP服务

完整教程:FocusAny 发布v1.1.0 插件搜索过滤,FAD文件优化,插件显示MCP服务pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

11.9 模拟赛 T3

题意:将 \(n\) 个线段分成恰好 \(m\) 组,每个线段需要且只能分进一组。求这 \(m\) 组线段合法的得分之和最大是多少。一组线段的得分定义为它们的交的长度(区间长度为右端点减左端点)。一个方案合法,当且仅当每组…

CSP2025游记

早上到考场发现那一层两个考场一共就看到两种校服。今年好像不是按姓名字典序排的 J组 挺水的 T1 简单切了 T2 简单切了 T3 想了一会,切了 T4 想了一会,以为自己切了 赛后发现没开滚动数组好像会爆空间($512 \times…

深入解析:从零构建鸿蒙高效数据恢复工具:完整实战教程与可运行Demo

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年安徽合肥智能家居公司推荐榜

摘要 随着智能家居行业的快速发展,2025年国内智能家居设备市场预计将达到千亿规模,消费者对智能家居品牌的选择日益注重口碑、实力和可靠性。本文基于行业数据和用户评价,为您推荐2025年安徽合肥地区智能家居公司排…

2025年智能家居设备厂家综合实力排行榜TOP5

文章摘要 随着智能家居行业的快速发展,2025年国内智能家居设备市场呈现出蓬勃发展的态势。本文基于权威数据和技术指标,对当前智能家居厂家的综合实力进行排名分析,为行业投资者和采购商提供参考依据。文章包含详细…

教育辅助系统开发需求文档 - f

教育辅助系统开发需求文档 1. 项目概述 本项目旨在开发一个集学生电子档案管理、行为矫正跟踪、教学任务管理与家校互动于一体的教育辅助系统。系统需包含教师端、家长端、学生端及后台管理端。2. 功能模块详述 2.1 电…

2025年11月合肥智能家居源头厂家排行

摘要 2025年,智能家居行业持续高速发展,全球市场规模预计突破2000亿美元,中国作为主要生产国,安徽合肥地区凭借产业集群优势成为重要基地。本文基于行业数据、用户口碑和技术实力,为您推荐2025年11月合肥智能家居…

完整教程:超越CNN:GCN如何重塑图像处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:数据结构 04 栈和队列

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:软件编程课程:课程目录介绍 总纲

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Linux下wcout输出中文:迄今为止讲得最清楚的

#include <cstdint> #include <string> #include <iostream> #include <locale> #include <codecvt> using namespace std;wstring utf8_to_wchar(const string& str);int main() {…

CCPC哈尔滨站-J. 幻想乡的裁判长

statement 给一个长为 \(n\) 的字符串 \(s\),字符集为 \(\{\text{o, v, w}\}\),请输出最长的回文子串,这个子串中一个 \(\text{w}\) 可以看成两个 \(\text{v}\)。 给个例子:\(\text{wwovvvv}\) 是合法的。 数据范围…

C语言中的整型提升

整型提升 什么是整型提升?为什么要使用整型提升?整型提升是如何进行的? 1.整型提升 在c语言中,一些表达式在求值的过程中,操作数可能需要转换为其他类型,这种转换,我们程序员是看不见的,称其为隐式类型转换,而…

牛客网测试题

题目Java解题 public class test05 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while(scanner.hasNextLine()){String s = scanner.nextLine();char[] chars = s.toCharArra…

完整教程:Hive 知识点梳理

完整教程:Hive 知识点梳理2025-11-09 17:23 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

OZI-Project代码注入漏洞分析与修复方案

本文详细分析OZI-Project/ozi-publish中发现的代码注入漏洞CVE-2025-47271,涵盖漏洞影响范围、修复版本、CVSS评分及缓解措施,帮助开发者理解并防范类似安全风险。OZI-Project/ozi-publish 代码注入漏洞 CVE-2025-4…

创建第一个pygame游戏窗口

创建了一个pygame游戏窗口,并且通过循环不断的监听和响应用户事件 如果用户按下了按键就print一句话;如果是点了退出按钮就关闭窗口 import pygamepygame.init() size = (600, 400) screen = pygame.display.set_mod…

常量的二元图景:C 语言的刚性契约与 Python 的柔性表达

常量的二元图景:C 语言的刚性契约与 Python 的柔性表达 引言:被混淆的 “不变性”—— 从字面量与常量的认知错位说起 在程序设计基础教学里,“常量” 是最容易被 “简化到失真” 的概念。为了让初学者快速上手,很…