Wie man viele Bereiche innerhalb von div umschließt

8

Ich habe eine <div> mit fest codierter Breite. Innerhalb des <div> befinden sich mehrere hundert <span> -Tags. Kann ich die Spannen so einwickeln, dass der Zeilenabstand korrekt ist und die Spannen zwischen Spannen sind? Ich benutze word-wrap: break-word und es sieht sehr unordentlich aus.

Hier ist Pseudocode.

%Vor%

Danke!

EDIT zur Klarstellung: Es sollte mehrere Spannen in jeder Zeile geben, und das Wrapping sollte zwischen Spannen sein.

    
user191688 25.11.2011, 20:45
quelle

6 Antworten

19

BEARBEITEN (2017): Flexbox with wrap display: flex; flex-wrap: wrap ist kompatibel mit IE10 + (und Android 4.4+) und erlaubt vielseitige Ausrichtungen sowohl horizontal (ausgerichtet, nach links oder rechts ausgerichtet, space-around , zentriert) als auch vertikal ( align-items ) mit einem vielseitigen Zeilenabstand ( align-content ... wenn im Allgemeinen eine Höhe eingestellt ist).
Bonus: keine ~ 4px Leerzeichen zwischen den zu betreuenden Elementen wie bei inline-block . Sie tun ziemlich genau was Sie wollen: kein Gutter, flex: 1 1 auto oder padding: 1rem zum Beispiel
Cheatsheet für Flexbox auf CSS Tricks
/ BEARBEITEN

Span erscheint nicht sehr semantisch, vielleicht eine ungeordnete Liste?

Wenn ich Ihr Problem gut verstanden habe, wollen Sie so viele Spannen pro Linie, die passen, aber keine Spannen beginnen in einer Linie und enden in einer anderen Linie?
Dann die folgende Geige: Ссылка wird den Trick machen. Probieren Sie

aus %Vor%     
FelipeAls 25.11.2011, 20:53
quelle
1

Nicht 100% sicher, was Sie meinen, aber wenn Sie möchten, dass jeder Bereich in einer anderen Zeile angezeigt wird, dann zeigen Sie diesen Block

an %Vor%

Bearbeiten

vielleicht

%Vor%

so? Ссылка mit Ausnahme der Breite des Divs natürlich

    
Huangism 25.11.2011 20:50
quelle
0

Wenn Sie also möchten, dass all diese Spannen eine Zeile für sich nehmen (das ist, was ich verstehe), sollten Sie <p> s oder <li> s und nicht Spannen verwenden. Dann können Sie die Zeilenhöhe verwenden, um den Abstand zwischen den Zeilen zu steuern.

Verdammt, du könntest sogar <br> s benutzen, um deine Zeilen zu brechen.

Eine andere Methode wäre, Ihre Spannen display:block zu setzen, so dass sie eine Zeile überspringen, wenn sie enden.

    
Fredy31 25.11.2011 20:49
quelle
0

Versuchen Sie es mit dem Display: Block; innerhalb der CSS. Passen Sie dann den Rand / Abstand für den erforderlichen Abstand an.

    
Jordan Georgiev 25.11.2011 20:51
quelle
0

Versuchen Sie, die Spanne wie ein div zu gestalten?

Wenn ja, könnten Sie Folgendes verwenden:

%Vor%

Beispiel:

Ссылка

    
Josh Foskett 25.11.2011 20:52
quelle
0

Der schnellste, aber nicht perfekte Weg ist die Verwendung von span { white-space: nowrap } . Natürlich, wenn die <span> Breite über die <div> Breite hinausgeht, werden Sie Probleme haben. Sie müssen entweder <div> scrollbar machen oder JavaScript verwenden, um dieses Szenario zu beheben.

Die anderen Optionen display mit white-space in der CSS-Spezifikation sind nicht browserübergreifend genug, um so zu funktionieren, wie Sie es möchten.

    
Jon Adams 25.11.2011 20:54
quelle

Tags und Links