详细解读CSS——盒子模型(含详解)

简介: 详细解读CSS——盒子模型(含详解)

一、什么是盒子模型

1、介绍

HTML文档中的每个元素都被比喻成矩形盒子, 盒子模型通过四个边界来描述:margin(外边距),border(边框),padding(内填充),content(内容区域),如果把一个盒子比喻成一个壁挂相片,那么

#外边距margin ===== 一个相框与另外一个相框之间的距离

#边框border ====== 边框指的就是相框

#内边距padding ===== 内容/相片与边框的距离

#宽度width/高度height ===== 指定可以存放内容/相片的区域

   提示:可以通过谷歌开发者工具查看盒子的各部分属性

2、盒子模型举例

Title

/html { /

/ height: 100%;/

/}/

/body { /

/ height: 100%;/

/}/

/.box1 { /

/ width: 100%;/

/ height: 100%;/

/ background-color: red;/

/}/

.sp1 {

Width</span>: 200px;

Height</span>: 200px;

background-color: red;

/display: inline-block;/

display: none;

/visibility: hidden;/

}

.sp2 {

Width</span>: 200px;

Height</span>: 200px;

background-color: green;

display: inline-block;

}

p span {

color: red;

}

你好

你好

你好ayca

盒子模型

二、盒子模型的宽度和高度

1、介绍

#1、内容的宽度和高度

通过标签的width和height属性设置

#2、元素/盒子模型的宽度和高度

宽度= 左边框 + 左内边距 + width(内容的宽) + 右内边距 + 右边框高度

高度= 。。。。

#3、元素/盒子模型空间的宽度和高度

宽度= 左外边距 + 左边框 + 左内边距 + width(内容的宽) + 右内边距 + 右边框高度 + 右外边距

高度= 。。。。

2、练习1:边框

Title

.box1 {

Width</span>: 200px;

Height</span>: 200px;

background: yellow;

/border: 1px dotted red;/

/border-width: 1px 2px 3px 4px;/

/border-style: solid dotted dashed double;/

/border-color: red green blue black;/

border: 1px dotted red;

/border-radius: 20px;/

border-radius: 50%;

text-align: center;

line-Height</span>: 200px;

}

1111

练习1

3、练习2:内边距

Title

{

padding: 0;

margin: 0;

}

div {

Width</span>: 150px;

Height</span>: 150px;

}

.box1 {

/height: 100px;/

box-sizing: border-box;

border: 1px solid red;

padding-top: 50px;

}

.box2 {

Width</span>: 100px;

border: 1px solid green;

padding-left: 50px;

}

.box3 {

border: 1px solid blue;

padding-right: 50px;

}

.box4 {

border: 1px solid yellow;

padding-bottom: 50px;

}

.box5 {

/width: 50px;/

/height: 50px;/

box-sizing: border-box;

border: 1px solid aqua;

padding: 50px;

}

.boxx {

Width</span>: 20px;

Height</span>: 20px;

background-color: red;

}

22222

333

4444

5555

内边框

4、练习3:外边距

Title

{

padding: 0;

margin: 0;

}

div {

Width</span>: 150px;

Height</span>: 150px;

}

.box1 {

border: 1px solid red;

/margin-top: 100px;/

/margin-left: 100px;/

margin-bottom: 70px;

padding-top: 30px;

padding-left: 30px;

box-sizing: border-box;

}

.box2 {

border: 1px solid green;

margin-top: 60px;

}

.box3 {

border: 1px solid blue;

display: inline-block;

margin-right: 50px;

}

.box4 {

border: 1px solid yellow;

display: inline-block;

margin-left: 50px;

}

.box5 {

border: 1px solid grey;

}

.boxx {

Width</span>: 20px;

Height</span>: 20px;

background-color: red;

/margin-top: 30px;/

/margin-left: 30px;/

}

22222

333

4444

5555

外边距

5、练习4:为何height=100%不起作用

如何让 height:100%起作用:你需要给这个元素的所有父元素的高度设定一个有效值。换句话说,你需要这样做:

