Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
CSS overflow
Die Eigenschaften des CSS overflow-Moduls ermöglichen es Ihnen, scrollbareren Überlauf in visuellen Medien zu verwalten.
Ein Überlauf tritt auf, wenn der Inhalt eines Elementkastens über eine oder mehrere Kanten des Kastens hinausgeht. Scrollbarer Überlauf ist der Inhalt, der außerhalb des Elementkastens erscheint, für den Sie möglicherweise einen Scroll-Mechanismus hinzufügen möchten. Mit den CSS-Overflow-Eigenschaften können Sie steuern, was passiert, wenn der Inhalt einen Elementkasten überläuft, einschließlich der Erstellung von Karussells ohne JavaScript.
Malereffekte, die den Inhalt überlaufen, aber nicht am CSS-Box-Modell teilnehmen, wirken sich nicht auf das Layout aus. Diese Art von Überlauf wird auch als Tintenüberlauf bezeichnet. Beispiele für Tintenüberläufe sind Box-Schattierungen, Rahmenbilder, Textdekorationen, überhängende Glyphen und Umrisse. Tintenüberläufe erweitern die scrollbarere Überlaufregion nicht.
Überlauf in Aktion
Probieren Sie das folgende Beispiel aus, um die Auswirkungen der verschiedenen overflow-Eigenschaftswerte auf den Überlauf des Inhalts und die Scrollbars im benachbarten, fest dimensionierten Kasten zu sehen.
Das Beispiel enthält Optionen zum Ändern der Werte für die Eigenschaften overflow-clip-margin und width sowie zum programmatischen Scrollen des Inhalts, wenn die Overflow-Eigenschaft einen Scroll-Container erstellt. Wählen Sie overflow: clip und sehen Sie die Auswirkungen verschiedener overflow-clip-margin-Werte. Wählen Sie overflow: hidden oder overflow: scroll, um die verschiedenen Einstellungen der ScrollLeft- und ScrollTop-Schieberegler zu überprüfen.
<article>
<fieldset>
<legend>Select options:</legend>
<label
><code>overflow</code>:
<select id="overflowValue">
<option>hidden</option>
<option>clip</option>
<option>scroll</option>
<option>auto</option>
<option selected>visible</option>
<option>overlay</option>
</select>
</label>
<label>
<code>overflow-clip-margin</code>:
<input type="number" id="ocm" value="1" min="0" max="10" />
<code>em</code>
</label>
<label
><input type="checkbox" id="wide" /> <code>width</code>:
<code>20em</code> or <code>40em</code></label
>
<fieldset>
<legend>Scroll programmatically:</legend>
<label
>ScrollLeft:
<input type="range" min="0" max="100" value="0" id="scrollL"
/></label>
<label
>ScrollTop:
<input type="range" min="0" max="100" value="0" id="scrollT"
/></label>
</fieldset>
</fieldset>
<pre class="visible">
Oh, Rubber Duckie, you're the one
You make bath time lots of fun
Rubber Duckie, I'm awfully fond of you
Rubber Duckie, joy of joys
When I squeeze you, you make noise
Rubber Duckie, you're my very best friend, it's true
Oh, every day when I make my way to the tubby
I find a little fella who's cute and yellow and chubby
Rub-a-dub-dubby
<a href="#">Rubber Duckie</a>, you're so fine
And I'm lucky that you're mine
Rubber Duckie, I'm awfully fond of you
</pre>
</article>
article {
display: flex;
gap: 1em;
}
label {
display: block;
white-space: nowrap;
}
pre {
border: 2px dashed crimson;
height: 150px;
width: 20em;
margin-bottom: 3em;
overflow-clip-margin: 1em;
text-align: center;
}
.wide {
width: 40em;
}
::before {
font-weight: bold;
color: white;
background: crimson;
display: inline-block;
min-width: 50%;
padding: 3px 5px;
box-sizing: border-box;
}
.hidden {
overflow: hidden;
}
.hidden::before {
content: "hidden: ";
}
.clip {
overflow: clip;
}
.clip::before {
content: "clip: ";
}
.scroll {
overflow: scroll;
}
.scroll::before {
content: "scroll: ";
}
.auto {
overflow: auto;
}
.auto::before {
content: "auto: ";
}
.overlay {
overflow: clip;
overflow: overlay;
}
.overlay::before {
content: "overlay (or clip if not supported): ";
}
.visible {
overflow: visible;
}
.visible::before {
content: "visible: ";
}
article:not(:has(pre.clip)) > fieldset > label:nth-of-type(2),
article:not(:has(pre.hidden, pre.scroll, pre.auto, pre.overlay))
fieldset
fieldset {
opacity: 20%;
pointer-events: none;
}
const pre = document.querySelector("pre");
const val = document.getElementById("overflowValue");
const check = document.getElementById("wide");
const ocm = document.getElementById("ocm");
const scrollL = document.getElementById("scrollL");
const scrollT = document.getElementById("scrollT");
val.addEventListener("change", () => {
if (pre.classList.contains("wide")) {
pre.className = `wide ${val.value}`;
} else {
pre.className = `${val.value}`;
}
scrollExample();
clipMargin();
});
wide.addEventListener("change", () => {
pre.classList.toggle("wide");
scrollExample();
});
ocm.addEventListener("change", () => {
clipMargin();
});
scrollL.addEventListener("change", () => {
scrollExample();
});
scrollT.addEventListener("change", () => {
scrollExample();
});
function scrollExample() {
pre.scrollTo({
top: scrollT.value,
left: scrollL.value * 2,
behavior: "smooth",
});
}
function clipMargin() {
pre.style.overflowClipMargin = `${ocm.value}em`;
}
Ein Link ist im Inhaltskasten oben enthalten, um die Auswirkungen des Tastaturfokus auf Überlauf und Scrollverhalten zu demonstrieren. Versuchen Sie, zur Verknüpfung zu navigieren oder den Inhalt programmgesteuert zu scrollen: Der Inhalt wird nur scrollen, wenn der enumerierte <overflow>-Wert einen Scroll-Container erstellt.
Referenz
>Eigenschaften
line-clampoverflowShorthandoverflow-blockoverflow-clip-marginoverflow-inlineoverflow-xoverflow-yscroll-behaviorscroll-marker-groupscroll-target-groupscrollbar-guttertext-overflow
Das CSS overflow Stufe 4 Modul führt auch die Eigenschaften block-ellipsis, continue, max-lines, overflow-clip-margin-block, overflow-clip-margin-block-end, overflow-clip-margin-block-start, overflow-clip-margin-bottom, overflow-clip-margin-inline, overflow-clip-margin-inline-end, overflow-clip-margin-inline-start, overflow-clip-margin-left, overflow-clip-margin-right und overflow-clip-margin-top ein. Derzeit unterstützen keine Browser diese Funktionen.
Selektoren und Pseudoelemente
Datentypen
<overflow>enumerierte Werte
Glossarbegriffe und Definitionen
Leitfäden
- Lernen: Überlaufender Inhalt
-
Lernen Sie, was Überlauf ist und wie Sie ihn verwalten können.
- Erstellen von CSS-Karussells
-
Erstellen Sie rein-CSS-Karussell-UI-Features mit Scroll-Tasten, Scroll-Markierungen und erzeugten Spalten.
- Erstellen einer benannten Scroll-Progress-Zeitachsen-Animation
-
Die CSS-Scroll-Zeitachse
scroll-timeline-nameundscroll-timeline-axisEigenschaften zusammen mit derscroll-timelineShorthand erstellen Animationen, die mit dem Scroll-Offset eines Scroll-Containers verbunden sind.
Verwandte Konzepte
::columnscrollbar-widthCSS-Eigenschaftscrollbar-colorCSS-Eigenschaftscrollbar-gutterCSS-Eigenschaftscroll-behaviorCSS-Eigenschaftscroll-marginCSS Shorthand-Eigenschaftscroll-paddingCSS Shorthand-Eigenschaftscroll-snap-alignCSS-Eigenschaftscroll-snap-stopCSS-Eigenschaftscroll-snap-typeCSS-Eigenschafttext-overflowCSS-Eigenschaft::-webkit-scrollbarPseudoelementscrollbarARIA-Rolle- Element-Methode
scroll() - Element-Methode
scrollBy() - Element-Methode
scrollIntoView() - Element-Methode
scrollTo() - Element-Eigenschaft
scrollTop - Element-Eigenschaft
scrollLeft - Element-Eigenschaft
scrollWidth - Element-Eigenschaft
scrollHeight - Dokument-Ereignis
scroll - Glossarbegriff Scroll-Container
- Glossarbegriff Tintenüberlauf
Spezifikationen
| Specification |
|---|
| CSS Overflow Module Level 3> |
| CSS Overflow Module Level 4> |
| CSS Overflow Module Level 5> |
Siehe auch
- CSS Scrollbars-Styling Modul
- CSS Scroll Snap Modul
- CSSOM View Modul
- Anleitung zum Debuggen von scrollbareren Überlauf