浮动元素的水平居中

对于页面上的块级元素,只须定宽及设置margin:0 auto;即可在水平上居中,但对于浮动的元素水平居中是无效的,一个典型的应用就是页面的分页效果了,看如下图:

这种分页效果,在以往可能会采取设置inline-block,然后父容器设置text-align:center方式来实现内容居中,像如下代码:

提示:你可以先修改部分代码再运行。


这种设置inline-block的缺点是,元素需要设置vertical-align:middle,并且ie下不能完美对齐,以及元素间有空白符等。。
所以可以考虑用float方式代替inline-block,优点是float的元素盒模型好控制 ,无空白符等等。
代码如下:

提示:你可以先修改部分代码再运行。

这里主要用到position:relative配合left:50%的技巧,兼容各浏览器,需要注意的是IE7下需要设置overflow:hidden;来解决无法设置子元素宽度的BUG。

这里也可以多套一层的方式设置left:-50%,更合理,也可以避免一些不必要的IE BUG,如下代码:

提示:你可以先修改部分代码再运行。

举一反三,这种float元素居中的方式其实可以延展应用到很多需要浮动元素又居中的情况。

共10条评论

  1. 空隙可以用letter-spacing:-3px; font-size:0;来实现

  2. 不错。原来你去了淘宝……

    • 呵,是啊~~

  3. 博客确实需要一种态度 风格

  4. 兄弟你的runcode插件在wp3.0下可以使用啊?我的好像不能用了!能指点一下我吗?

  5. display:inline-block;a标签之间有空隙是由于a标签换行造成的,可以使用在a标签的父级元素设置font-size:0;针对chrome浏览器最小字体12px可以使用-webkit-text-size-adjust:none;来解决,这个布局就是结构特别简单!本人一般使用这个!

    • 设置font-size:0确实可以,但ie下还是一像素左右的距离,在不太要求精度的情况下,是个不错的解决方案,另外inline-block在控制对齐的时候确实麻烦,不如float来得精准。

      • 确实inline-block在控制对齐的时候是很恶心的!

  6. nihaile

  7. 发本文的链接给朋友 朋友电脑有金山毒霸。金山毒霸那2B说崇志的网站是冒充腾讯的钓鱼网站…我表示金山坑爹呢!

发表评论

>>
后台管理 工具库 RSS 微博 简历