28173 sujets

CSS et mise en forme, CSS3

Bonjour,

Est-ce que ça vous dit quelque chose ce problème :


<div id="conteneur">
 <h3>titre</h3>
</div>


et quand on applique une marge à h3, au lieu de s'appliquer à h3, elle s'applique à #conteneur ?

C'est ce qui m'arrive (précision : dans mon cas #conteneur est dans un div qui flotte).

Merci d'avance pour vos retours d'expérience Smiley smile

Kephren
C'est normal, c'est le résultat de la fusion des marges des deux éléments. Extrait d'une traduction de la spécification CSS2 :

a écrit :
Les marges verticales de deux boîtes, ou plus, d'éléments de type bloc, placés dans un flux normal fusionnent. La largeur de la marge finale devient la valeur la plus grande entre celles des marges adjacentes. Dans le cas de marges négatives, on soustrait la plus grande des valeurs des marges négatives adjacentes, en valeur absolue, de la plus grande des marges positives adjacentes. Et s'il n'y pas de marges positives, on déduit de zéro la plus grande des marges négatives, en valeur absolue. Note : Les boîtes adjacentes peuvent être générées par des éléments sans liens de parenté, liens du même degré ou d'ascendance-descendance ;


Une bordure sur l'enfant ou un padding sur le conteneur permet d'éviter cette fusion au prix d'un minimum d'un pixel de décalage.
Modifié par Lanza (10 Mar 2006 - 12:31)
Lanza a écrit :
Une bordure sur l'enfant ou un padding sur le conteneur permet d'éviter cette fusion au prix d'un minimum d'un pixel de décalage.


Ok. Merci pour l'info. Maintenant je vais me gratter la tête pour savoir comment éviter ce pixel de décalage Smiley cligne

K