css怎么实现float:left;居中?

html-css019

css怎么实现float:left;居中?,第1张

CSS有float:left和float:right,但能否实现float:center呢?水平居中浮动,当然是可以的,这里将介绍你实现方法。以下面的Li列表为例,我们要实现中间LI的居中浮动:

1    <div id="macji"> 

2    <ul class="macji-skin"> 

3    <li>列表一</li> 

4    <li>列表二</li> 

5    <li>列表三</li> 

6    </ul> 

7    </div> 

我们需要先了解下position:relative属性,它是指left、right、top、bottom等中的偏移位置。我们可以让ul为position:relativeleft:50%,再让li向左浮动,再让position:relativeright:50%(或者left:-50%),那么li就会向中间浮动一样居中了。不相信的可把下面的CSS定义结合上边的代码拷贝到HTML测试。

view source

01    #macji{  

02    position:relative 

03    width:100% 

04    height:80px 

05    background-color:#eee 

06    text-align:center 

07    overflow:hidden 

08    }  

09    #macji .macji-skin{  

10    float:left 

11    position:relative 

12    left:50% 

13    }  

14    #macji .macji-skin li{  

15    position:relative 

16    right:50% 

17    float:left 

18    margin:10px 

19    padding:0 10px 

20    border:solid 1px #000 

21    line-height:60px 

22    }  

虽然这样用有些麻烦,但对于一个优秀的前端设计师,这个技巧还是有必要掌握的哦。

带有float的块元素是不能让它居中的,只能是左浮动,有浮动,如果想让它居中的话,你得把float去掉,然后加上 {margin: 0 auto}这个是居中显示的,意思是上下边距为0 ,左右边距自适应,这样它就相对于上一级的块元素居中显示了,最好你给这个块元素定义一个宽度。

前言:根据最近学习的课程,简单总结一下学习到的css左右布局以及居中方案。后期学习深入之后再回来进行css居中的完整总结。

给所有子元素添加 float: left ,给父元素加 clearfix 类,清除浮动

html:

css:

将内联元素外部的块级元素的 text-align 设置为 center ,即可实现内联元素( inline 、 inline-block )的水平居中。

演示

将固定宽度的块级元素的 margin-left 和 margin-right 设置为 auto ,即可实现块级元素的水平居中。

演示

将每个块级元素的 display 设置为 inline-block ,然后将它们的父容器的 text-align 设置为 center ,即可使多个块级元素水平居中。

演示

设置内联元素的行高( line-heigt )和内联元素的父元素的高度( height )相等,且内联元素的字体大小远小于行高,即可使内联元素垂直居中。

演示

通过绝对定位元素距离顶部50%,并设置margin-top向上偏移元素高度的一半,即可实现垂直居中。

演示

借助CSS3中的transform属性向Y轴反向偏移50%的方法实现垂直居中

演示