2012-04-08 13 views
1

Es gibt einen einfachen CSS3-Hack, um   an den Inhalt eines divs anzuhängen, um zu verhindern, dass es in der Höhe kollabiert, unabhängig davon, ob es Text enthält oder nicht. Ich kann es einfach nicht wieder finden.Eine CSS3-Eigenschaft fehlt, was ist das?

Kann jemand bitte helfen?

<div></div> <!-- nothing in it = will collapse -->

<div>&nbsp;</div> <!-- still nothing in it but with &nbsp; appended it won't collapse -->

<div>SOME CONTENT&nbsp;</div> <!-- "SOME CONTENT" is added via JS; -->

+1

Ich glaube, Sie suchen etwas wie ' div: after {content: ""} 'aber Kolinks Antwort ist eine viel bessere und kompatiblere Lösung. – animuson

Antwort

3

Sie sprechen vielleicht über :after und :before Pseudo-Elemente und die content Eigenschaft.

Aber warum nicht min-height wie Kolink vorgeschlagen verwenden?

Edit: Wie in den Kommentaren darauf, diese als Text anhängt, so dass die Lösung ist, die Unicode-Darstellung als entkam Sequenz zu verwenden:

#someId:after { 
    content: '\0000a0'; 
} 
+0

Damit wird der String " " an das Ende angehängt. CSS-angehängter Text wird nicht als HTML verarbeitet, daher werden HTML-Entitäten auch nicht verarbeitet. – animuson

+2

Sie haben Recht, aber es zeigt, wie es geht, oder? Sie müssen es nur in ein Escape-Unicode-Zeichen ändern: '\ 0000a0' – rcdmk

+0

Die Schriftgröße wird dynamisch berechnet, und es kann zu einer Lücke nach oben kommen. Auch Ihre Lösung bewirkt, dass das Zeichenfolgenliteral ' ' erscheint, zumindest bei Opera. –

0

CSS ist nicht zulassen, dass nur Inhalte in HTML-Tags hinzufügen. Das wäre einfach falsch.

Allerdings können Sie dies tun:

min-height: 1em; 

Dadurch wird sichergestellt, dass die div immer mindestens eine Zeile hoch ist, kollabiert daher nicht, wenn es keinen Inhalt.

+2

Ich bin widerwillig, dies wegen des ersten Satzes zu verbessern. : x – animuson

+0

Auch 1em ist die Breite des m Glyph in der aktuellen Schriftgröße. Wenn Ihre Zeilenhöhe auf 1em eingestellt ist, entspricht sie "einer Zeile", andernfalls wird nur die minimale Höhe auf die Breite des m gesetzt. – MetalFrog