2010-04-14 106 views
4

我使用了一个内部有2个元素的div,我想将我的第一个元素放置在垂直对齐顶部和第二个元素的div底部。该div是我的页面的正确部分,并等于我的主要内容的高度。CSS div里面的定位

#right { 
    float:right; 
    width: 19%; 
    background:#FF3300; 
    margin-left:2px; 
    padding-bottom: 100%; 
    margin-bottom: -100%; 
} 
#right .top { 
    display:block; 
    background-color:#CCCCCC; 
} 
#right .bottom {  
    bottom:0px; 
    display:block; 
    background-color:#FFCCFF; 
    height:60px; 
} 

HTML:

<div id="right"> 
    <span class="top">Top element</span> 
    <span class="bottom"><img src="images/logo_footer1.gif" width="57" height="57" align="left" class="img">&nbsp;<img src="images/logo_footer2.gif" width="57" height="57" align="right" class="img"></span> 
</div> 

我想正确的股利是这样的: alt text http://christianruado.comuf.com/element.png

+0

您可能还想尝试将其检出/发布到http://doctype.com/ – 2010-04-14 08:55:41

回答

0

#right {position:relative}

#right .top {position:absolute, top:0}

#right .bottom {position:absolute, bottom:0}

7

如果您为#right指定position: relative,然后为两个内部元素指定position: absolute,则应该可以使用top/left/bottom/right属性来实现所需的效果。

+0

问题是正确的容器位于包装内部,并且溢出设置为隐藏。因此当容器溢出到包装物时,右侧容器的底部会被隐藏起来。 – christian 2010-04-14 09:10:45

0

试试这个。

#right { 
     position:relative; <-- add this 
     float:right; 
     width: 19%; 
     background:#FF3300; 
     margin-left:2px; 
     padding-bottom: 100%; 
     margin-bottom: -100%; 

    } 

} 
#right .top { 
    position:absolute; <-- add this 
    top: 0px; <-- and this 
    display:block; 
    background-color:#CCCCCC; 
} 

    #right .bottom { 
      position:absolute: <-- add this. 
     bottom:0px; 
     display:block; 
     background-color:#FFCCFF; 
     height:60px; 

    } 

添加position:relative;父和position:absolute;topbottom会告诉你的跨度,他们注定要被你的父母之内绝对定位,并强迫他们坚持你的div的顶部和底部。

+0

问题是正确的容器位于包装内部,并且溢出设置为隐藏。因此当容器溢出到包装物时,右侧容器的底部会被隐藏起来。 – christian 2010-04-14 08:59:48

+0

啊,那肯定会造成一些问题。希望它现在适合你:) – Kyle 2010-04-14 09:09:49