margin:0 auto 不能实现水平居中的原因解析

margin:0 auto 不能实现水平居中的原因解析

1. 需要居中的元素没有设置宽度

margin:0 auto 中auto的意思是根据元素左右宽度自适应,但是在块元素不设置宽度width的情况下,宽度width默认是100%,这样不能实现宽度的自适应,从而不能达到水平居中的效果。

2. 对行内块和行内元素设置auto

margin:0 auto只对block块元素起作用,当给想要居中的inline-block行内快元素或者inline行内元素设置margin:0 auto实现水平居中是不管用的,可以转换成块元素之后再使用。

3. 给外层元素设置了float

有时不注意给要设置居中的外层元素设置了float(float:left或者float:right),因为设置了float后会让内层元素靠左或者靠右浮动,但是有设置auto想要水平居中,显然出现了逻辑上的错误,就不能实现居中效果了。

4. 没声明DOCTYPE

DOCTYPE是document type(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分!

5. 设置margin:0 auto的选择器混淆

直接给body设置margin:0 auto, margin:0 auto应该是作用对象,如div,p,而不是body。除非你定义body的宽度,那将会让body内的元素产生位置变化。

附加:

如果上面的几种方法解决了都不能实现水平居中,则可以用 text-align:center。到body中加上text-align:center,这样不仅是div,文字也会居中显示。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值