Ich habe zwei Kinder divs 20% und 80%. Der letzte enthält verschachtelte span
s und im Falle, dass Text nicht in dieselbe Zeile passt, wird er in der nächsten Zeile um ein einzelnes Wort verschoben (Standardverhalten).
HTML:
%Vor%CSS:
%Vor%Aber ich muss das nächste Ergebnis erzielen, wenn der Text in der Spanne nicht in die Zeile passt und die gesamte Spanne in die nächste Zeile verschoben wird.
Ich habe es schon versucht:
%Vor% Dies verschiebt den Text nicht in die nächste Zeile, sondern macht zuerst div
kleiner, um freien Platz für Text zu erhalten. Dies ist kein wünschenswertes Verhalten.
Und ich möchte erreichen:
Ist es möglich, ein solches Ergebnis nur mit CSS zu erzielen?
Das <span>
-Tag ist standardmäßig inline, sodass der darin enthaltene Text beim Umbrechen unterbrochen wird. Sie können es auf display: inline-block
setzen, so dass es als gesamter Block auch inline-Ebene bleibt. Beachten Sie, dass das Umbrechen immer noch möglich ist, jedoch nur, wenn die Textlänge den übergeordneten Container überschreitet.
display: inline-block
Das Element generiert ein Blockelementfeld, das mit dem umgebenden Inhalt wie mit einer einzelnen Inline-Box geflossen ist (ähnlich wie ein ersetztes Element) - MDN
Und für das Layout, das Sie erreichen möchten, können Sie den Text "Mehr lesen" in ein <a>
-Tag einfügen und den Button-Link-Stil anstelle der Tabellenzelle festlegen, siehe die aktualisierte Demo unten.
Sie werden vielleicht feststellen, dass dieselbe margin
gegeben ist, aber der Abstand links / rechts und der Abstand oben / unten im Beispiel nicht identisch ist. Folgen Sie dazu diesen Beitrag , wenn Sie es Pixel perfekt brauchen.
AKTUALISIEREN
Es gibt einen besseren Weg dazu, nämlich CSS3 flexbox , schau dir den Ausschnitt unten an.
Tags und Links html css css3 responsive-design