gpt4 book ai didi

CSS grid-template-rows 悬停时自动将滚动位置重置为底部

转载 作者:行者123 更新时间:2023-11-28 11:27:29 25 4
gpt4 key购买 nike

每当您将鼠标悬停在具有 overflowauto heightgrid-template-rows 部分中的任何元素上时,是否会出现预期行为> 将 scroll 位置移动到溢出容器的底部(在本例中为 body)?

最明显的滚动中断效果是当您在 2 个 li 元素之间画圈并尝试向上或向下滚动片段 #1 时。

当我在 li 上删除 :hover 时,滚动不会中断。

.container{
display: grid;
grid-template-rows: 10vh auto 8vh;
width: 400px;
height: 300px;
background: rgba(0,0,0.2);
}

.header{
background: lightblue;
}

.body{
background: white;
overflow: auto;
}

.footer{
background: lightgreen;
}

li{
height: 30px;
background: rgba(0,0,0,.5);
opacity: 1;
}
li:nth-child(even){
background: rgba(0,0,0,.2);
}

li:hover{
opacity: .1;
}
<div class="container">
<div class="header">header</div>
<div class="body">body
<ul>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
</ul>
</div>
<div class="footer">footer</div>
</div>

另一方面,如果您将中间值硬编码为 40vh 而不是 auto,则滚动会按预期工作。

.container{
display: grid;
grid-template-rows: 10vh 40vh 8vh;
width: 400px;
height: 300px;
background: rgba(0,0,0.2);
}

.header{
background: lightblue;
}

.body{
background: white;
overflow: auto;
}

.footer{
background: lightgreen;
}

li{
height: 30px;
background: rgba(0,0,0,.5);
opacity: 1;
}
li:nth-child(even){
background: rgba(0,0,0,.2);
}

li:hover{
opacity: .1;
}
<div class="container">
<div class="header">header</div>
<div class="body">body
<ul>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
<li>foo</li>
</ul>
</div>
<div class="footer">footer</div>
</div>

最佳答案

grid-template-* 属性 ( example ) 上使用 auto 值时,我注意到 CSS Grid 中的一些奇怪行为。一直对我有用的是从 auto 切换到 1fr

关于CSS grid-template-rows 悬停时自动将滚动位置重置为底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44201372/

25 4 0