当前位置:  编程技术>WEB前端

关于居中布局和IE双倍边距bug

    来源: 互联网  发布时间:2014-09-06

    本文导语:  今天google了一下css居中布局的问题,结果差不多都是引用了同一篇文章。在ie中要居中,只要在元素中定义text-align:center;的属性。而在firefox中,需要定义一个wrapper包裹器。然后指定margin-left:auto;margin-right:auto;的属性来使区块在...

今天google了一下css居中布局的问题,结果差不多都是引用了同一篇文章。在ie中要居中,只要在元素中定义text-align:center;的属性。而在firefox中,需要定义一个wrapper包裹器。然后指定margin-left:auto;margin-right:auto;的属性来使区块在firefox中居中。其实,我自己都是用margin:auto;的缩写margin属性来设定居中。margin缩写属性是上、右、下、左的顺时针顺序来设定四个方位的页面边距的。需要注意的是,如果你据此以为只要设定margin-top:auto;属性后就想使区块居中的话,那你就错了。用这种方式的时候,非得同时设定margin-left:auto;margin-right:auto;属性才能居中。但是,你设定margin:0 auto;这样的方法也是可以居中的。
另外一种居中的方法是在使用绝对定位的前提下,用left:50%+margin-left:-375px;的组合方式来居中。两种居中方式如下。
代码如下:

/* 方法一 */
body {
    background: #00FF7F;
    text-align: center; /* hack for ie center alignlayout */
}
#wrapper{
    background: Aqua;
    width: 750px;
    margin:auto; /* 或者 margin-left:auto;margin-right:auto;*/
}
/* 方法二 */
#wrapper2 {
    position: absolute;
    width:750px;
    left:50%;
    margin-left:-375px;
    background: Orange;
}


我个人一直使用方法一的方式来居中,因为感觉方法二的区块缺乏必要的刚性,代码也不太好理解。如果你缩小方法二的窗体到一定限度,就会看到整个布局会出现流动的情况。当然有人要的就是这种效果。:),另外方法二的一个好处是在其他嵌套区块中不必覆盖body元素的text-align: center;的设定,因为大部分文本还是会以左对齐居多。这样一定程度上可以减少一点冗余。不过我觉得这个好处可以忽略不计。总之,大家根据各自喜好各取所需便是。

另外一个是ie的双倍边距的bug,解决方法就是加上display:inline;的设定即可。其实这个解析错误的bug会影响很多方面。如果你遇到css布局在ie中间距表现异常的时候,就可以试试看加上display:inline;的属性申明了。而且在一定特定的布局问题问题,需要组合使用display:block;和display:inline;才能让布局如你所愿。我在一个unorder list控制的图片菜单中就遇到过类似的问题。

尽快各种不同的浏览器都有css bug,但是css页面布局方式发展到今天,已经比较成熟了,因为bug而让你抓狂不已的发生机率已经不大了。如果有问题,多查查搜索引擎能够解决你大部分的问题。如果,平时闲着的时候,可以作些试验的话,也许更能够在紧急情况下也能够泰然自若。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • 图片垂直居中之姊妹 DIV垂直居中
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • JQuery实现元素屏幕居中显示的代码
  • 用css实现图片垂直居中的使用技巧
  • 在IE与FF中如何居中的css写法
  • 请问在网页中打开的新窗口,如何让其居中。
  • 怎么让JFrame居中显示???
  • jquery实现弹出层完美居中效果
  • 未知大小图片在容器的垂直和水平居中问题
  • 各位老大,让我的JFrame在屏幕上居中,应用哪个方法?!小弟感激不尽!
  • ○ ● -- 如何将窗口居中?(Qt) -- ● ○
  • 如何让JFrame居中!
  • oracle iis7站长之家
  • CSS如何使DIV层居中
  • 任何使窗口居中显示。
  • 如何使JTextField中输入的文字居中显示
  • <font color=blue>让2个DIV居中并排显示
  • css支持标准的图片垂直居中
  • DIV 居中的绝好解决方法
  • 纯CSS实现上下左右都居中的代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3