Ich muss den folgenden Code mit vordefinierter Höhe dehnbar machen
<style>
.title{
background: url(bg.gif) no-repeat bottom right;
height: 25px;
}
</style>
<span class="title">This is title</span>
Da span jedoch ein Inline-Element ist, funktioniert die Eigenschaft "height" nicht.
Ich habe stattdessen versucht, div zu verwenden, aber es wird bis zur Breite des oberen Elements erweitert. Und die Breite sollte flexibel sein.
Kann jemand eine gute Lösung dafür vorschlagen?
Danke im Voraus.
Antworten:
Geben Sie es
display:inline-block
in CSS ein - das sollte es tun lassen, was Sie wollen.Im Hinblick auf die Kompatibilität: IE6 / 7 wird mit dieser Arbeit, wie Quirks - Modus schlägt vor:
quelle
inline-block
.Note: No versions of Internet Explorer (including IE8) support the property values "inline-table", "run-in", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-row", or "table-row-group".
IE 6/7 accepts the value only on elements with a natural display: inline.
span
Dann angewendet wird . Danke für die Info, Henasraf.Verwenden
Der einzige Trick ist die Browserunterstützung. Überprüfen Sie hier, ob Ihre Liste der unterstützten Browser Inline-Block verarbeitet .
quelle
Damit soll display: inline-block in allen Browsern funktionieren:
Wenn Sie im IE (6/7) hasLayout mit "zoom: 1" auslösen und dann die Anzeige auf Inline setzen, verhält es sich merkwürdigerweise wie ein Inline-Block.
quelle
Angenommen, Sie möchten es nicht zu einem Blockelement machen, dann könnten Sie versuchen:
Aber die einfachste Lösung ist, einfach zu behandeln die
.title
als Block-Level - Element, und mit den entsprechenden Überschriften - Tags<h1>
durch<h6>
.quelle
Spanne
{ display: table-cell; height: (your-height + px); vertical-align: middle; }
Damit Bereiche wie eine Tabellenzelle (oder ein anderes Element) funktionieren, muss die Höhe angegeben werden. Ich habe Spannweiten eine Höhe gegeben, und sie funktionieren einwandfrei - aber Sie müssen die Höhe hinzufügen, damit sie tun, was Sie wollen.
quelle
Eine andere Möglichkeit ist natürlich die Verwendung von Javascript (Jquery hier):
quelle
Warum brauchen Sie in diesem Fall eine Spanne? Wenn Sie die Höhe stylen möchten, können Sie einfach ein div verwenden? Sie könnten ein div mit versuchen
display: inline
, obwohl dies das gleiche Problem haben könnte, da Sie tatsächlich das gleiche tun würden wie eine Spanne.quelle