盒子模型,说白了,能够放东西的称之为小盒子,例如 div
,h
,li
等。像 img
,input
这类不可以放东西就并不是小盒子。
盒模型:分成具体内容(content
)、添充(padding
)、界限(margin
)、外框(border
)四个部分,具体内容又可分为高(height
)、宽(width
)。
div
高(height
)默认auto
,将由子元素的改完、宽(width
)
盒子模型种类
IE盒模型(border-box)
IE
盒模型:特性 width
,height
包括 content
、border
和 padding
,是指 content padding border
。
W3C规范盒模型(content-box)
W3C
规范盒模型:特性 width
,height
只包括具体内容 content
,不包括 border
和 padding
。
转换盒模型
如果你想要转换盒模型很简单,这里要改动 css3
的 box-sizing
特性。
//W3C盒子模型
box-sizing: content-box
//IE盒子模型
box-sizing: border-box
margin负数难题
margin-top
原素本身会向上移动,同时还会危害下方原素会向上移动;margin-botom
原素本身不容易偏移,但是也会降低本身供css载入高度,进而影响下方原素会向上移动。margin-left
原素本身会往左边挪动,同时还会危害其他原素;margin-right
原素本身不容易偏移,但是也会降低本身供css载入宽度,进而影响右边元素会往左边挪动;
我们首先复位好多个小盒子,随后各自给它设置一下不同类型的 margin
负数,看一下和之前的观点一不一致。
<style>
* {
margin: 0;
padding: 0;
}
body {
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.container {
width: 400px;
box-sizing: border-box;
height: 400px;
background: blue;
}
.green {
width: 200px;
height: 200px;
background: green;
}
.yellow {
width: 200px;
height: 200px;
background: yellow;
margin-bottom: -20px;
}
</style>
</head>
<body>
<div class="container">
<div class="green"></div>
<div class="yellow"></div>
</div>
</body>
margin-top
我们给墨绿色的小盒子设置一个 margin-top
。
.green {
background: red;
margin-top: -20px;
}
结论如下所示,能够看见墨绿色的小盒子本身向上移动了,下方原素也会随着它一起产生偏移。
margin-bottom
我们给墨绿色的小盒子设置一个 margin-bottom
。
.green {
background: red;
margin-bottom: -20px;
}
结论如下所示,能够看见墨绿色的小盒子本身并没产生偏移,可是相对高度变短了,与此同时下边红色的小盒子往上出现了挪动。
margin-left
首先我们要给原素一个波动,使其横着排序,最后我们给墨绿色的小盒子设置一个 margin-left
。
.container div{
float:left
}
.green {
background: red;
margin-left: -20px;
}
结论如下所示,能够看见墨绿色的小盒子本身往左边移动了,右边红色的盒子会伴随着它一起产生偏移。
margin-right
我们给墨绿色的小盒子设置一个 margin-right
。
.green {
background: red;
margin-right: -20px;
}
结论如下所示,能够看见墨绿色的小盒子本身没有出现偏移,可是总宽降低了,与此同时右边红色的小盒子往左边移动了。
不能使用上下浮动二列合理布局
理解了 margin
,既能不能使用波动完成二列规划了。
<style>
.container {
width: 400px;
padding: 10px
}
.left {
width: 100px;
height: 400px;
background-color: blue;
}
.right {
width: 300px;
height: 400px;
margin: -400px 0 0 100px;
background-color: green;
}
</style>
</head>
<body>
<div class="container">
<div class="left"></div>
<div class="right"></div>
</div>
</body>
结论如下所示。
本站是一个以CSS、JavaScript、Vue、HTML为中心的前端开发技术网址。我们的使命是为众多前端工程师者提供全方位、全方位、好用的前端工程师专业知识和技术服务。 在网站上,大家可以学到最新前端开发技术,掌握前端工程师最新发布的趋势和良好实践。大家提供大量实例教程和实例,让大家可以快速上手前端工程师的关键技术和程序。 本站还提供了一系列好用的工具软件,帮助你更高效地开展前端工程师工作中。公司提供的一种手段和软件都要经过精心策划和改进,能够帮助你节约时间精力,提高研发效率。 此外,本站还拥有一个有活力的小区,你可以在社区里与其它前端工程师者沟通交流技术性、交流经验、处理问题。我们坚信,街道的能量能够帮助你能够更好地进步与成长。 在网站上,大家可以寻找你需要的一切前端工程师网络资源,使您成为一名更加出色的网页开发者。欢迎你添加我们的大家庭,一起探索前端工程师的无限潜能!