1

这是来自csstricks.com的两个 CSS 滚动快照示例

为什么其中一个起作用,而另一个不起作用?两者有什么区别?

示例 1:

.container {
    flex-basis: 50%;
    max-height: 100vh;
    overflow-y: scroll;
    border: 1px solid gray;
    scroll-snap-type: y mandatory;
    &.proximity {
            scroll-snap-type: y proximity;
    }
}

li {
    border-bottom: 1px solid white;
    padding: 3rem;
    font-size: 1.4rem;
    color: rgba(white, .5);
    background: lightgray;
    text-align: center;
    scroll-snap-align: start;
    display: flex;
    flex-flow: column;
    justify-content: center;
}

示例 2:

body {
    font-family: sans-serif;
    scroll-snap-type: mandatory;
    scroll-snap-points-y: repeat(100vh);
    scroll-snap-type: y mandatory;
}
section {
    border-bottom: 1px solid white;
    padding: 1rem;
    height: 100vh;
    scroll-snap-align: start;
    text-align: center;
    position: relative;
}
4

1 回答 1

2

因为默认情况下<body>不滚动,<html>确实。
将选择器更改为:root,它将在 Chrome 中运行。

虽然为了安全起见,您最好定义自己的滚动区域,因为旧浏览器确实使用<body>as scrollingElement

于 2019-11-04T23:44:29.053 回答