html - CSS:删除滚动创建的填充
问题描述
我正在尝试构建一个类似于 Apple Mail 的 UI,当左侧栏有水平的电子邮件列表时,您可以滚动浏览。问题是当我添加滚动时,它会创建一个额外的填充而不是在内容之上呈现。
<!doctype html>
<html style="height: 100%;">
<head>
<style>
.scrollable-list-item {
padding: 1rem;
border-bottom: 1px solid #cdcdcd;
}
.scrollable-list-item-active {
background-color: #0069d9;
color: white;
}
</style>
</head>
<body style="height: 100%; width: 100%; margin: 0">
<div style="height: 100%; width: 100%; display: flex;">
<div style="width: 200px; height: 100%; overflow-x: scroll; background-color: #efefef;">
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item scrollable-list-item-active">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
</div>
<div>content</div>
</div>
</body>
</html>
没有滚动:
使用滚动:
添加滚动而不在其周围添加空白区域的正确方法是什么?谢谢!
解决方案
您可以应用scrollbar-width: none
到容器 div。
这将完全隐藏滚动条。您将能够滚动。
尽管浏览器对此属性的支持是相当新的。
你可以在这里阅读
如果没有自定义库,则无法实现所需的行为
<!doctype html>
<html style="height: 100%;">
<head>
<style>
.container {
scrollbar-width: none;
-ms-overflow-style: none;
}
.scrollable-list-item {
padding: 1rem;
border-bottom: 1px solid #cdcdcd;
}
.scrollable-list-item-active {
background-color: #0069d9;
color: white;
}
</style>
</head>
<body style="height: 100%; width: 100%; margin: 0">
<div style="height: 100%; width: 100%; display: flex;">
<div class="container"style="width: 200px; height: 100%; overflow-x: scroll; background-color: #efefef;">
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item scrollable-list-item-active">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
</div>
<div>content</div>
</div>
</body>
</html>
推荐阅读
- tfs - TFS 开发运维。找不到外部项目文件
- android - 一个文本视图,字符串最多再换行
- php - Amazon Connect 从 Lambda 函数和 PHP 接收 JSON 数据
- ios - 此 ActionScript 函数的 Swift 等效项
- c - getchar() 尝试扫描输入时跳过第一个字符
- objective-c - Mojave/macOS 10.14.0:[AVPlayerItem 持续时间] 始终是不确定的
- rest - 如何使用 Golang 实现导入数据功能?
- redis - 如何使用 JEDISCLUSTER 客户端搜索 Redis 中的键空间?
- c++ - 为什么显式模板实例化不会破坏 ODR?
- sql-server - 我该怎么做 1 单击执行此 T-SQL