Heim > Web-Frontend > CSS-Tutorial > Wie wirkt sich die Marge auf die Flex-Grow-Größe in Flexbox-Layouts aus?

Wie wirkt sich die Marge auf die Flex-Grow-Größe in Flexbox-Layouts aus?

Linda Hamilton
Freigeben: 2024-12-17 22:00:17
Original
444 Leute haben es durchsucht

How Does Margin Affect Flex-Grow Sizing in Flexbox Layouts?

Größe von Flex-Elementen mit Flex-Grow anpassen

In Flexbox-Layouts werden Flex-Elemente entsprechend ihrem Flex-Grow dimensioniert -Eigenschaft, die angibt, wie viel freien Speicherplatz jedes Element belegen soll. Es gibt jedoch bestimmte Faktoren, die sich auf die berechnete Größe von Flex-Elementen auswirken können, einschließlich Inhalt und Ränder.

Problemübersicht

Beachten Sie den folgenden Code:

.numbers {
    display: flex;
    flex-direction: column;
}

.row {
    display: flex;
    flex-direction: row;
    flex-grow: 1;
    justify-content: space-between;
}

.button {
    display: flex;
    flex-grow: 1;
    justify-content: center;
    align-items: center;
    margin: 5px;
    border-radius: 5px;
    border: 1px solid gray;
    background: rgba(255, 255, 255, 0.2);
    cursor: pointer;
}

#number0 {
    flex-grow: 2;
}

#colon {
    flex-grow: 1;
}
Nach dem Login kopieren
<div class="numbers">
    <div class="row">
        <div class="button number">
Nach dem Login kopieren

In diesem Beispiel gehen wir davon aus, dass die Schaltfläche „0“ doppelt so breit ist wie die anderen Schaltflächen und die Doppelpunkt-Schaltfläche halb so breit sein. Allerdings scheint die Ausrichtung dieser Schaltflächen etwas abweichend zu sein.

Ursache des Problems

Das Problem entsteht, weil der verfügbare Platz in jeder Zeile bestimmt wird durch die Gesamtbreite der Schaltflächen und die darauf angewendeten Ränder. In unserem Beispiel haben die ersten drei Zeilen jeweils zwei horizontale Ränder, während die vierte Zeile nur einen hat. Dies führt dazu, dass die vierte Reihe mehr freien Platz hat als die anderen Reihen, was sich auf die Platzverteilung auf die Flex-Elemente auswirkt.

Flex-Basis für zuverlässigere Größenbestimmung verwenden

Um dieses Problem zu beheben, wird empfohlen, stattdessen flex-basis zu verwenden Flex-Grow für eine zuverlässigere Größenbestimmung von Flex-Artikeln. Flex-Basis legt die Anfangsgröße des Elements unter Berücksichtigung seines Inhalts und seiner Ränder fest. Indem wir die Flex-Basis für jede Schaltfläche angeben, können wir sicherstellen, dass allen unabhängig von den Rändern der gleiche Platz gegeben wird.

Hier ist der korrigierte Code:

.button {
    flex-basis: 33.33%;
}

#number0 {
    flex-basis: calc(66.67% + 10px);
}

* {
    box-sizing: border-box;
}
Nach dem Login kopieren

Von Durch die Aktualisierung der Flex-Basis können wir die gewünschte Ausrichtung der Schaltflächen erreichen, wobei die „0“-Schaltfläche doppelt so breit wie die anderen Schaltflächen und die Doppelpunkt-Schaltfläche halb so breit ist.

Das obige ist der detaillierte Inhalt vonWie wirkt sich die Marge auf die Flex-Grow-Größe in Flexbox-Layouts aus?. 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