提问者:小点点

使DIV具有100%的父DIV而不知道父DIV的高度并保持其响应[重复]


我有这样的代码:

<body>
<div class="parent">
<div class="children">
Some content here
</div>
</div>
</body>

这个CSS:

body {width:100%;height:100%}
.parent{background-color: grey;}
.children{width: 90%; text-align: justify;}

我想使子项的高度等于父项的宽度。不幸的是,我不知道为什么。我试着上网,尝试了不同的解决方案,比如children{width:90%;text-align:justify;height:100%;},但它们不起作用。我知道我可以用table代替第二个div,但是这个网站在较小的设备上不会有响应,这对我来说非常重要。有什么建议吗?


共2个答案

匿名用户

在直CSS中,没有办法引用另一个元素属性值。为了让子节点的高度与父节点的宽度相等,你需要使用javascript。

页面渲染完成后,需要使用javascript获取父div的宽度,并使用该值设置子div的高度。

匿名用户

您可以在CSS 3中使用视口单位执行此操作(每个vw为视口宽度的1%):

#parent {
    position: relative;
    background: #aaa;
    margin: 10px;
    width: 50%;
}

#child1 {
    height: 100px;
    background: #333;
    width: 100px;
    margin: 10px;
}
#child2 {

    height: 50vw;
    width: 100%;
    background: #f00;
}
}
<div id="parent">
    <div id="child1"></div>
    <div id="child2"></div>
</div>