overscroll-behavior-block
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.
Die overscroll-behavior-block
CSS Eigenschaft legt das Verhalten des Browsers fest, wenn die Blockrichtung einer Scrollbereichsgrenze erreicht wird.
Siehe overscroll-behavior
für eine vollständige Erklärung.
Syntax
/* Keyword values */
overscroll-behavior-block: auto; /* default */
overscroll-behavior-block: contain;
overscroll-behavior-block: none;
/* Global values */
overscroll-behavior-block: inherit;
overscroll-behavior-block: initial;
overscroll-behavior-block: revert;
overscroll-behavior-block: revert-layer;
overscroll-behavior-block: unset;
Die Eigenschaft overscroll-behavior-block
wird als ein Schlüsselwort aus der unten stehenden Liste von Werten spezifiziert.
Werte
auto
-
Das Standardverhalten bei Überlauf beim Scrollen tritt wie gewohnt auf.
contain
-
Standardverhalten bei Überlauf beim Scrollen (z.B. "Bounce"-Effekte) wird innerhalb des Elements beobachtet, in dem dieser Wert gesetzt ist. Es tritt jedoch kein Scroll Chaining in benachbarten Scrollbereichen auf; die darunterliegenden Elemente scrollen nicht. Der Wert
contain
deaktiviert die native Browser-Navigation, einschließlich der vertikalen Pull-to-Refresh-Geste und der horizontalen Wischnavigation. none
-
Kein Scroll Chaining tritt in benachbarten Scrollbereichen auf, und das Standardverhalten bei Überlauf beim Scrollen wird verhindert.
Formale Definition
Anfangswert | auto |
---|---|
Anwendbar auf | nicht ersetzte Blocklevel Elemente und nicht ersetzte Inlineblock Elemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formale Syntax
Beispiele
Verhindern von Block-Overscrolling
In diesem Beispiel haben wir zwei Block-Level-Boxen, eine innerhalb der anderen. Die äußere Box hat eine große height
gesetzt, sodass die Seite vertikal scrollt. Die innere Box hat eine kleine width
(und height
) gesetzt, sodass sie bequem in den Viewport passt, aber ihr Inhalt hat eine große height
, damit sie ebenfalls vertikal scrollt.
Standardmäßig, wenn die innere Box gescrollt wird und eine Scrollgrenze erreicht wird, beginnt die gesamte Seite zu scrollen, was wahrscheinlich nicht gewünscht ist. Um dies im Block Richtung zu vermeiden, haben wir overscroll-behavior-block: contain
auf der inneren Box gesetzt.
HTML
<main>
<div>
<div>
<p>
<code>overscroll-behavior-block</code> has been used to make it so that
when the scroll boundaries of the yellow inner box are reached, the
whole page does not begin to scroll.
</p>
</div>
</div>
</main>
CSS
main {
height: 3000px;
width: 500px;
background-color: white;
background-image: repeating-linear-gradient(
to bottom,
rgb(0 0 0 / 0%) 0px,
rgb(0 0 0 / 0%) 19px,
rgb(0 0 0 / 50%) 20px
);
}
main > div {
height: 300px;
width: 400px;
overflow: auto;
position: relative;
top: 50px;
left: 50px;
overscroll-behavior-block: contain;
}
div > div {
height: 1500px;
width: 100%;
background-color: yellow;
background-image: repeating-linear-gradient(
to bottom,
rgb(0 0 0 / 0%) 0px,
rgb(0 0 0 / 0%) 19px,
rgb(0 0 0 / 50%) 20px
);
}
p {
padding: 10px;
background-color: rgb(255 0 0 / 50%);
margin: 0;
width: 340px;
position: relative;
top: 10px;
left: 10px;
}
Ergebnis
Spezifikationen
Specification |
---|
CSS Overscroll Behavior Module Level 1 # overscroll-behavior-longhands-logical |