【发布时间】:2021-09-28 17:18:40
【问题描述】:
我需要制作一个适用于不同屏幕尺寸的数据网格。一种常见的方法是使用overflow-x: auto 将网格元素包装在一个div 中。
https://codepen.io/adsfdsfhdsafkhdsafjkdhafskjds/pen/eYWEoya
<div class='page'>
<h1>Heading</h1>
<div class="grid">
<div class="grid-inner">
<div>Heading1</div>
<div>Heading2</div>
<div>Heading3</div>
<div>Heading4</div>
<div>Here is come content 1</div>
<div>Here is come content 2</div>
<div>Here is come content 3</div>
<div>Here is come content 4</div>
</div>
</div>
</div>
.page {
background: grey;
margin: auto;
max-width: 200px;
}
.grid {
overflow-x: auto;
}
.grid-inner {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
.grid-inner div {
padding: 20px;
}
从技术上讲,这是可行的,但我有一个 UX 问题。在 Chrome 上,滚动条最初是不可见的,因此用户可能不知道有他们看不到的可滚动内容:
在桌面 Chrome 上滚动的唯一方法是单击内容并向右拖动。此时滚动条出现,尽管内容也被突出显示,这并不理想:
当内容比它的overflow: auto 容器宽并因此可以滚动时,是否可以使滚动条永久可见?或者在这种情况下是否有一种完全不同的常见方法?
【问题讨论】:
-
我们说的是移动设备上的 Chrome,对吧?因为在桌面上,滚动条总是可见的。在这种情况下,stackoverflow.com/questions/22907777/… 可能会起作用!
-
@ConstantinGroß 我不谈论桌面 Chrome。第一个屏幕截图(没有滚动条)是在我运行桌面 Chrome v91 的 MacBook 上拍摄的。
-
哦,好的,那么这取决于操作系统,很有趣!显然,我链接的解决方案也不适用于 iOS 设备... =/
标签: css google-chrome responsive-design user-experience