2017-08-01 3 views
0

Ich habe ein Raster-Layout mit 3 Kinder, die jeweils 4 von 12 Spalten überspannt, um eine horizontale 3-Spalten-Layout zu erstellen. Ein vereinfachtes Beispiel ist hier zu sehen: https://jsfiddle.net/bnyy6fde/1/.Ignorieren divs umgebenden Rasterzellen in der Anzeige: Raster

Mein CMS umschließt jedes untergeordnete Element in einem div, wodurch das Rasterlayout falsch gerendert wird. Dies kann man hier sehen, demonstriert durch das div mit Klasse 'nicht arbeiten': https://jsfiddle.net/e6b2yf37/2/.

<div class="grid"> 
    <div class="not-working"> 
    <div class="grid-cell"> 
     <h3>Grid element 1</h3> 
    </div> 
    </div> 
    <div class="not-working"> 
    <div class="grid-cell"> 
     <h3>Grid element 1</h3> 
    </div> 
    </div> 
    <div class="not-working"> 
    <div class="grid-cell"> 
     <h3>Grid element 1</h3> 
    </div> 
    </div> 
</div> 

Je nach Konfiguration des Editors kann die Anzahl der Spalten zwischen 1 und 4 Elementen pro Zeile liegen. Daher ist es nicht möglich, dies einfach zu lösen, indem Sie div, 'not-working', grid-column-end angeben: 4.

Es ist nicht möglich, die divs zu entfernen, die jedes Kind im CMS umhüllen.

Gibt es eine reine CSS-Lösung, die ignoriert das div 'nicht arbeiten' unabhängig von der Anzahl der Spalten die Kinder überspannen?

Antwort

0
.grid {display: flex;} 
.not-working {flex-grow: 1; width: 10%;} 

Ihre divs sollten jetzt das Raster gleichmäßig füllen.

+0

Hallo Carele, für Ihren Vorschlag Vielen Dank an .NOT-arbeiten. Es funktioniert für das Szenario, aber ich erkannte, dass ich vergaß, "flex-flow: row wrap;" zum Wrapper hinzuzufügen, was "display: flex" falsch rendert. Ich habe die Frage aktualisiert, um diese Änderung widerzuspiegeln. –

+0

@AndreasChristiansen Versuchen Sie, flex-grow hinzuzufügen: 1; zu deinen Divs! – Carele

+0

Das scheint nicht im Fiddle-Beispiel zu funktionieren: https://jsfiddle.net/e6b2yf37/3/ –

0

Wie wäre es gerade die Styline Ändern heißt

.not-working { 
    width: auto; 
    grid-column-end: span 4; 
} 
+0

Vielen Dank für den Vorschlag, omukiguy, aber die Lösung funktioniert nur für genau 3 Elemente pro Zeile und skaliert nicht für 4 oder mehr Elemente. –

+0

@ andreas-christiansen es sei denn, ich bekomme dich nicht gut. Check out https://codepen.io/bahiirwa/pen/breQav – omukiguy

+1

Ihre Lösung funktioniert für 3 Elemente pro Zeile, kann aber nicht 4 Elemente oder mehr pro Zeile anzeigen. Ich suchte nach einer allgemeinen Lösung, bei der das CSS auf dem nicht arbeitenden Element unverändert bleiben konnte und die Anzahl der Elemente pro Zeile durch die untergeordnete Zelle (Gitterzelle) definiert wurde. –

Verwandte Themen