Wickeln Sie die gesamte Spanne in eine neue Zeile, wenn dies nicht passt
Lesezeit: 4 Minuten
ZUSCHNITT
Ich habe zwei untergeordnete Divs 20 % und 80 %. Der letzte enthält verschachtelt spans und falls der Text nicht in dieselbe Zeile passt, wird er um ein einzelnes Wort in die nächste Zeile verschoben (Standardverhalten).
Aber ich muss das nächste Ergebnis erzielen, wenn der Text in der Spanne nicht in die Zeile passt, verschieben Sie die ganze Spanne in die nächste Zeile.
Dies verschiebt den Text nicht in die nächste Zeile, sondern macht ihn zuerst div kleiner, um Platz für Text zu schaffen, und das ist nicht wünschenswert.
Und ich möchte erreichen:
Ist es möglich, ein solches Ergebnis nur mit CSS zu erhalten?
Aufkleber
Das <span> -Tag ist standardmäßig inline, sodass der darin enthaltene Text beim Umbruch unterbrochen wird. Sie können es einstellen display: inline-block damit es als ganzer Block gerendert wird, bleibt es auch auf Inline-Ebene. Beachten Sie, dass es immer noch zu einem Umbruch kommen kann, aber nur, wenn die Textlänge den übergeordneten Container überschreitet.
display: inline-block Das Element generiert eine Blockelement-Box, die mit umgebendem Inhalt umflossen wird, als wäre es eine einzelne Inline-Box (die sich ähnlich wie ein ersetztes Element verhält) – MDN
Und für das Layout, das Sie erreichen möchten, können Sie den Text “Weiterlesen” in ein umbrechen <a> -Tag und legen Sie den Schaltflächen-Link-Stil darauf anstelle der Tabellenzelle fest, siehe die aktualisierte Demo unten.
<div class="post-short-footer">
<div class="read-more-post">
<a href="#">Read more</a>
</div>
<div class="post-short-meta-container">
<span>Some text here</span>
<span>Some text here</span>
<span>Some text here</span>
<span>Some text here</span>
<span>Some text here</span>
</div>
</div>
Sie können das gleiche feststellen margin aber der linke/rechte Abstand und der obere/untere Abstand sind im Beispiel nicht gleich, folgen Sie diesem Beitrag, wenn es pixelgenau sein soll.
AKTUALISIEREN
Es gibt einen besseren Weg, das zu tun, nämlich CSS3 Flexboxsehen Sie sich den Ausschnitt unten an.
Ein inline-block Element ist eine Einheit, die immer ein Block bleibt (jedoch innerhalb des Textflusses), die nur als Ganzes verschoben und nicht geteilt werden kann.
Du benutzt display: table, und das Verhalten bei der Größenänderung Ihrer Divs sind darauf zurückzuführen. Ich würde raten, Ihre Anzeige zu ändern inline-block wie in der Antwort oben gesagt und vertikal durchrichten line-height
10559300cookie-checkWickeln Sie die gesamte Spanne in eine neue Zeile, wenn dies nicht passtyes