现在你给div的高度为100%,它有两个父元素和。为了让你的div的百分比高度能起作用,你必须设定和的高度。

这样这个div的高度就会100%了

练习4

三、css显示模式:块级、行内、行内块级

在HTML中HTML将所有标签分为两类,分别是容器级和文本级

在CSS中CSS也将所有标签分为两类,分别是容器级是块级元素和行内元素

#1、HTML中容器级与文本级

容器级标签:可以嵌套其他的所有标签

div、h、ulli、dl>dt+dd

文本级标签:只能嵌套文字、图片、超链接

span、p、buis、strong、em、ins、del

#2、CSS中块级与行内

块级:块级元素会独占一行,所有的容器类标签都是块级,文本标签中的p标签也是块级

div、h、ul、ol、dl、li、dt、dd //代码效果参考:http://www.zidongmutanji.com/zsjx/533345.html

还有标签p

行内:行内元素不会独占一行,所有除了p标签以外的文本标签都是行内

span、buis、strong、em、ins、del

#3、块级元素与行内元素的区别

1、块级元素block

独占一行

可以设置宽高

若没有设置宽度,那么默认和父元素一样宽(比如下例中的div的父元素是body,默认div的宽就是body的宽)

若没有设置宽高,那么就按照设置的来显示

2、行内元素inline

不会独占一行

不可以设置宽高

盒子宽高默认和内容一样

3、行内块级元素inline-block

不会独占一行

可以设置宽高

举例:

/块级元素/

div,p,h1 {

background-color: red;

Width</span>: 200px;

Height</span>: 100px;

}

/行内元素/

span,b,strong {

background-color: blue;

Width</span>: 200px;

Height</span>: 100px;

}

/行内块级元素/

img {

Width</span>: 100px;

Height</span>: 100px;

}

我是div

我是段落

我是标题

我是span

我是加粗

我是强调

举例

四、CSS显示模式转换

属性描述值

display

可以通过标签的display属性设置显示模式

none HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用

block 块级

inline 行内

inline-block 行内块级

display:"none"与visibility:hidden的区别:

visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

五、div与span

布局都是用块级元素,而行内元素是控制内容显示的。

1、div标签

一般用于配合css完成网页的基本布局

2、span标签

一般用于配合css修改网页中的一些局部信息,比如一行文字我们只为一部分加颜色

我是egon

3、div和span有什么区别?

div一般用于排版,而span一般用于局部文字的样式

1、站在HTML的角度:div是一个块级元素、独占一行,而span是一个行内元素、不会单独占一行

2、站在CSS的角度:div是一个容器级标签,而span是一个文本级标签

举例:

div与span标签

.header {

margin: 0 auto;

width: 980px;

height: 100px;

background: pink;

margin-bottom: 10px;

}

.content {

margin: 0 auto;

width: 980px;

height: 500px;

background: #e9ca37;

margin-bottom: 10px;

}

.footer {

margin: 0 auto;

width: 980px;

height: 100px;

background: #7e1487;

}

.logo {

width: 200px;

height: 50px;

background: #bfccdb;

float: left;

margin: 20px;

}

.nav {

width: 600px;

height: 50px;

background: palegreen;

float: right;

margin: 20px;

}

.aside {

width: 250px;

height: 460px;

background: #cccccc;

float: left;

margin: 20px;

}

.article {

width: 650px;

height: 460px;

background: green;

float: right;

margin: 20px;

}

span {

color: red;

}

相关文章
|
SQL XML JSON
不推荐别的了,IDEA 自带的数据库工具就很牛逼!
MySQL 等数据库客户端软件市面上非常多了,别的栈长就不介绍了, 其实 IntelliJ IDEA 自带的数据库工具就很牛逼,不信你继续往下看。
1220 0
不推荐别的了,IDEA 自带的数据库工具就很牛逼!
|
6天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
5天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1043 4
|
8天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
660 2
|
6天前
|
JavaScript API 开发工具
如何在原生App中调用Uniapp的原生功能?
如何在原生App中调用Uniapp的原生功能?
325 139