2010-11-28 10 views
3

Nous savons tous que la mise en page élastique « em » valeur pour un objet donné est par rapport à la mère de l'objet, par exemple:Comment faire un Hériter DIV il est « em » valeur de son parent de parent

<div id="div1" style="font-size:1em;">
<p>Hello</p>
<div id="div2" style="font-size:0.5em;">
<p>Hello</p>
<div id="div3" style="font-size:0.5em;">
<p>Hello</p>
</div>
</div>
</div>

Mais est-il possible de faire une valeur, il est subordonné DIV « reset » em ou d'obtenir la valeur d'un parent plus haut dans la chaîne?

Fondamentalement, j'ai quelques DIVs imbriqués, et je veux que l'un des intérieurs utilise la valeur em du document. Utiliser 1em n'est pas bon, car l'un des parents de la DIV utilise déjà une valeur fractionnaire.

Merci à l'avance

Simon

Répondre

4

Non, ce n'est pas le cas. Les tailles de police définies avec l'unité em sont explicitement relatives à la taille de police de l'élément parent. Le plus proche, vous pouvez venir est de connaître tous les changements et de tenir compte de cela lors du calcul.

par exemple. puisque le # div2 a une taille de police de 0.5em, pour faire # div3 ont la même taille de la police en tant que # Div1 vous devez définir font-size: 2em

Autres longueurs (avec comme width valeurs) sont liés à de l'élément courant taille de police, et vous auriez à faire des calculs similaires pour ceux-ci.

+0

Merci David. C'est ce que je pensais. J'espérais éviter d'avoir à effectuer des calculs réciproques. Votez ++ et répondez. –

0

Vous voudrez peut-être reconsidérer l'utilisation des classes CSS au lieu de styles, car cela résoudra votre problème. Y at-il une raison pour laquelle vous utilisez le style au lieu d'une classe CSS?

<div id="div1"> 
<p class="font1em">Hello</p> 
<div id="div2"> 
<p class="fonthalfem">Hello</p> 
<div id="div3"> 
<p class="fonthalfem">Hello</p> 
</div> 
</div> 
</div> 
+0

Je ne pense pas qu'il y ait une différence si 'font-size' est défini en utilisant des styles d'éléments ou des classes css. La taille de la police exprimée dans 'em's est relative dans les deux cas. – Athari

+0

Merci Eric. L'exemple ci-dessus était juste pour démontrer le problème; J'utilise généralement des cours. Comme l'a dit Athari, le problème demeure! –

+0

Je dis que changer le processus de pensée d'essayer de faire quelque chose hériter d'un parent.parent.parent .. etc etc qui ne fonctionne pas, juste en utilisant une classe CSS qui a la taille que vous voulez sur la DIV que vous voulez. –