如何理解盒模型及其content、padding、border、margin?

析构薄雾
• 阅读 1932

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【如何理解盒模型及其content、padding、border、margin?】

 

 

【修真院CSS小课堂】

如何理解盒模型及其content、padding、border、margin?

开场语:

大家好,我是IT修真院上海分院第10期的学员林璇,今天给大家分享一下,修真院CSS任务一

深度思考中的知识点——如何理解盒模型及其content、padding、border、margin?

(1)背景介绍:

盒子模型的简介

盒子模型的英文名字是叫做box model,而且HTML也是一个盒子

自然就包括了div a span 都可以成为盒子的,盒子模型是分为这几个的

1 content(中心)2 padding(内边距)3 border(边框)4 margin(外边距)

盒子模型分为IE盒子模型和标准盒子模型

关于这五个属性

width(宽度):内容中心的一个宽度

height(高度):内容中心的一个高度

padding(内边距):在边框和内容的一个中间地方,可以直接用padding属性来控制

border(边框):在内边距和外边距之间的一个边框

margin(外边距):在最外面的叫做外边距,可以控制margin来创建一个距离外边的一个空白

(2)知识剖析:

  1. 盒子模型:

IE盒子模型和标准盒子模型的区别?

在 CSS的标准盒子模型中,width 和 height 指的是内容区域的宽度和高度。

增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。

IE盒子模型中,width 和 height 指的是内容区域+border+padding的宽度和高度。

.每一个属性的四个部分

盒子模型边框部分,都有上,下,左,右这样的属性可以设置

(3)常见问题:

盒子模型为什么无法贴边?

(4)解决方案:

盒子模型的一个外边距margin是有一个默认的8px,只要在<body>那里进行设置成0就好了,margin:0;

(5)编码实战:

在一些网站中,都运用到了盒子模型,尤其是边框的设置方面,在边框的设置下,尤其是要把外边距变成0,这样的话有助于网站的美观

有的网站的一些东西是用了外边距来撑着的,还有保持居中等等,都是用到了盒子模型中的运用属性,盒子模型就像俄罗斯方块一样的。

一个一个的叠加在一起,生效,实现着各种各样的效果

(6)拓展思考:

border 边框要如何拆分

border是一个大综合属性。比如说:

border:1px solid red;

就是把4个边框,都设置为1px宽度、线型实线、red颜色。

(7)参考文献:

1:生命壹号博客

2:B站视频:盒子模型

(8)更多讨论:

1:问题:盒子模型的最终元素的总宽度计算公式是怎么样的呢?

回答:总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

2:问题:盒子模型的最终元素的总高度计算公式是怎么样的呢?

回答:总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距

3:问题:那我们怎样让我们的元素都遵循W3C标准盒子模型呢?

回答:html的文件头部是不是有一个!DOCTYPE html,有这个,就说明你已经遵循W3C标准盒子模型了。

 

(9)鸣谢:

感谢王刚师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
3年前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
风花雪月 风花雪月
2年前
html加css样式,不用js实现切换内容,直接上测试代码!
/清样式,如果是项目中,不推荐使用通配符来清样式,建议使用标签清样式,通配符清样式会增加页面压力/margin:0;padding:0;/宽度为屏宽的一半,高度为屏高的一半,然后居中/.boxwidth:50vw;height:50vh;margin:0a
Java修道之路,问鼎巅峰,我辈代码修仙法力齐天
<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav
linbojue linbojue
1年前
html--心花怒放
代码Canvas绘制一个❤html,bodyheight:100%;padding:0;margin:0;canvasposition:absolute;width:100%;height:100%;CanvasNotSupport/Settings/va
Stella981 Stella981
4年前
Boost(1.69.0) windows入门(译)
<head<title缩进2字符</title<styletype"text/css".yindent,.yblock{padding:1em1em01em;marginright:0;}.yindent{margin:0.7em2em;border:mediumoutset;}.yblock{margin
Wesley13 Wesley13
4年前
HTML5中新增的布局标签
1.1.1  盒子模型层次盒子模型的层次遵循以下顺序:内容paddingà边框àbackgroundimageàbackgroundcoloràmargin!(https://oscimg.oschina.net/oscnet/722909c8dcfd273c73b0c6534e20f8d9bd4.gif)!(ht
Wesley13 Wesley13
4年前
QQ空间说说生成器
index.html<html<head<metaname"viewport"content"widthdevicewidth,initialscale1,userscalableno"<stylebody{margin:0;padding:
Wesley13 Wesley13
4年前
CSS 样式注意、常识
padding的值,不能为负数。使用absolute后,在定义好width和height,使用border的width和height会变大、变宽。设置好看的细线 .thinBorder:after{  content:'';  width:100%;  display:block;  
Wesley13 Wesley13
4年前
MySQL特异功能之:Impossible WHERE noticed after reading const tables
<divclass"htmledit\_views"<divclass"bctfc05fc11nbwblogztag"style"lineheight:28px;fontsize:16px;margin:15px0px;padding:5px0px;overflow:hidden;fontfamily:'Hiragino
linbojue linbojue
2星期前
box-sizing: border-box 详解
🎯核心作用boxsizing:borderbox改变了CSS盒模型的计算方式,让元素的宽度和高度包含内边距(padding)和边框(border),而不是仅仅内容区域。📊盒模型对比默认盒模型(contentbox)css体验AI代码助手代码解读复制代码