<!DOCTYPE html>
<html>
<head>
<style>
#container {
width: 50%;
aspect-ratio: 1;
margin: auto;
border: solid black 2px;
overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
scroll-snap-type: x mandatory;
direction: rtl;
scroll-padding-left: 30px;
}
#container > div {
display: inline-block;
margin: 2px;
scroll-snap-align: none start;
}
.green {
background-color: lightgreen;
height: 95%;
aspect-ratio: 2/3;
}
.blue {
background-color: lightblue;
height: 80%;
aspect-ratio: 3/4;
}
</style>
</head>
<body>
<h1>改变吸附位置后的 CSS scroll-padding-left</h1>
<p>为了使 scroll-padding-left 生效,吸附位置必须设置在子元素的左侧。在用英语书写的页面中,通常可以通过将 scroll-snap-align 设置为 'none start' 来将吸附位置设置在子元素的左侧,因为内联方向是从左到右。但是,如果我们通过设置 direction 属性值为 'rtl'(从右到左)来改变行内方向,吸附位置就会从左侧变为子元素的右侧。在这种情况下,scroll-padding-left 属性将不再起作用。</p>
<div id="container">
<div class="blue">Blue</div>
<div class="green">Green</div>
<div class="blue">Blue</div>
<div class="green">Green</div>
<div class="blue">Blue</div>
<div class="green">Green</div>
<div class="blue">Blue</div>
<div class="green">Green</div>
</div>
</body>
</html>