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%的方法实现垂直居中
演示