css3盒子模型最详解

box-sizing

<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
要求将小盒子放到大盒子中, 并且让小盒子在大盒子中水平垂直居中

<!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就行了.

效果;

在这里插入图片描述

盒子居中和内容居中:

<!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;文字的水平居中
效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37805832/article/details/109396907