关于块元素布局时的auto问题

  • 文档流中的块元素布局

(margin-left) + (border-left) + (padding-left) + (width) + (padding-right) + (border-right) + margin-right = 父元素的内容区的宽度(父元素的width)

其中,这七个值中,都可以省略不写,width省略不写为auto,其他六个值省略不写为0。

  • 示例代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #out{
        width: 800px;
        border: 10px solid rebeccapurple;
    }


    #inner{
        height: 100px;
        background-color: #bfa;
    }

</style>
<body>
    
    <div id="out">
        <div id="inner">

        </div>
    </div>

</body>
</html>

效果图
在这里插入图片描述
此时inner需要满足上面的等式。 由于inner元素没有指定这7个值中任意一个值,则此时的等式为 0+0+0+auto+0+0+0=800px,谁的值是auto,则浏览器就会调整谁的值,所以此时width自动被调整成了800。

  • 当width为具体值时
    例如当width设置为200px

此时需要满足 0+0+0+200+0+0+0=800,很显然此时不满足等式,当不满足时,浏览器会调整margin-right的值,此时margin-right值被调整为600.

  • 当width为具体值,margin-left和margin-right其中一个为auto时,此时浏览器会调整为auto的那个值,例如

auto+0+0+200+0+0+0 = 800,此时margin-left就是600px

在这里插入图片描述

  • 当width为具体值,margin-left和margin-right都为auto时,则会平分
    如 auto+0+0+200+0+0+auto = 800,则此时margin-left和margin-right都等于300,这时就会居中。

在这里插入图片描述

  • 当三个值都为auto时

也就是 auto+0+0+auto+0+0+auto=800,则此时会调整width为800。

  • 当width和其中某一个为具体值时。

例如 width和margin-left为200,此时200+0+0+200+0+0+0=800,
那么此时浏览器会将margin-right调整为400

在这里插入图片描述
当width和margin-right为200时,此时0+0+0+200+0+0+200 = 800,则此时浏览器还是会调整margin-right。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值