Ich versuche, purecss (purecss.io) in WordPress zu integrieren, und ich habe Probleme, Gitterboxen auf 100% Höhe zu setzen. Ich wende einen grauen Hintergrund an (ungerade / gerade n-te-Kind-CSS-Eigenschaft) und es zeigt deutlich das Problem mit variablem Inhalt innerhalb der Boxen.
Wie setze ich die Boxen 100% hoch, damit ich den Hintergrund gleichmäßig anwenden kann?
In dem Screenshot möchte ich, dass die Gitterbox, die das Suchformular anzeigt, 100% hoch ist, so dass der gesamte Hintergrund grau ist.
%Vor%Ich verwende mit diesem CSS-Code eine graue Hintergrundfarbe für ungerade Widgets
%Vor% Dies ist ein hervorragender Anwendungsfall für flexbox . Setzen Sie einfach die Eigenschaft display
des Elternelements der Gitterelemente auf flex
, wie folgt:
Und die Höhen der Gitterelemente werden normalisiert.
Wie bereits von anderen vorgeschlagen, können Sie möglicherweise auch ähnliche Ergebnisse erzielen, indem Sie die display
-Eigenschaften der beteiligten Elemente auf die entsprechenden Tabellengegenstücke setzen, wodurch Ihr Grid im Wesentlichen zu einer falschen Tabelle wird.
Abgesehen davon gibt es keine Möglichkeit, Spaltenhöhen mit CSS zu normalisieren, ohne einen der Elemente aus dem Inhaltsfluss herauszunehmen, was nicht wünschenswert ist.
In%% verhält sich height: 100%
nicht ganz so, wie man es erwarten würde. Jede prozentuale Höhe wird nicht in eine tatsächliche Höhe aufgelöst, es sei denn, ihr direkter Elternteil hat so explizit height
deklariert, aber da Sie eine dynamische Inhaltshöhe haben, können / sollten Sie keinen statischen Wert festlegen.
Sie könnten dies umgehen, indem Sie Javascript verwenden, um height
des Elternteils dynamisch auf die Höhe des größten Kindes zu setzen, so dass prozentuale Höhen in ihm arbeiten, aber das ist eine ganz andere Frage.
Hier habe ich einen Weg dies zu tun, mach zuerst diese divs display: table-cell
. Dadurch werden sie gleich height
. Und für die Reaktionsfähigkeit Ihrer Website bei niedrigeren mobilen Auflösungen können Sie die
@media
-Abfrage verwenden, um die divs auf display: block
zurückzusetzen
Sehen Sie sich das Live-Beispiel an, was ich meine.
Sie sehen beide divs bei height
aufgrund von display: table-cell
, aber wenn Sie den linken Rand des Ergebnisfensters ziehen, um seine Breite kleiner zu machen , werden Sie bei
Dies kann mit Flex-Box erreicht werden. Ссылка
Es gibt zwei Teile für flexbox, den Container und die Objekte im Container
Setzen Sie Ihren Container, in diesem Fall widgets
auf display:flex;
Dann erhalten die Elemente, die nebeneinander angezeigt werden sollen, die Eigenschaft flex-basis
. Wenn Sie für jeden Wert den Wert 1 festlegen, bedeutet dies, dass die Größe des Objekts standardmäßig gleich ist. Wenn Sie beispielsweise 1 für die Suche und 2 für die Einträge festlegen, würden die Einträge versuchen, den doppelten Platz zu belegen
das ist ein sehr guter Artikel über die Flexbox Ссылка
Fügen Sie unten benutzerdefinierte CSS in Ihrem CSS hinzu.
%Vor%