核心思路是,通过设置top和Left居中,然后再用负的margin,实现DIV中心居中。
这段代码兼容性很好,代码简单,没用Tabel,也没用JS。
不过总觉得现在CSS的系统设计上还有很多不合理的地方,简单页面设计用一下也可,但复杂的页面设计完全用CSS几乎不可能,而且标准化设计所推崇的表现和内容分离现阶段根本实现不了,往往为了实现表现上的设计还要去修改HTML文件;CSS只能作为补充,不可能取代。
进一步的解释:
1)首先通过设置left和top都为50%,这时div的左上角应该在显示区域的中心
top: 50%; left: 50%;
2)然后根据div的宽和高,分别做1/2的偏移,这是通过margin来实现,实际使用中不一定1/2,你可以根据特殊需要调整.
margin: -200px auto auto -275px;
height: 400px; width: 550px;
3)div必须有确定的宽和高,只有这样才能计算出margin.
code:
< ! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head >
< meta http-equiv = " Content-Type " content = " text/html; charset=gb2312 " />
< title > 盒模型 < div > 布局(W3C推荐)居中 title >
< style type = " text/css " >
body {
margin: 0;
padding: 0;
}
div {
margin: -200px auto auto -275px;
position: absolute;
top: 50%;
left: 50%;
width: 550px;
height: 400px;
background: #f60;
text-align: center;
line-height: 400px;
}
style >
head >
< body >
< div > 盒模型 < div > 布局(W3C推荐)居中 div >
body >
html >