【发布时间】:2025-12-27 03:25:12
【问题描述】:
我正在尝试创建一个布局,其中左侧有标签,顶部有标题,应该始终处于固定位置。在右边我有一些输入元素。如果输入元素溢出,则应该只有输入元素的水平和垂直滚动条(左侧标签和标题应保持不变)。出于其他一些原因,我只想使用带有 CSS 网格的解决方案。我试图让标题和左标签元素具有粘性,它有点工作,但我觉得有更优雅的解决方案。我在每个元素上显式设置了 grid-column 和 grid-row,然后将我的内容部分(我希望它是可滚动的)包装在一个跨越多行和多列的 div 中。现在,我怎样才能使这部分可滚动?我尝试在父/子元素上设置显式宽度/高度,我尝试过溢出:自动但没有任何效果。
HTML
<div class="root">
<div class="header">
Header
</div>
<label class="l1">leg1</label>
<label class="l2">leg2</label>
<label class="label1">Label1</label>
<label class="label11">Label11</label>
<label class="label2">Label2</label>
<div class="content">
<input class="input1" value="test1"/>
<input class="input2" value="test2"/>
<input class="input3" value="test3"/>
</div>
</div>
CSS
.root{
display:grid;
grid-template-columns: max-content max-content max-content;
}
.header{
grid-column: 1 / span 3;
background: blue;
}
div input{
height:50px;
}
.content{
grid-column: 3;
grid-row: 2 / span 3;
display: grid;
}
.l1{
grid-column: 1;
grid-row: 2 / span 2;
background: yellow;
}
.l2{
grid-column: 1;
grid-row: 4;
background: green;
}
.label1{
grid-column: 2;
grid-row: 2;
background: teal;
}
.label11{
grid-column: 2;
grid-row: 3;
background: pink;
}
.label2{
grid-column: 2;
grid-row: 4;
background: red;
}
.input1{
}
.input2{
}
小提琴:
https://jsfiddle.net/kzu0gf4x/3/ -test1/test2/test3 在溢出时应该是可滚动的,所以如果我向下滚动我应该会看到标题,滚动条应该只在 div 上 class="content"
【问题讨论】:
-
你看到我的解决方案了吗?