Frage
Mit CSS, ich versuche, die Höhe eines SPAN-Tags in Firefox zu geben, aber es ist einfach zu akzeptieren es nicht (IE tut, komischerweise).
Firefox nimmt die Höhe, wenn ich einen DIV verwenden, aber das Problem mit einem DIV mit dem lästigen Zeilenumbruch, nachdem sie, was ich nicht in diesem speziellen Fall haben kann.
Ich habe versucht, das CSS-Stil-Attribut festlegen:
display: inlinefür das DIV, aber Firefox scheint dann trotzdem SPAN Verhalten wiederherzustellen, und ignoriere die Höhe noch einmal Attribut
.
Lösung
<style>
#div1 { float:left; height:20px; width:20px; }
#div2 { float:left; height:30px; width:30px }
</style>
<div id="div1">FirstDiv</div>
<div id="div2">SecondDiv</div>
Solange der Behälter für was auch immer hält divs 1 und 2 ist breit genug, um für sie zu passen, dies sollte in Ordnung sein.
Andere Tipps
Sie können ein beliebiges Element display: inline-block
es zu ermöglichen, eine Höhe oder Breite zu erhalten. Auf diese Weise können Sie auch alle anderen „Block Stile“ auf ein Element anzuwenden.
Eine Sache, vorsichtig zu sein, aber, ist, dass Firefox 2 nicht diese Eigenschaft nicht unterstützt. Firefox 3 ist der erste Mozilla-basierte Browser, um diese Eigenschaft zu unterstützen. Alle anderen Browser unterstützt diese Eigenschaft, einschließlich Internet Explorer.
Beachten Sie, dass inline-block
Sie nicht erlauben, auf Firefox innerhalb des Elements Textausrichtung festlegen, wenn im Quirks-Modus ausgeführt wird. Alle anderen Browser erlauben dies, soweit ich weiß. Wenn Sie Text-Ausrichtung festlegen möchten, während im Quirks-Modus ausgeführt wird, werden Sie die Eigenschaft -moz-inline-stack
statt inline-block
verwenden. Denken Sie daran, dies ist ein Mozilla-Unterkunft, die nur so dass Sie einige Browser-Erkennung, um sicherzustellen, nur Mozilla wird dies werde zu tun haben, während andere Browser den Standard inline-block
erhalten.
Inline-Elemente können nicht haben Höhen (noch Breiten) ähnlich. Span ist bereits standardmäßig display: inline
. Internet Explorer ist eigentlich der gebrochene Browser in diesem Fall.
Da Sie es inline sind Anzeigen, sollte die Höhe auf der Höhe Ihrer line-height-Attribut gesetzt werden.
Je nachdem, wie es angelegt, könnte man immer float: left oder float: direkt an der Spanne / div den Zeilenumbruch zu verhindern. Aber wenn Sie es in der Mitte eines Satzes wollen, ist diese Option aus.
Das Problem ist, dass ‚display: inline‘ kann keine Höhe, weil zugeordnet bekommen, Inline sein, es wird seine Höhe von seinem Inhalt. Wie auch immer, wie definieren Sie die Höhe einer Box, die am Ende einer Linie gebrochen wird?
Sie könnten versuchen, ‚line-height‘ zu setzen stattdessen oder, wenn dies zu Ihrer Zufriedenheit funktioniert nicht, stellen Sie eine padding:
/* makes the whole box higher by inserting a space between the border and the content */
padding: 0.5em 0;
Sie können nur die Höhe ändern (und Breite) ein span-Elements, wenn es um display: block;
gesetzt. Dies ist, weil es ein Inline-Element ist in der Regel. div
wird normalerweise auf display: block;
.
könnte eine Lösung zu verwenden sein:
<div style="background: #f00;">
Text <span style="padding: 14px 0 14px 0; background: #ff0;">wooo</span> text.
</div>
Zur Höhe der Spanne eingestellt folgenden soll in Firefox funktioniert
span {
display: block;
height: 50px;
}
Textausrichtung innerhalb des Elements Sie anpassen können, um die Polsterung und Block-Inline-Attribute verwenden. Anzeige: inline-Block; padding-top: 3px; zum Beispiel
height
in em
= relative line-height
zum Beispiel height:1.1em
mit line-height:1.1
= 100% gefüllt