Listenelement Unterschiedliche Höhe ausgeben

8

Wie Sie auf dem Screenshot sehen können, habe ich in der ersten "Spalte" ein Leerzeichen. Ich möchte, dass jeder Listeneintrag in derselben Zeile die gleiche Höhe hat. Es wird immer 2 Gegenstände in jeder Reihe sein, also möchte ich im Grunde alle 2 Gegenstände durchgehen und sie auf die Höhe des höchsten dieser Gegenstände einstellen. Ich habe zahlreiche Lösungen durchgesehen, aber nichts scheint für mich zu funktionieren. Ich habe das Gefühl, ich brauche JS, aber vielleicht nicht.

%Vor%

    
ansarob 24.05.2015, 05:07
quelle

7 Antworten

2

Sie erwähnen nicht, welche Browser-Unterstützung für Ihre Lösung erforderlich ist, aber eine wirklich gute Möglichkeit, etwas zu erreichen, ist die Verwendung von flexbox in CSS (die Browser-Unterstützung ist hier Ссылка und möglicherweise müssen Sie Vendor-Präfixe verwenden, die ich nicht habe, aber das funktioniert derzeit so wie in Chrome." So etwas sollte tun, was du willst:

%Vor%

Ich habe noch ein paar andere Änderungen vorgenommen, zum Beispiel die Verwendung von list-style-image zum Anzeigen des Aufzählungszeichens. Es muss nicht als Hintergrund festgelegt werden. Um dies auf diese Weise zu tun, bin ich von Padding-Left nach Margin-Left gewechselt und habe sichergestellt, dass beide% sind, die bis zu 50% ergeben (oder weniger würden auch funktionieren). Ich würde auch empfehlen, em für den unteren Rand anstatt px zu verwenden, damit es besser skaliert.

Arbeitsbeispiel hier

Es ist auch erwähnenswert, dass Sie eine Anzahl von Listenelementen mit einer Breite von 50% und einer Auffüllung von weiteren 75px hatten. Die CSS-Breite enthält kein Padding, sodass jedes Element eine 50% + 75px-Breite hat, sodass diese Elemente nicht wirklich 2 pro Zeile entsprechen können.

    
diadical 24.05.2015 05:57
quelle
2

Sie können den dritten Punkt einfach mit css selector löschen.

%Vor%     
Felix A J 24.05.2015 09:51
quelle
2

Cross-Browser-kompatible Lösung ohne die Kopfschmerzen von Float

Floats sollten niemals im Layoutdesign verwendet werden. Ihr Zweck ist es, Inhalt in einen Textkörper (wie ein Bild oder eine Seite) einzufügen und den Inhalt elegant um ihn herum fließen zu lassen. Wenn sie missbraucht werden, können ihnen viele Probleme zugefügt werden, und normalerweise, wenn eine Seite mit einem Float ein Problem hat, ist es der Float.

Flexbox ist wunderbar, aber immer noch nicht gut von älteren Browsern unterstützt.

Anstelle von floats oder flexbox sollten Sie display: inline-block; für die Elemente verwenden. Sie sollten auch vertical-align: top verwenden, um das Ausrichtungsproblem zu beheben.

Der Abstand zwischen den Tags wird als Text gerendert und nimmt daher den Platz eines Zeichens ein. Verwenden Sie font-size: 0; für das übergeordnete Element und font-size: 1rem für die Elemente

( Demo )

%Vor%     
Tiny Giant 24.05.2015 06:02
quelle
1

Fügen Sie den Stilen dieser li-Elemente eine Mindesthöhe hinzu.

%Vor% %Vor%
    
zwcloud 24.05.2015 05:33
quelle
1

Hier ist eine einfache Lösung:

%Vor%

Demo: Ссылка

    
Tushar 24.05.2015 05:37
quelle
1

Sie können diesen jquery-Code verwenden

%Vor%

DEMO HIER

Lassen Sie mich das erklären

1.: Ich habe .each() benutzt, um (li) s zu durchlaufen

2.: Ich habe einen boolen check true oder false verwendet, um den Index von li zu überprüfen. Ich meine, wenn check == true, überprüfe den Code für li index [0], li index [2], li index [4]. ..etc

3.: Ich bekomme eine outerHeight (true) für

%Vor%

4.: if-Anweisung zu welcher von ihnen höher als eine andere .. und dann diese Höhe an die kleinere li anfügen, indem .css ()

verwendet wird

--- & gt; Vergessen Sie nicht, jquery library

einzuschließen     
Mohamed-Yousef 24.05.2015 05:29
quelle
0

Wow, ich bin überwältigt von den tollen, qualitativ hochwertigen Antworten! Alle von ihnen sind Optionen, um mit zu gehen, aber nachdem wir etwas später damit herumgespielt haben, habe ich eine einfache Änderung vorgenommen. Ich habe hinzugefügt:

%Vor%

und das hat es behoben. Ich bin wirklich nur beschäftigt mit IE 8 und höher , damit das funktioniert. Es ist so eine einfache Lösung. Ich denke, das ist es, was ich bekomme, wenn ich versuche, nach Mitternacht zu arbeiten! Nochmals vielen Dank für alle Antworten!

    
ansarob 24.05.2015 21:12
quelle

Tags und Links