Spécifier left et right en css, donne une largeur par défa

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
hibou57
Gecko
Messages : 52
Inscription : 13 juin 2005, 16:55

Spécifier left et right en css, donne une largeur par défa

Message 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 ?
Nyro Xeo
Salamandre
Messages : 21
Inscription : 30 avr. 2005, 16:21

Message par Nyro Xeo »

Un exemple concret serait le bienvenu...
-={ Nyro Xeo }=-
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Re: Spécifier left et right en css, donne une largeur par d

Message 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.
« La vie d’un geek est un combat perpétuel contre l’imperfection »
hibou57
Gecko
Messages : 52
Inscription : 13 juin 2005, 16:55

Message 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
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message 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.
« La vie d’un geek est un combat perpétuel contre l’imperfection »
hdbx
Arias
Messages : 5
Inscription : 14 sept. 2005, 21:10

Message par hdbx »

et

div 1 float
div 2 position relative 0 0 ; margin 1em

code html
div1
div2
/div2
/div1

???
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité