Page 1 sur 1
Spécifier left et right en css, donne une largeur par défa
Publié : 19 oct. 2005, 22:49
par hibou57
Il est bien connu qu'en ccs, il faut éviter de spécifier ensemble les positions left et right, car cela peut provoquer un conflit avec lar largeur également spécifiée. Dans ce cas, c'est le navigateur qui tranche, et le résultat n'est donc pas prévisible.
Mais j'ai remarqué que si je donne left et right, sans pourtant donner width, alors sous FireFoxe et InternetExplorer, le résultat est le même : les deux donne à la boite une largeure par défaut, égale au contenu de la boite!
Pire même, FireFox modifie même la hauteur de la boite (en l'augmentant), ce que InternetExplorer ne fait pas.
Quelqu'un connait ce phénomène ?
Publié : 20 oct. 2005, 10:08
par Nyro Xeo
Un exemple concret serait le bienvenu...
Re: Spécifier left et right en css, donne une largeur par d
Publié : 20 oct. 2005, 10:27
par Bobe
hibou57 a écrit :Il est bien connu qu'en ccs, il faut éviter de spécifier ensemble les positions left et right, car cela peut provoquer un conflit avec lar largeur également spécifiée. Dans ce cas, c'est le navigateur qui tranche, et le résultat n'est donc pas prévisible.
Il est tout à fait prévisible, l’algorithme de calcul est détaillé au chapitre 10 de la recommandation:
http://www.yoyodesign.org/doc/w3c/css2/ ... aced-width
Ici, on sera confronté à la règle n°7 et la propriété
right doit être ignorée.
Publié : 20 oct. 2005, 13:28
par hibou57
J'ai vérifié, si je cré une boite en position absolue, je peux donné left et right, si je ne donne pas la largeur, car alors la largeur sera auto. Cela est conforme aux règles que tu donne, et j'ai essayé, ça fonctionne. Il est donc bien possible de fournire left et right, si on ne donne pas width.
Le problème est que je voudrais faire cela, avec une boite qui ne serait pas en absolute.
Le plus simple et que je donne une exemple.
Code : Tout sélectionner
+-------------------------------------------------+
| Boite 1 |
| +-------------------------------------------+ |
| | Boite 2 | |
| +-------------------------------------------+ |
| |
+-------------------------------------------------+
|--| 1em 1em |--|
La boite 1 est en float.
Je voudrais que la boite 2 incluse dans la boite 1, soit positionné dans la boite 1, et que sa marge droite soit à un em du bord de la boite 1, et idem pour la marge gauche.
J'y arrive avec une boite en positions absolues incluyse dans body, mais si je fais la même chose en incluant la boite dans une autre boite en float, alors ça ne marche plus.
Si je met la boite 2 en absolute, elle n'est plus positionné dans la boite 1.
S'il n'y a pas de solutiions, c'est pas grave, je touverai autre chose...
Merci quand même
Publié : 20 oct. 2005, 13:41
par Bobe
Le calcul de positionnement absolu des boîtes se fait toujours par défaut par rapport à l’élément racine (<html/>), sauf si le bloc conteneur (ici la boîte 1) est en position relative. Dans ce cas, le positionnement absolu des boîtes descendantes de boîte 1 se fait par rapport à celle-ci.
Par contre, je ne peux pas confirmer si une boîte peut flotter et être en position relative.
Publié : 28 oct. 2005, 12:45
par hdbx
et
div 1 float
div 2 position relative 0 0 ; margin 1em
code html
div1
div2
/div2
/div1
???