Heim > Web-Frontend > CSS-Tutorial > Wie verhindere ich Spaltenumbrüche innerhalb von Listenelementen in mehrspaltigen Layouts?

Wie verhindere ich Spaltenumbrüche innerhalb von Listenelementen in mehrspaltigen Layouts?

Linda Hamilton
Freigeben: 2024-12-16 22:23:15
Original
513 Leute haben es durchsucht

How to Prevent Column Breaks Inside List Items in Multi-Column Layouts?

Spaltenumbrüche innerhalb eines Elements verhindern

Bei der Verwendung mehrspaltiger Layouts kommt es häufig zu Problemen mit Spaltenumbrüchen, die Elemente unerwünschterweise aufteilen. Dies kann auftreten, wenn ein Element, beispielsweise ein Listenelement, zu lang ist, um in eine einzelne Spalte zu passen.

Problemstellung

Berücksichtigen Sie das folgende HTML und CSS:

<div class='x'>
    <ul>
        <li>Number one</li>
        <li>Number two</li>
        <li>Number three</li>
        <li>Number four is a bit longer</li>
        <li>Number five</li>
    </ul>
</div>
Nach dem Login kopieren
.x {
    -moz-column-count: 3;
    column-count: 3;
    width: 30em;
}
Nach dem Login kopieren

In diesem Szenario können einige Listenelemente zwischen Spalten aufgeteilt sein, wie im Folgenden dargestellt Rendering:

• Number one    • Number three          bit longer
• Number two    • Number four is a    • Number five
Nach dem Login kopieren

Das Ziel besteht darin, diese Aufteilung zu verhindern und ein gewünschteres Rendering zu erreichen, wie zum Beispiel:

• Number one    • Number four is a
• Number two      bit longer
• Number three  • Number five
Nach dem Login kopieren

Lösung: Eigenschaft „break-inside“

Die Lösung für dieses Problem liegt in der Verwendung der CSS-Break-Inside-Eigenschaft. Indem Sie „break-inside:void-column“ für das Element festlegen, dessen Bruch Sie verhindern möchten, können Sie den Browser anweisen, das Element in einer einzelnen Spalte zu belassen.

.x li {
    break-inside: avoid-column;
}
Nach dem Login kopieren

Dieser Ansatz wird von den wichtigsten Browsern weitgehend unterstützt , einschließlich Chrome und Safari. Stand Oktober 2021 fehlt Firefox jedoch immer noch die Unterstützung für die Break-Inside-Eigenschaft.

Firefox-Workaround

Für Firefox gibt es einen Workaround, der die Verwendung einer Tabelle beinhaltet . Von dieser Lösung wird jedoch aufgrund ihrer negativen Auswirkungen dringend abgeraten.

Unterstützung für Seitenumbrüche in Firefox 20

Laut einem Firefox-Fehlerbericht (Bug 549114) , Firefox 20 und spätere Versionen unterstützen jetzt die Verwendung von page-break-inside: Vermeidung, um Spaltenumbrüche innerhalb eines Elements zu verhindern. Wie der folgende Codeausschnitt zeigt, löst diese Methode das Problem für Listen jedoch noch nicht vollständig:

.x {
    column-count: 3;
    width: 30em;
}

.x ul {
    margin: 0;
}

.x li {
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside:avoid;
    -moz-page-break-inside:avoid;
    page-break-inside: avoid;
    break-inside: avoid-column;
}
Nach dem Login kopieren
<div class='x'>
    <ul>
        <li>Number one, one, one, one, one</li>
        <li>Number two, two, two, two, two, two, two, two, two, two, two, two</li>
        <li>Number three</li>
    </ul>
</div>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verhindere ich Spaltenumbrüche innerhalb von Listenelementen in mehrspaltigen Layouts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage