详解margin: auto

auto是margin的可选值之一。相信大家平时使用auto值时,最多的用法大概是 margin: 0 auto; 和 margin: auto;

不过你可能也发现了不论是 margin: auto; 还是 margin: 0 auto; 效果都是一样的,都是让 #demo 水平居中了,但纵向并没有任何变化。

大家都知道 margin 是复合属性,也就是说 margin: auto; 其实相当于 margin: auto auto auto auto;,margin: 0 auto;相当于 margin: 0 auto 0 auto;,四个值分别对应上右下左。

水平方向:

> 正常流中的块级元素框的水平总和就等于父元素的width

 

'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block


> 在水平格式化的“7大属性”中,只有3个可以设置为auto: width, margin-left, margin-right;

水平方向的 auto,其计算值取决于可用空间(剩余空间)。

 

竖直方向:

宽度计算默认涉及包含块(可粗略理解为父级元素),而高度计算默认涉及内部元素

默认行为的高度计算则是一系列“撑高”规则,而非“适应于父级”规则。

 

对于绝对定位元素,有以下算式:

top + margin-top + border-top-width + padding-top + height + padding-bottom + border-bottom-width + margin-bottom + bottom = height of containing block

.father {
                position: relative;
                width: 100px;
                height: 100px;
                background-color: black;
            }
            
            .son {
                position: absolute;
                top: 0;
                left: 0;
                bottom: 0;
                right: 0;
                width: 50%;
                height: 50%;
                margin: auto;
                background-color: red;
            }

 

 

 

转载于:https://www.cnblogs.com/coderL/p/7667474.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值