网络编程
位置:首页>> 网络编程>> 网页设计>> 使用CSS简单实现垂直居中(2)

使用CSS简单实现垂直居中(2)

作者:dudo 来源:dudo blog 发布时间:2008-06-23 07:32:00 

标签:居中,css,浮动

修正后的方法

面对这些问题,一个类似居中技术可以供我们采用,它依然采用了对于顶部的绝对定位,但是对于水平居中使用的是自由浮动。这会限制元素从窗口的左侧滑出。
下面是修正后的代码:

html,body{   
    height:100%;   
  margin:0;   
 padding:0;   
}   
body{   
  background:#eae7d7 url(images/vert-centre.jpg) repeat-x center center;   
    text-align:center;   
    min-width:626px;   
  min-height:400px;   
}   
#vertical{   
  position:absolute;   
    top:50%;   
  margin-top:-198px;/* half main elements height*/  
  left:0;   
   width:100%;   
}   
#hoz {   
    width:624px;   
  margin-left:auto;   
 margin-right:auto;   
    height:394px;   
 border:1px solid silver;   
  background:#666;   
  overflow:auto;/* allow content to scroll inside element */  
    text-align:left;   
}   
h1 {color:#fff;margin:0;padding:0}  
<div id="vertical">  
 <div id="hoz">  
      <h1>Content goes here</h1>  
    </div>  
</div>  

可以在这里查看在线演示Horizontal-and-vertical-centerl.htm (1.01 KB)

水平方向上已经达到我们所要的效果,但是当窗口高度缩小时顶部依然会消失,如图3所示:

图3

修正:

为了解决这个问题(也是本文写作的目的)我之前曾经使用过几个比较复杂的方法,但是现在使用的这种方法更简单、更健壮,那就是使用浮动(float)来代替绝对定位。

页面中设置为顶端50%绝对定位的第一个元素进行浮动。然后把浮动向上拉动,大小为元素高度的一半。

下面是必要的修改:


#vertical{   
    float:left;   
   height:50%;   
   margin-top:-198px;/* half vertical height*/  
   width:100%;   

<div id="vertical"></div>  
<div id="hoz">  
   <h1>Content goes here</h1>  
</div>  

这里有一个在线演示Horizontal-and-vertical-centerl.htm (1.00 KB)你可以自己观察一下。

图4

重要的是我们对浮动元素设置的宽度是100%,并且记住由于某些浏览器会出现问题我们需要对后面的元素设置clear:both。如果我们不使用“float”,元素依然会居中但是它会从顶端消失掉。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com