CSS 滚动捕获 scroll-padding

CSS 滚动捕获 scroll-padding

设置元素的滚动内边距, 就像 padding 所做的那样. 但并不影响布局.

非滚动捕获容器

我们先来看看不影响布局到底是什么意思. 我们平时会见到左侧是内容, 右侧是内容导航的页面, 比如下图

这样看起来没有问题, 但往往通过锚点定位时我们不希望内容紧贴着上边界, 那我们就给左侧的滚动容器增加 scroll-padding

css 复制代码
main {
  height: 100vh;
  overflow: auto;
  scroll-behavior: smooth;
  scroll-padding-top: 10px;
}

可以看到, 除了第一部分之外剩余的部分通过锚点定位都会在其上方空出 10px 的位置. 但实际上, main 是没有 padding 的, 即布局没有改变, 只是在滚动时多了这么个视觉上的效果.

滚动捕获容器

html 复制代码
<div class="scroll">
  <section class="item">1</section>
  <section class="item">2</section>
  <section class="item">3</section>
  <section class="item">4</section>
</div>
css 复制代码
.scroll {
  width: 200px;
  height: 200px;
  overflow: auto;
  scroll-snap-type: y mandatory;
  scroll-padding-top: 10px;
}
.item {
  height: 100%;
  scroll-snap-align: start;
}

可以看到, 在滚动捕获发生时, 滚动容器上会空出一部分距离从而捕获的元素不能紧贴容器的上边缘.

语法

padding 一样, scroll-padding 也是一个简写属性, 是 scroll-padding-bottomscroll-padding-leftscroll-padding-rightscroll-padding-top 四个属性的简写.

支持两种类型的值

  • auto: 默认值, 具体多少由浏览器决定, 通常默认为 0px. 但是浏览器可能使用其他值.
  • <length-percentage>: 长度值或百分比值

兼容性

谢谢你看到这里😊

相关推荐
晚风资源组21 小时前
CSS文字和图片在容器内垂直居中的简单方法
前端·css·css3
Miketutu21 小时前
Flutter学习 - 组件通信与网络请求Dio
开发语言·前端·javascript
幻影星空VR元宇宙1 天前
5D影院带来的视觉震撼与娱乐投资价值分析以及球幕影院设备价格揭秘
css·百慕大冒险·幻影星空
光影少年1 天前
前端如何调用gpu渲染,提升gpu渲染
前端·aigc·web·ai编程
Surplusx1 天前
运用VS Code前端开发工具完成网页头部导航栏
前端·html
小宇的天下1 天前
Calibre 3Dstack --每日一个命令day13【enclosure】(3-13)
服务器·前端·数据库
一只小bit1 天前
Qt 文件:QFile 文件读写与管理教程
前端·c++·qt·gui
午安~婉1 天前
整理知识点
前端·javascript·vue
军军君011 天前
Three.js基础功能学习十二:常量与核心
前端·javascript·学习·3d·threejs·three·三维
m0_748254661 天前
CSS AI 编程
前端·css·人工智能