html { scroll-behavior: smooth; } .container { display: flex; overflow-x: scroll; scroll-snap-type: x mandatory; scroll-padding: 0 10px; width: 100%; } .item { scroll-snap-align: start; flex-shrink: 0; width: 100%; height: 300px; margin-right: 10px; }
首先,在html元素上设置scroll-behavior为smooth,为了实现页面平滑滚动。其次,在包含滚动元素的容器上设置display:flex、overflow-x:scroll两个属性,将容器内的滚动元素横向排列,并允许横向滚动。然后,使用scroll-snap-type: x mandatory和scroll-padding: 0 10px两个属性来保证滚动元素没有间隙,并且滚动到页面中心位置会自动停止。接着,在每一个滚动元素上设置scroll-snap-align: start和flex-shrink:0两个属性,以保证滚动元素对齐,并且不缩小滚动元素的大小。最后设置滚动元素的宽度、高度和margin值。
通过上述设置,便可以实现无间隙的CSS3滚动,并且可以配合JavaScript来实现手动和自动两种滚动方式,是一种非常实用的网页设计方法。