box-sizing
代码语言:javascript复制<html lang="en">
<head>
<meta charset="UTF-8">
<title>51-盒子box-sizing属性</title>
<style>
.content{
width: 300px;
height: 300px;
background-color: red;
}
.aside{
width: 100px;
height: 200px;
background-color: green;
float: left;
}
.article{
box-sizing: border-box;
width: 200px;
height: 200px;
background-color: blue;
float: right;
border: 20px solid #000;
padding: 20px;
}
</style>
</head>
<body>
<div class="content">
<div class="aside"></div>
<div class="article"></div>
</div>
</body>
</html>
特点: 优点:这个属性可以保证我们给盒子新增padding和border之后, 盒子(border padding 内容(width和height))元素的宽度和高度不变。 box-sizing属性是如何保证增加padding和border之后, 盒子元素的宽度和高度不变? 和我们前面学习的原理一样, 增加padding和border之后要想保证盒子元素的宽高不变, 那么就必须减去一部分内容的宽度和高度
不加边框 padding时:
加了时:
原理是通过减去width height的px值来使整个盒子宽高保持一模一样.
css盒子模型练习:
需求 有一个大盒子, 元素的宽高是500 有一个小盒子, 元素的宽高是200 要求将小盒子放到大盒子中, 并且让小盒子在大盒子中水平垂直居中
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>52-盒子模型练习2</title>
<style>
*{padding: 0px;margin: 0px;}
.big{
width: 500px;
height: 500px;
background-color: red;
border: 1px solid red;
}
.small{
width: 200px;
height: 200px;
background-color: blue;
margin-top:150px;
}
</style>
</head>
<body>
<div class="big">
<div class="small"></div>
</div>
</body>
</html>
注意点; 两个盒子,如果里面的哪一个设置margin-top,外面的那一个也会被顶下来怎么办? 外面哪一个设置border就行了.
效果;
盒子居中和内容居中:
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>53-盒子居中和内容居中</title>
<style>
*{padding: 0px;margin: 0px;}
.father{
width: 800px;
height: 500px;
background-color: red;
text-align: center;
margin:0px auto;
}
</style>
</head>
<body>
<div class="father">
我是文字<br/>
</div>
</body>
</html>
注意一下:
margin:0 auto;
盒子的水平居中.
text-align: center;
文字的水平居中
效果: