当我在 parent 上添加相对位置时无法在 child 上添加高度
Unable to add height on child when I add position relative on parent
我想将 height
添加到 child div
但是当我将 position: relative
添加到 parent 时它不起作用。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.parent-box {
position: relative;
background-color: red;
width: 100%;
height: 100%;
padding: 2rem;
top: 0;
left: 0;
}
.child-box {
position: absolute;
width: 100%;
height: 100%;
background-color: green;
top: 0;
left: 0;
}
<div class="parent-box">
<div class="child-box">
<h4>child box</h4>
</div>
</div>
您需要将根元素设置为 body 占据 100% 的高度。
解释:
您的 parent 框的高度为 100%,即 parent - body 的完整高度。 body 没有设置高度,初始高度为auto。因此你的高度是自动的,只占用适合内容和填充所需的space。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
height: 100%;
}
.parent-box {
position: relative;
background-color: red;
width: 100%;
height: 100%;
padding: 2rem;
top: 0;
left: 0;
}
.child-box {
position: absolute;
width: 100%;
height: 100%;
background-color: green;
top: 0;
left: 0;
}
<div class="parent-box">
<div class="child-box">
<h4>child box</h4>
</div>
</div>
这是一个代码更少的改进解决方案:
块元素默认宽度100%,inset可用于child div代替高度和top/left,top和left对相对定位元素没有影响所以将它们从 parent.
中删除
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
height: 100%;
}
.parent-box {
position: relative;
background-color: red;
height: 100%;
padding: 2rem;
}
.child-box {
position: absolute;
background-color: green;
inset: 0;
}
<div class="parent-box">
<div class="child-box">
<h4>child box</h4>
</div>
</div>
我想将 height
添加到 child div
但是当我将 position: relative
添加到 parent 时它不起作用。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.parent-box {
position: relative;
background-color: red;
width: 100%;
height: 100%;
padding: 2rem;
top: 0;
left: 0;
}
.child-box {
position: absolute;
width: 100%;
height: 100%;
background-color: green;
top: 0;
left: 0;
}
<div class="parent-box">
<div class="child-box">
<h4>child box</h4>
</div>
</div>
您需要将根元素设置为 body 占据 100% 的高度。
解释:
您的 parent 框的高度为 100%,即 parent - body 的完整高度。 body 没有设置高度,初始高度为auto。因此你的高度是自动的,只占用适合内容和填充所需的space。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
height: 100%;
}
.parent-box {
position: relative;
background-color: red;
width: 100%;
height: 100%;
padding: 2rem;
top: 0;
left: 0;
}
.child-box {
position: absolute;
width: 100%;
height: 100%;
background-color: green;
top: 0;
left: 0;
}
<div class="parent-box">
<div class="child-box">
<h4>child box</h4>
</div>
</div>
这是一个代码更少的改进解决方案:
块元素默认宽度100%,inset可用于child div代替高度和top/left,top和left对相对定位元素没有影响所以将它们从 parent.
中删除* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
height: 100%;
}
.parent-box {
position: relative;
background-color: red;
height: 100%;
padding: 2rem;
}
.child-box {
position: absolute;
background-color: green;
inset: 0;
}
<div class="parent-box">
<div class="child-box">
<h4>child box</h4>
</div>
</div>