这个方法是大家用的最多的方法,使用的时候必须为容器制定宽度!
例子:
#main {width:960pxmargin:0 auto}
这个在大部分浏览器里面都可以很好的实现效果。
但是在IE6之前的版本中却不被支持,下面看一下第二种方法
2. 用text-align实现居中,这个方法其实算是一个hack。
这个方法把整个页面当作文本对待,把body的属性设置为{text-align:center}
这样的话页面所有内容全部居中了,还需要把页面总的外框(wrap)属性{text-align:left}
这样的话页面就居中了!
代码:
body{text-align:center}
wrap {text-align:left}
3.负的外边距
负外边距需要和绝对定位同时使用,才会生效。
首先需要一个{wrap}来包裹所有的页面内容,并将其定位到页面的50%。这样{warp}容器据浏览器左边50%的距离。
然后再用负边距,将容器左边距设置为{wrap}宽度的一半即可。
看代码:
#wrap {width:800pxposition:absoluteleft:50%margin:0 0 0 -400px}
这样wrap就居中对齐了,这个方法基本上可以兼容所有的浏览器了。
在ie7界面居中css样式定义如下:body {TEXT-ALIGN: center}
#center { MARGIN-RIGHT: autoMARGIN-LEFT: auto}
说明:
首先在父级元素定义TEXT-ALIGN: center这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: autoMARGIN-LEFT: auto”
如果想用这个方法使整个页面要居中,不要套在一个DIV里,可以依次拆出多个div,只要在每个拆出的div里定义MARGIN-RIGHT: autoMARGIN-LEFT: auto就可以了。
如何使图片在DIV中垂直居中,用背景的方法。举例:
body{BACKGROUND: url(http://www.w3cn.org/style/001/logo_w3cn_194x79.gif) #FFF no-repeat center}
关键就是最后的center,这个参数定义图片的位置。还可以写成“top left”(左上角)或者"bottom right"等,也可以直接写数值"50 30"
效果如下:
如何使文本在DIV中垂直居中;
如果是文字,便不能用背景方法,可以用增高行距的办法变通实现垂直居中,完整代码如下:
<html>
<head>
<style>
body{TEXT-ALIGN: center}
#center{ MARGIN-RIGHT: auto
MARGIN-LEFT: auto
height:200px
background:#F00
width:400px
vertical-align:middle
line-height:200px
}
</style>
</head>
<body>
<div id="center"><p>test content</p></div>
</body>
</html>
说明:
vertical-align:middle表示行内垂直居中,将行距增加到和整个DIV一样高line-height:200px然后插入文字,就垂直居中了。
楼主,你应该先写center,后写top才是CSS标准background:url({IMGDIR}/xxx.jpg) no-repeat center top
======================================================
我说错了,楼主的代码是正确的
你查看下你链接的图片是不是有多余的白边
再看你是否设置了左侧的margin,试着改为padding
======================================================
还有,楼主你是对什么标记应用的这段CSS?
有些标记的margin和padding在IE和标准浏览器上的默认值是不一样的哦
不排除使用CSS hack的可能性