2009-10-08 4 views
0

J'ai un fieldset à l'intérieur d'un fieldset. Chaque type de fieldset change de couleur lorsque survolé. Fonctionne bien dans Firefox, mais dans IE8 et IE8 en mode compat IE7, lorsque je survole le fieldset enfant, il saute (il semble que certains padding sont supprimés, mais ce n'est pas ce que mon css dit). Est-ce que quelqu'un peut m'aider à comprendre comment empêcher l'effet jumpy dans IE? Pourquoi le fieldset enfant saute-t-il en survolant, mais pas le fieldset parent?Empêche le jeu de paramètres jumpy en survolant IE8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <style type="text/css"> 
     fieldset.property { background-color: #EDF5FF; } 
     fieldset.property:hover { background-color: #C1DDFF; } 
     fieldset.service:hover { background-color:#EDF5FF; } 
    </style> 
</head> 
<body> 
    <fieldset class="property"> 
     Parent fieldset<br /> 
     Parent fieldset<br /> 
     Parent fieldset<br /> 
     <fieldset class="service"> 
      Child<br /> 
      Child<br /> 
      Child<br /> 
     </fieldset> 
     Parent fieldset<br /> 
     Parent fieldset<br /> 
     Parent fieldset<br /> 
    </fieldset> 
</body> 

Répondre

3

moi aussi, je suis pas sûr exactement pourquoi IE traite les éléments enfants de cette façon, mais en définissant plus précisément le rembourrage et souvent, les marges ainsi, thi s peut être évité.

fieldset {margin: 0; padding: 0;}

+0

Quelqu'un sait si cela est considéré comme un bug dans IE ou est-ce par conception? – slolife

+0

Je ne considérerais pas cela comme un bug. Chaque navigateur rend les marges et le remplissage différemment. En définissant une valeur spécifique pour les deux attributs, chaque navigateur sera rendu selon le CSS. – Slevin

+0

Différents padding/marges ne sont pas un bug. C'est bon pour moi, et je vais apprendre à utiliser un reset css dans le futur. Le fieldset enfant sautillant sur hover semble être un bug IMO. En tout cas, merci pour l'aide – slolife

0

Je ne sais toujours pas pourquoi IE8 rend l'enfant nerveux, mais je trouve la solution:

Si j'ajoute un style à définir explicitement le rembourrage sur un fieldset, fieldset reste le même quand plané au-dessus:

/* Add to make rendering in IE and Firefox the same /* 
fieldset { padding:2px; } 
Questions connexes