只溢出DIV中的一个元素

时间:2012-04-17 14:17:48

标签: javascript jquery css overflow

是否有一种方法,CSS或JavaScript允许DIV中的一个元素溢出,即使其父级溢出被隐藏。

我编写了一个jQuery滑块,可以使用overflow: hidden隐藏幻灯片。

<div class="container">
   <img src="image.jpg" />
   <div class="text">
      THIS TEXT IS HIDDEN WHEN POSITIONED OUTSIDE OF .container
   </div>
</div>

CSS:

.container{
    overflow:hidden;
    position: relative;
    width: 500px; height: 250px;
}

我需要图像自然溢出。

4 个答案:

答案 0 :(得分:8)

您应该删除position: relative;。如果将它放在与overflow: hidden;相同的元素上,它将隐藏元素。如果您确实需要它,请尝试将其放在.container的父级上(树中的位置高于具有overflow: hidden的元素)。

jsFiddle Demo
Explanatory article

#wrap { position: relative; }

.container{
    overflow:hidden;
    width: 300px; height: 200px;
    padding: 10px;
    background-color: cyan;
}

.text {
    position: absolute;
    top: 280px; left: 0;
    border: 1px solid red;
}
<div id="wrap">
  <div class="container">
    Container
    <div class="text">Not hidden anymore when positioned outside of .container</div>
  </div>
</div>

答案 1 :(得分:0)

jQuery示例

$('.text').each(function(){
   var t = $(this);                   // text div
   var c = t.closest('.container');   // container parent 
   var i = c.children('img:first');   // container image
   t.width(c.width());                // set text width = to container width
   c.width(i.width());                // set container width = to text width
});

注意:

  1. 这不会影响填充/边距/边框,但是您可以使用的基本逻辑。
  2. 将文本宽度设置为等于容器宽度只会使其具有应用溢出的外观(您也可以将text-div的宽度设置为500px)

答案 2 :(得分:0)

在css中声明z-index,你可以使用position绝对来做到这一点。

.container{
   z-index:900;
   overflow:hidden;
   width: 500px; 
   height: 250px;
 }

 .container img{
   z-index:920;
   position:absolute;
 }

如果图像的位置不正确,您可以为图像设置边距;

答案 3 :(得分:0)

您无法使用to_exclude设置图片弹出框

position: static