Warum sind inline-block-Elemente nicht richtig angezeigt im Internet Explorer 8?
Ich habe den folgenden code:
<div style='width: 200px; border: 1px solid black;'>
<div style='display: inline-block; width: 70px; border: 1px solid green;'>
asdfasdf<br />asdf
</div>
<div style='display: inline-block; width: 70px; border: 1px solid green;'>
asdfasdf<br />were
</div>
</div>
Zeigt Prima in Firefox und Chrome, aber im Internet Explorer 8 nicht. Sie haben layout, so dass ist nicht das problem, die breiten sind klein genug, dass es passt auf eine Zeile.
Wenn ich <span>
s anstelle, es funktioniert, aber ich würde wirklich gerne wissen, warum <div>
s nicht im IE funktioniert.
- Hat dein Dokument eine doctype-Deklaration?
- Was meinst du mit "funktioniert es nicht?" Was ist den gewünschten Effekt zu erzielen?
- Ahhh ok naja ich hatte HTML 4 deklariert, da es ein extrem alten Seite anstelle von XHTML oder HTML5
- HTML5-doctype degradiert anmutig in älteren Browsern. Dein Beispiel sieht das gleiche in der neuesten chrome und ie8.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den alten IE-Versionen nicht verstehen, die
inline-block
für block-level-Elemente.Der Grund, warum
inline-block
funktioniert der inline-Elemente ist da, Sie Tat es, so löst eshasLayout
. Und der hat das layout für die inline-Elementen funktioniert genau wie eininline-block
.Also, um
inline-block
Arbeit mit block-level-Elemente, machen die inline-und irgendwie auslösenhasLayout
, wie, mitzoom: 1
.Also, für die Sie code, gibt es zwei Möglichkeiten: ändern Sie
div
s zuspan
s, oder fügen Sie inline-hacks (oder verschieben Sie den code, um externe stylesheets und verwenden Sie bedingte Kommentare). Die version mit inline-hacks würde wie folgt Aussehen:display: inline-block;
*zoom: 1;
*display: inline;
können Sie fügen Sie inline-block für andere browser, aber für DH Sie können Stil hinzufügen, mit *. es funktioniert nur im ie
Änderung der doc-Typ arbeitete für IE
IE < 8 nicht-Schalter-Elemente, die
block
standardmäßiginline-block
Elemente. Egal wie hart Sie versuchen, Sie wird immer bleibenblock
es sei denn, Sie verwendenfloat
IIRC.In deinem Beispiel scheint es, dass Sie nicht brauchen, um eine
<div>
. Wenn dies der Fall ist, warum nicht ein<span>
oder ein element, dasinline
standardmäßig. Ansonstenfloating
ist die Antwort.inline-block
ich update meine Antwort.Versuchen, diese