Quelqu'un peut-il m'aider s'il vous plaît à comprendre ce bug? Avec Firefox, cela fonctionne bien, mais avec Internet Explorer 7, ce n'est pas le cas. Il semble ne pas comprendre le display: inline-block;
.
html:
<div class="frame-header">
<h2>...</h2>
</div>
css:
.frame-header {
height:25px;
display:inline-block;
}
html
internet-explorer-7
css
Lanthuong
la source
la source
Réponses:
Le
display: inline-block;
hack IE7 est le suivant:Par défaut, IE7 ne prend
inline-block
en charge que lesinline
éléments naturels ( tableau de compatibilité Quirksmode ), vous n'avez donc besoin de ce hack que pour les autres éléments.zoom: 1
est là pour déclencher unhasLayout
comportement, et nous utilisons le hack de propriété star pour définir ledisplay
surinline
uniquement dans IE7 et les versions antérieures (les navigateurs plus récents ne l'appliqueront pas).hasLayout
etinline
ensemble va essentiellement déclencher uninline-block
comportement dans IE7, donc nous sommes heureux.Ce CSS ne validera pas et peut de toute façon rendre votre feuille de style foirée, donc utiliser une feuille de style uniquement IE7 via des commentaires conditionnels pourrait être une bonne idée.
la source
*zoom:1;
triger hasLayout. Il est donc plus clair que le*zoom
et*display
aller ensembleMettre à jour
Comme personne n'utilise plus IE6 et 7, je vais présenter une solution différente:
vous n'avez plus besoin d'un hack, car IE8 le prend en charge par lui-même
Pour ceux qui doivent prendre en charge ces navigateurs de l'âge de pierre avant IE8 (ce n'est pas que l'IE8 soit si vieux, trop toux ):
Pour le compte du contrôle de version d'IE, utilisez une classe conditionnelle dans la
<html>
balise comme Paul Irish déclare dans son articlePar cela, vous aurez différentes classes dans html-tag pour différents navigateurs IE
Le CSS dont vous avez besoin est le suivant
Cela validera et vous n'avez pas besoin d'un fichier CSS supplémentaire
Ancienne réponse
la source
inline-block
à l'frame-header
élément. Ou changerinline-block
parframe-header
les sélecteurs CSS.IE7 ne prend pas correctement en charge 'inline-block', plus d'informations ici: LINK
Use peut utiliser: 'inline' à la place.
Qu'essayez-vous de réaliser exactement? Faites-nous un exemple et mettez-le ici: http://jsfiddle.net/
la source
utiliser en ligne, il fonctionne avec ce type de sélecteurs pour les éléments de liste:
ou pour être précis:
la source
inline
n'est pas la même chose queinline-block
. Par exemple, leheight: 25px;
dans l'exemple ne prendra pas effet lorsque l'élément estinline
. De plus, la question ne dit rien sur les listes.