css3盒子模型最详解

2020-11-03 14:37:17 浏览数 (1)

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;文字的水平居中 效果:

0 人点赞