将一个div覆盖在另一个div上,但不知道div的大小

我试图把一个div放在另一个div上。 如果您知道div的尺寸,这非常简单。

解决这里:如何覆盖一个div在另一个div

所以,这里是我的HTML:

<div class="container">
  <div class="overlay"></div>
  <div class="content"></div>
</div>

就我而言,我不知道“内容”或“容器”div的确切尺寸。 这是因为我无法控制div中的任何内容(我们正在使我们的应用程序可扩展到第三方开发人员)。

在jsFiddle上查看我的示例覆盖应该完全覆盖内容。 宽度100%和高度100%。 然而,这不起作用,因为在我的例子中,我绝对定位了覆盖。

一种解决方案是使用JavaScript来获取内容div的大小,然后设置叠加层的大小。 我不太喜欢这个解决方案,因为如果图像大小没有指定,你需要等到图像加载并重新计算div的大小。

有什么方法可以解决CSS中的这个问题吗?


您可以将位置设置为绝对值,然后将所有4个定位值设置为0px ,这将使该框扩展。 在这里看到一个演示:http://jsfiddle.net/6g6dy/

这样,如果你想在覆盖层或容器上填充(如果你使用实际的heightwidth值),你不必担心重新计算的东西,因为它总是要调整到盒子的外部尺寸。


这是不可能的,因为:

  • 覆盖不包含任何限制它的大小(因为没有应用于容器的高度/宽度)。
  • content div的大小可以随着内容的加载而改变(因为它没有固定的宽度/高度)。
  • 我通过使用JavaScript *解决了这个问题。 例如。

    function resizeOverlay() {
      $('.overlay').css({
        width: $('.content').width()
        height: $('.content').height()
      });
    }
    $('.content').find('img').on('load', resizeOverlay);
    

    *代码未经测试。


    嘿,你是这样看待:http://tinkerbin.com/Vc4RkGgQ

    CSS

    .container {
    position:relative;
    background:blue;
      color:white;
    }
    
    .content {
    position:absolute;
    top:0;
    left:15px;
    background:red;
    color:yellow;
    }
    
    链接地址: http://www.djcxy.com/p/75857.html

    上一篇: Overlaying one div over another, but not knowing the size of the div

    下一篇: jquery css overlay div over another div?