另外一种居中的方法是在使用绝对定位的前提下,用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而让你抓狂不已的发生机率已经不大了。如果有问题,多查查搜索引擎能够解决你大部分的问题。如果,平时闲着的时候,可以作些试验的话,也许更能够在紧急情况下也能够泰然自若。