Pourcentage élément enfant largeur parent absolument positionné sur Internet Explorer 7

voix
249

J'ai une position absolue divcontenant plusieurs enfants, dont l'un est une position relative div. Lorsque j'utilise une largeur en fonction du pourcentage de l'enfant div, il se réduit à « 0 » width sur Internet Explorer 7 , mais pas sur Firefox ou Safari.

Si j'utilise la largeur de pixel , cela fonctionne. Si le parent est relativement positionné, la largeur de pourcentage sur l'enfant travaille.

  1. Y at-il quelque chose que je manque ici?
  2. Y at - il une solution facile pour ce en plus de la largeur à base de pixels sur l'enfant?
  3. Y at-il une zone de la spécification CSS qui couvre cela?
Créé 31/07/2008 à 23:08
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
129

Le parent divdoit avoir un sens width, que ce soit en pixels ou en pourcentage. Dans Internet Explorer 7, le parent a divbesoin d' une définition widthpour le pourcentage des enfants divde fonctionner correctement.

Créé 01/08/2008 à 13:22
source utilisateur

voix
53

Voici quelques exemples de code. Je pense que c'est ce que vous recherchez. Les écrans suivant exactement les mêmes dans Firefox 3 (Mac) et IE7.

#absdiv {
  position: absolute; 
  left: 100px; 
  top: 100px; 
  width: 80%; 
  height: 60%; 
  background: #999;
}

#pctchild {
  width: 60%; 
  height: 40%; 
  background: #CCC;
}

#reldiv {
  position: relative;
  left: 20px;
  top: 20px;
  height: 25px;
  width: 40%;
  background: red;
}
<div id="absdiv">
    <div id="reldiv"></div>
    <div id="pctchild"></div>
</div>

Créé 05/08/2008 à 06:54
source utilisateur

voix
34

IE avant 8 présente un aspect temporel à son modèle de boîte que notamment crée un problème avec des largeurs en fonction de pourcentage. Dans votre cas ici un absolument positionné divpar défaut n'a pas la largeur. Sa largeur sera élaboré en fonction de la largeur de pixel de son contenu et sera calculé après le contenu sont rendus. Donc , au point IE rencontre et rend votre position relative divson parent a une largeur de 0 donc pourquoi elle s'effondre à 0.

Si vous souhaitez une discussion plus en profondeur de ce long avec beaucoup d'exemples de travail, ont un coup d' oeil ici .

Créé 04/09/2008 à 10:02
source utilisateur

voix
30

Pourquoi ne pas l'enfant de la largeur du pourcentage de travail parent placé de façon absolue IE7?

Parce qu'il est Internet Exploder

Y at-il quelque chose que je manque ici?

C'est, d'augmenter votre collègue de / sensibilisation clients que IE suce.

Y at-il une solution facile en plus de la largeur à base de pixels sur l'enfant?

Utilisez des emunités car ils sont plus utiles pour créer des layouts liquides que vous pouvez les utiliser pour le remplissage et les marges ainsi que la taille des polices. Ainsi , votre espace blanc augmente et diminue proportionnellement à votre texte si elle est redimensionnée ( ce qui est vraiment ce que vous avez besoin). Je ne pense pas que les pourcentages donnent un contrôle plus fin que ems; il n'y a rien pour vous empêcher de spécifier en centièmes de ems (0,01 em) et le navigateur interprétera comme il l'entend.

Y at-il une zone de la spécification CSS qui couvre cela?

Aucun, pour autant que je me souviens em« s et% » s étaient destinés à des tailles de police seul retour au CSS 1.0.

Créé 13/05/2009 à 08:47
source utilisateur

voix
28

Je pense que cela a quelque chose à voir avec la façon dont la hasLayoutpropriété est mis en œuvre dans le navigateur plus ancien.

Avez - vous essayé votre code IE8 pour voir si les travaux là - dedans aussi? IE8 a une Debugger ( F12) et peut également fonctionner en mode IE7.

Créé 22/10/2010 à 17:21
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more