我的代码是这样的:
HTML:
<div class="1">
<div class="2">
</div>
</div>
CSS:
.1 {height: 20px; width: 20px;}
我正在努力使第2类div 100%
宽度和身高,而不仅仅是父div。有没有办法在不改变父div的大小的情况下做到这一点?
答案 0 :(得分:1)
我建议使用视口百分比单位vh
(视口高度)和vw
(视口宽度):
html,
body {
margin: 0;
padding: 0;
}
.a {
height: 20px;
width: 20px;
border: 1px solid #000;
}
.b {
height: 100vh;
width: 100vw;
border: 1px solid #f00;
}
<div class="a">
<div class="b"></div>
</div>
当然,这有一点需要注意,这是视口的百分比,它不一定与视口本身的高度/宽度相同。
另外,我已经更改了类名,因为在CSS中选择一个类名或id
以数字开头的元素需要正确转义该数字。它可以做到,但这是一个不必要的复杂性。
答案 1 :(得分:0)
你可以这样做,只需将position:absolute
设为儿童,width:100%
height:100%
* {
margin: 0;
padding: 0;
}
.one {
height: 20px;
width: 20px;
background: blueviolet;
}
.two {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: tomato;
z-index: -1;
}
&#13;
<div class="one">
<div class="two"></div>
</div>
&#13;
答案 2 :(得分:0)
假设页面的主体宽度与视口相同,则可以使用vw
和vh
单位,分别等于视口的宽度和视口的高度。除此之外,没有办法使用纯CSS引用无关类的高度。您可以使用JS完成它,如下所示:
document.addEventListener('DOMContentLoaded', function() {
var body = document.getElementsByTagName("body")[0];
var two = document.getElementsByClassName("2")[0];
two.style.height = body.style.height;
}, false);
答案 3 :(得分:-1)
<html>
<body>
<div id="wrap">
<div id="graph-box">
<div class="row">
<div class="GridH">
$(document).ready(function () {
AdjustHeight();
});
function AdjustHeight() {
var WrapH = $("#wrap").height();
if (WrapH === $("#wrap").height()) {
var GridH = "";
GridH = (50* WrapH) / 100;
}
在上面的html代码中,不论图形Div和Row Div,GridH Div的高度设置为Wrap Div的50%,而不是父Div .... 它的作品非常适合我
答案 4 :(得分:-1)
这是另一种解决方案。您可以将position: absolute
提供给子元素:
.b {
border: 1px solid red;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
请注意,没有任何父元素可以添加position: relative
。
就个人而言,我会选择@David Thomas的答案,因为它应该适用于大多数情况。