仅溢出 DIV 中的一个元素

overflow just one element in a DIV

本文关键字:一个 元素 溢出 DIV      更新时间:2023-09-26

有没有办法,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;
}

不过,我需要图像自然溢出。

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

jsFiddle 演示
解释性文章

#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>

jQuery Example

$('.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. 将文本宽度
  3. 设置为等于容器宽度只会使其具有应用溢出的外观(您也可以将文本div的宽度设置为500px)

在 CSS 中声明 z-index,您可以使用 position absolute 来执行此操作。

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

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

您无法使用position: static设置图像弹出框

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