作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 CSS 网格元素的高度方面遇到了问题。我使用的代码是:
.gridContainer {
border: thin solid black;
background: rgba(255, 0, 0, 0.5);
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr;
width: 100px;
height: 100px;
grid-template-areas: 'windowContentHolder';
}
.gridItem {
grid-area: windowContentHolder;
background: rgba(255, 255, 0, 0.5);
width: 200%;
height: 200%;
}
.content {
background: rgba(255, 0, 0, 0.5);
}
<div class="gridContainer">
<div class="gridItem">
<div class="content">hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>
</div>
</div>
</div>
如您所见,gridItem
设置为 height:200%
并且预期结果与预期不符。它应该是父级 (100px
) 的两倍高 (200px
),任何额外的高度都被滚动条隐藏了,尽管 height 属性似乎没有完全可以设置。
百分比似乎是在考虑子元素高度而不是父元素高度,因为如果我们仔细检查元素,我们会发现它的高度是子元素高度的两倍。
带有“hi”的元素没有像预期的那样溢出。将 gridContainer
更改为 'block' 确实按预期工作,但不适用于 'grid':
.gridContainer {
border: thin solid black;
background: rgba(255, 0, 0, 0.5);
display: block;
width: 100px;
height: 100px;
}
.gridItem {
grid-area: windowContentHolder;
background: rgba(255, 255, 0, 0.5);
width: 200%;
height: 200%;
overflow: auto;
}
.content {
background: rgba(255, 0, 0, 0.5);
}
<div class="gridContainer">
<div class="gridItem">
<div class="content">hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>
</div>
</div>
</div>
最佳答案
网格容器的高度固定为100px。
网格项的高度设置为 200%。
网格项存在于 inside tracks,它存在于inside container。
您可以将网格项视为存在于容器下方两层。
换句话说,网格项的父项是轨道,而不是容器。
由于您的行高既不是固定的也不是真正的长度单位——它被设置为 1fr
——网格元素的百分比高度失败并且可以根据需要自由扩展行(height : 自动
).
无论您在容器上设置什么固定高度,也请在行上设置它。
.gridContainer {
border: thin solid black;
background: rgba(255, 0, 0, 0.5);
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 100px; /* adjustment; value was 1fr */
width: 100px;
height: 100px;
grid-template-areas: 'windowContentHolder';
}
.gridItem {
grid-area: windowContentHolder;
background: rgba(255, 255, 0, 0.5);
width: 200%;
height: 200%;
overflow: auto;
}
.content {
background: rgba(255, 0, 0, 0.5);
}
<div class="gridContainer">
<div class="gridItem">
<div class="content">hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>hi<br/>
</div>
</div>
</div>
关于html - 为什么我的网格元素的高度计算不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51962136/
我想知道是否可以创建一种高度计/计数器显示,当您滚动时动态改变计数器。 例如,当您位于页面顶部时,它显示 10 000,当您向下滚动时,它会减少,直到当您滚动到页面底部时,它会显示为 0。 它应该根据
我是一名优秀的程序员,十分优秀!