html - 如何通过相对定位将div层叠在一起

标签 html css

我需要将两个透明的 div 放在彼此之上,然后仅使用 CSS 根据百分比值将它们相互垂直移动。如果百分比值为 20%,我希望它看起来像这样:

example

在此示例中,div 为 100x100px,父 div 仅具有 10px 的左右填充,这导致垂直位置有 20% 的差异。代码如下所示:

<div class="parent" style="padding: 0 10px;">
    <div class="child left"></div>
    <div class="child right"></div>
</div>

.parent {
    position: relative;
    display: inline-block;
    border: 1px solid black;
    min-width: 100px;
    height: 100px;
}

.child {
    position: absolute;
    top: 0;
    width: 100px;
    height: 100px;
    opacity: 0.5;
}

.child.left {
    left: 0;
    background-color: red;
}

.child.right {
    right: 0;
    background-color: green;
}

但是我实际上并不知道我的 CSS 生产版本中的 div 的大小,这就是为什么我需要能够使用相对百分比值而不是像素来分隔它们。

这是示例的一个 fiddle ,一个失败了:

http://jsfiddle.net/rva18302/

我可以以任何方式更改标记,唯一的要求是根 div 动态调整自身大小以适应子 div,并且子 div 保持相同的纵横比(正方形)。

最佳答案

它有效,但它显然与您的页面相关,因为百分比是一个可变值,而像素是一个固定值。您不能将 10px 假设为 10% 并相信它会起作用。

以你的例子为例,我已经改变了百分比值并且它起作用了。

DEMO

代码更改:

<div class="parent" style="padding: 0 1.5%;">

希望这对您有所帮助。

关于html - 如何通过相对定位将div层叠在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28940665/

相关文章:

javascript - 我想使用 ChartJs 的多个数据工具提示

javascript - 是否可以避免通过输入在 URL 中添加?#?

html - 为什么在 HTML 中将 div 居中如此困难?

javascript - 使用 JavaScript 更改 DIV 背景图像不起作用

仅 CSS : How can I center fixed width div between two divs that fill the remaining space?

html - 移动菜单按钮内的条形图不会出现在垂直中心

parsing - 使用 Simple HTML DOM Parser 查找堆叠的 div 类

javascript - 使用回车键和 "Submit"按钮输入密码 (HTML/Javascript)

html - 如何根据高度或最大元素在列中显示元素?

使用和不使用 iframe 时,HTML div 高度不同