浅谈DIV居中方式(带实例)

   最近的实习任务还是处理官网的样式布局,行外人看起前端来或许觉得很简单,前端不就是HTML+CSS+DIV能有多难?然而,真正当自己做前端起来,就会发现一入前端深似海,把设计图转化成一模一样的网站界面真的很简单,但如果想要兼容各种版本的浏览器呢?再或者在兼容当今五花八门的电脑分辨率呢?哈哈,这就没那么简单了。

   而在前端当中,一个情况总是经常遇到的,就是想要把DIV居中,方法有很多,小弟作为前端新人在此总结几个方法,希望能起一个抛砖引玉的作用,如果有前辈发现不对的地方,请提出来让我多多学习!

DIV居中前HTML代码:

        <div class="A">
            <img src="/source/images/A.png" width="170px" >
            <div class="B">
                <b>详细价格表</b>
            </div>
        </div>

DIV居中前效果:



  方法一:父级DIV设置(text-align:center)

<div class="A" style="text-align:center;">
   <img src="/source/images/A.png" width="170px" >
   <div class="B">
      <b>详细价格表</b>
   </div>
</div>
居中后效果:

结论:该方法能使图片或者文字居中,而且不会因为图片的居中而影响文字的居中,同时因为不用设定宽度,兼容不同分辨率比较好。

方法二:设置固定宽度,margin为自动

<div class="A">
            <img src="/source/images/A.png" width="170px" >
            <div class="B">
                <b>详细价格表</b>
            </div>
        </div>

.A{
  width: 170px;
  margin: auto;
}

居中之后效果:


结论:该方法利用了设置固定宽度才能实现,个人认为该方法兼容效果比较差,因为该方法需要考虑div内容在不同分辨率的窗口中的效果来改变div内容宽度,而且该方法会因为图片、文同时居中而宽度不一样而导致宽度小的内容不能正常居中。不过,这问题可以通过调整宽度小的内容的margin来解决。

方法三:利用父DIV浮动自动获得子DIV宽度,父子DIV相对位置而实现居中


<div class="A">
            <img src="/source/images/A.png" width="170px" >
            <div class="B">
                <b>详细价格表</b>
            </div>
        </div>

.A{
  float: left;
  position: relative;
  left: 50%;
}

.B{
  position: relative;
  left:-50%;
}
居中之后效果:


结论:个人认为该方法是三个方法中最好的,较之方法一,灵活性比较强,可以根据需求随意把居中调整向左右修正。同时,较之二,可以自适应宽度,当文字宽度变化时,不需要再次手动修改样式中div宽度,能有效降低耦合性。并且,当图片跟文字在同一行时,该方法的优点就更加明显,方法一将文字与图片重叠在一起,而方法二则需要手动调整各分辨率下的DIV宽度。但是需要注意的是,因为该方法用到了浮动,所以在该父DIV的下一个兄弟DIV的样式应该添加clear:both;来清除浮动来避免div重叠在一起。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值