13

我在 ul li 中有一个包含文本和图像以及文本详细信息的 div,下面是 html 结构。我已将溢出隐藏应用到 .sbox 类,但它似乎不起作用,并且文本详细信息似乎没有被隐藏和溢出。

JSFiddle - http://jsfiddle.net/SAN6n/

HTML

<div id="content" class="contentList">
  <ul id="slist" class="storyList">    
    <li>
     <div id="storyBox1" class="sbox"> 
        <div class="boxContent" >
            <span class="overlay"><h5>Picture1 </h5></span>
            <div class="txtOverlay"><h3>This is spring and weather looks good ...</h3</div>
            <span><img src="http://img13.imageshack.us/img13/38/picture11tp.jpg"/></span>
         </div>
      </div>
     </li>    
    </ul>
</div>​

CSS

.storyList {
  width:100%;
  height:100%;   
}


.sbox {
float:left;
width:300px;
height:150px;
padding: 5px 7px 8px 5px;
margin-top:20px;
margin-right:40px;

background:white;
border:1px solid #DDD;

<!--border radius-->
-webkit-border-radius: 3px;
-moz-border-radius: 2px;
border-radius: 3px;

overflow: hidden;

}

.boxContent {

width:100%;
height:100%;
border: 1px solid #777;
}

.storyList li {
list-style:none;
}

.overlay {

float:left;
opacity: .7;
background: #000;  
height: 40px;  
width: 300px; 
position: absolute;    
}


h5{
float:left;
margin-top:0px;
padding:0 0 0 5px;
font-family: Tahoma;
letter-spacing: 0.5px;
font-size:30px;
color: white; 

}


.txtOverlay {
opacity: .7;
background: #000;  
height: 110px;  
width: 300px; 
position: absolute;        
margin-top:150px;
z-index:1;
font-weight:bold;
float:left;
font-family: OpenSansRegular;
letter-spacing: 0.5px;
font-size:10px;
color: white;

}​
4

4 回答 4

24

演示

我想这就是你需要的吗?任何时候,当你有two div's另一个时insidefirstdiv 需要设置为relative并且otherdiv 需要设置为absolute位置。

于 2012-04-14T15:40:23.920 回答
9

这是因为您使用的是绝对位置。您不能在溢出隐藏的情况下使用绝对位置,因为绝对位置会将目标元素移出文档结构的上下文。

于 2012-04-14T15:35:25.120 回答
2

实际上它正在工作,您提供的填充和它所具有的内容,它使它无法应用overflow:hidden;

请参阅此演示以了解我的观点,我降低了高度,并且overflow:hidden正在工作。

于 2012-04-14T15:41:39.863 回答
1

当你给你的元素一个绝对位置时 - 它也可以放在 div 的边界之外 - 因此 - 隐藏的溢出不应该影响它

于 2012-04-14T15:36:30.320 回答