[CSS & DIV] Problème de placement

Problème de placement [CSS & DIV] - HTML/CSS - Programmation

Marsh Posté le 28-03-2003 à 09:46:43    

Je débutte dans l'utilisation des div et je voulais faire un exercice tout bête, à savoir faire une page dans ce modèle là:
 

Code :
  1. ______________________________
  2. |         div1               |
  3. ------------------------------
  4. |d |                         |
  5. |i |      div3               |
  6. |v |                         |
  7. |2 |                         |
  8. ------------------------------


 
le tout étant centré dans la page. Je suis arrivée à placer correctement les div1 et 2 en utilisation le position:relative par rapport à la page.
 
malheureusement, pour la 3e, ca bloque. si j'utilise le position relative par rapport à la div2, il vient trop bas. si je le mets en position:absolute par rapport à la page, j'ai des décallage.
 
Alors d'une part, comment faire pour placer correctement mes div? et d'autre part, est-ce que mon code est correct? (autant faire juste dès le départ). Merci de votre aide.
 
voici le code:

Code :
  1. <html>
  2. <head>
  3. <title>Test DIV</title>
  4. <style type="text/css">
  5. #MenuTop {position:relative; left:50%; margin-left:-390; width:780; height:50; background-color:BLUE;}
  6. #MenuLeft {position:relative; left:50%; margin-left:-390; width:150; height:300; background-color:RED;}
  7. #MenuMain {position:relative; left:50%; margin-left:-240; width:300; height:500; background-color:GREEN;}
  8. </style>
  9. </head>
  10. <body>
  11. <div ID="MenuTop">lakdjsf</div>
  12. <div ID="MenuLeft">lakdjsf</div>
  13. <div ID="MenuMain">lakdjsf</div>
  14. </body>
  15. </html>


Message édité par urd-sama le 28-03-2003 à 09:47:58

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 09:46:43   

Reply

Marsh Posté le 28-03-2003 à 09:53:09    

tu devrais ajouter un margin-top:-300 dans la définition de ton 3è div ;)
 
sinon j'aurais écrit les styles comme ceci:
 

Code :
  1. div.MenuTop  {position:relative; left:50%; margin-left:-390; width:780; height:50; background-color:BLUE; align:center;}
  2. div.MenuLeft {position:relative; left:50%; margin-left:-390; width:150; height:300; background-color:RED;}
  3. div.MenuMain {position:relative; left:50%; margin-left:-240; width:300; height:500; margin-top:-300 ; background-color:GREEN;}


 
et les div comme cela:

Code :
  1. <div class="MenuTop">lakdjsf</div>
  2. <div class="MenuLeft">lakdjsf</div>
  3. <div class="MenuMain">lakdjsf</div>


Message édité par drasche le 28-03-2003 à 09:53:29

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-03-2003 à 09:54:28    

bof, je prefere avec les id moi.
pas besoin d'une classe quand ca concerne un seul élement.
 
par contre, les attributs en minuscules, c'est mieux

Reply

Marsh Posté le 28-03-2003 à 09:56:22    

drasche a écrit :

tu devrais ajouter un margin-top:-300 dans la définition de ton 3è div ;)


oui c'était ca, merci, c'était tout bête en fait  
j'ai hésité à utiliser la class ou l'id, j'ai opté pour l'id car ces div seraient uniques. dans quel cas peut-on utiliser id plutot que class?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 09:56:37    

les id, je les garde pour JavaScript [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-03-2003 à 09:57:34    

drasche a écrit :

les id, je les garde pour JavaScript [:spamafote]


ouais c'est juste
et que l'on mette div.MenuTop ou .MenuTop ca revient au meme'


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 09:59:45    

Urd-sama a écrit :


ouais c'est juste
et que l'on mette div.MenuTop ou .MenuTop ca revient au meme'


en effet, mais je préfère les préfixer par réflexe d'organisation :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-03-2003 à 10:00:57    

drasche a écrit :


en effet, mais je préfère les préfixer par réflexe d'organisation :D


ouais c'est pas mal comme système. merci du tuyau  :)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 10:02:21    

drasche a écrit :

les id, je les garde pour JavaScript [:spamafote]


je vois pas le rapport.
les id c'est pour identifier un élement, que ce soit pour les css ou le javascript.
 
par contre, ok pour le préfixage.
 
j'aime bien
div#monMenu {
...
}

Reply

Marsh Posté le 28-03-2003 à 10:03:06    

lorill a écrit :


les id c'est pour identifier un élement, que ce soit pour les css ou le javascript.


alors dans mon cas, plutot class ou plutot id?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 10:03:06   

Reply

Marsh Posté le 28-03-2003 à 10:05:32    

Urd-sama a écrit :


alors dans mon cas, plutot class ou plutot id?


ben id. tu vas pas avoir plusieurs MenuTop dans la même page, surtout que tu mets le placement dans le style.
 
class c'est plus quand t'as un style plus général qui s'applique a plusieurs élements.  

Reply

Marsh Posté le 28-03-2003 à 10:15:16    

lorill a écrit :


class c'est plus quand t'as un style plus général qui s'applique a plusieurs élements.  


c'est précisément pour cette raison que j'emploie systématiquement class.  J'avoue qu'en fait, j'ignorais que id servait d'identifiant de style :whistle:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-03-2003 à 10:34:42    

drasche a écrit :

c'est précisément pour cette raison que j'emploie systématiquement class.  J'avoue qu'en fait, j'ignorais que id servait d'identifiant de style :whistle:


Disons, que c'est sémantiquement plus correct. Si tu as un bandeau en haut de ta page, c'est un bonne chose de l'identifier de manière car tu donnes du sens à ton document.
 
Sinon Urd-Sama, ta méthode fonctionne, mais elle risque de s'avérer compliquée à l'usage si tu ajoutes des éléments. Personnellement, je ferais les choses comme ça :
 


<div id="main">
    <div id="menuTop"></div>
    <div id="menus">
        <div id="menuLeft"></div>
        <div id="menuMain"></div>
    </div>
</div>
 
div#main {
  width: 780px;
  margin-left: auto;
  margin-right: auto;
}
 
div#menuTop {
  height: 50px;
  background-color: blue;
}
 
div#menuLeft {
  float: left;
  height: 300px;
  width: 150px;
  background-color: red;
}
 
div#menuMain {
  float: left;
  height: 500px;
  width: 300px;
  background-color: green;
}


 
Et pense à mettre des unités à tes longueurs, sinon, tu vas avoir des surprises avec Mozilla ;)


Message édité par gm_superstar le 28-03-2003 à 10:34:58

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 28-03-2003 à 10:52:54    

gm_superstar a écrit :


[...]
Et pense à mettre des unités à tes longueurs, sinon, tu vas avoir des surprises avec Mozilla ;)


oui je vais rajouter les unités.
pour ta solution, je l'avais vue dans la FAQ, mais il me semblait que celle que j'utilise était valable sur + de browser que la tienne. Mais c'est vrai que c'est beaucoup + simple...
pour l'id, je vais remettre ce que j'avais mis au départ alors  :)


Message édité par urd-sama le 28-03-2003 à 10:53:39

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 11:02:59    

est-ce que l'on peut utiliser des iframe ou c'est pas bien?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 12:45:33    

Urd-sama a écrit :

est-ce que l'on peut utiliser des iframe ou c'est pas bien?


IE est le seul à les gérer je crois.  Est-ce toujours bien d'actualité?  Si oui, c'est pas bieng effectivement.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-03-2003 à 12:46:46    

drasche a écrit :


IE est le seul à les gérer je crois.  


non. mais c'est pas bien quand même

Reply

Marsh Posté le 28-03-2003 à 12:55:02    

lorill a écrit :


non. mais c'est pas bien quand même


tu as des précisions pourquoi?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 12:56:16    

Urd-sama a écrit :


tu as des précisions pourquoi?


euh. je me souviens d'avoir lu gm dire que c'était pas bien, ca me suffit [:ddr555]

Reply

Marsh Posté le 28-03-2003 à 13:17:18    

gm_superstar a codé :



<div id="main">
    <div id="menuTop"></div>
    <div id="menus">
        <div id="menuLeft"></div>
        <div id="menuMain"></div>
    </div>
</div>
[..]




tu ne m'as pas mis le style de l'id de "menus", il contiendrait quoi?


Message édité par urd-sama le 28-03-2003 à 13:17:35

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 13:32:16    

Urd-sama a écrit :

tu as des précisions pourquoi?


Problème d'accessibilité, de référencement, marche pas avec NS 4...
 
Enfin ça dépend ce que tu veux faire avec, mais souvent les frames peuvent être remplacées avantageusement par des includes coté serveur (avec php, asp ou les SSI d'apache...)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 28-03-2003 à 13:33:27    

gm_superstar a écrit :


peuvent être remplacées avantageusement par des includes coté serveur (avec php, asp ou les SSI d'apache...)


c'est ce que je pensais, donc si on veut faire une applic sans serveur, plutot iframe, sinon on oublie


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 13:33:37    

Urd-sama a écrit :

tu ne m'as pas mis le style de l'id de "menus", il contiendrait quoi?


Ben rien [:spamafote]
 
Je sais pas ce que tu veux faire avec ce design mais a priori si tu mets des infos à droite de MenuMain elles viendront se mettre dans ce DIV.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 28-03-2003 à 13:34:37    

Urd-sama a écrit :

c'est ce que je pensais, donc si on veut faire une applic sans serveur, plutot iframe, sinon on oublie


Et puis le tag <iframe> n'existe plus dans les dernière versions du XHTML (remplacé par <object> )


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 28-03-2003 à 13:34:45    

gm_superstar a écrit :


Je sais pas ce que tu veux faire avec ce design mais a priori si tu mets des infos à droite de MenuMain elles viendront se mettre dans ce DIV.


c'est pas centré sur ie 5,5 c'est normal?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 28-03-2003 à 13:38:58    

Urd-sama a écrit :

c'est pas centré sur ie 5,5 c'est normal?


Oui, ce c*n de IE 5.5 ne reconnait margin: auto;
 
Ajoute :
 

body {
  text-align: center;
}


 
et à div#main :
 

text-align: left;


 
Enfin tout ça est expliqué dans la FAQ ;)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 28-03-2003 à 13:41:28    

gm_superstar a écrit :


Oui, ce c*n de IE 5.5 ne reconnait margin: auto;
[...]
Enfin tout ça est expliqué dans la FAQ ;)


merci, tout est nickel. je n'avais trouvé que la solution qui centrait tout, y compris le texte (je devais pas avoir tout lu la FAQ)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 31-03-2003 à 14:32:25    

gm_superstar a écrit :


Et puis le tag <iframe> n'existe plus dans les dernière versions du XHTML (remplacé par <object> )


et est-ce une bonne idée d'utiliser ce object? ou non recommandé?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 31-03-2003 à 16:31:47    

<object> c'est mieux car c'est plus standard (dans les dernières normes iframe a disparu). Par contre je crois qu'IE dessine toujours un cadre autour de <object> qu'il est impossible d'enlever... A toi de voir donc.
 
La syntaxe pour object :
 

<object data="document.html" type="text/html">
Un texte à afficher au cas où document.html n'aurait pu être inclu
</object>


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 31-03-2003 à 16:34:31    

merci beaucoup  :jap:


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 08-04-2003 à 10:42:30    

je prends ce topic concernant un deuxième problème de placement de css.
 
Cas:

Code :
  1. +---------------+
  2. |       1.1     |
  3. +---------------+
  4. +-----+--+------+
  5. | 2.1 | 3|  2.2 |
  6. +-----+--+------+
  7. +---------------+
  8. |       1.2     |
  9. +---------------+


1:  div.center {text-align: center;}
2:  div.moitie {float: left; width: 47%;}
3:  div.espace {float: left; width: 6%;}
 
Première question: est-ce que le 3, qui sert à créer un espace entre les 2 div de type 2 (qui contiennent du texte) est supprimable? j'ai essayer de mettre des margin-left et margin-right aux div2, mais cela ne fonctionnait pas.
 
Deuxième question: si le contenu de 2.2 est moins long que 2.1, la div 1.2 viendra se mettre sous 2.2 au lieu d'aller à la ligne. comment éviter ce bug?


Message édité par urd-sama le 08-04-2003 à 10:43:34

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 08-04-2003 à 11:19:07    

Urd-sama a écrit :

je prends ce topic concernant un deuxième problème de placement de css.
 
Cas:

Code :
  1. +---------------+
  2. |       1.1     |
  3. +---------------+
  4. +-----+--+------+
  5. | 2.1 | 3|  2.2 |
  6. +-----+--+------+
  7. +---------------+
  8. |       1.2     |
  9. +---------------+


1:  div.center {text-align: center;}
2:  div.moitie {float: left; width: 47%;}
3:  div.espace {float: left; width: 6%;}
 
Première question: est-ce que le 3, qui sert à créer un espace entre les 2 div de type 2 (qui contiennent du texte) est supprimable? j'ai essayer de mettre des margin-left et margin-right aux div2, mais cela ne fonctionnait pas.


Oui il est supprimable. Ton DIV 2.2 devrait avoir comme propriété :
 

margin-left: 53%;


 
Mais il ne doit pas être flottant.

Urd-sama a écrit :

Deuxième question: si le contenu de 2.2 est moins long que 2.1, la div 1.2 viendra se mettre sous 2.2 au lieu d'aller à la ligne. comment éviter ce bug?


Ce n'est pas un bug. Voir la FAQ sur les flottants (positionnement). C'est l'histoire du "spacer"


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 08-04-2003 à 12:02:01    

gm_superstar a écrit :


Oui il est supprimable. Ton DIV 2.2 devrait avoir comme propriété :
margin-left: 53%;
Mais il ne doit pas être flottant.


le truc c'est qu'il va a la ligne à la suite du 2.1, puis affiche le 2.2, d'ou un décallage
 
edit: j'ai repris le système avec les floats, en ajoutant une marge. Et j'ai un question à ce sujet, lorsque l'on met une margin-left, met-il une margin-right tout seul? j'avais déjà eu une variante avec un autre exercice


Message édité par urd-sama le 08-04-2003 à 12:26:36

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 08-04-2003 à 12:23:54    

Urd-sama a écrit :

le truc c'est qu'il va a la ligne à la suite du 2.1, puis affiche le 2.2, d'ou un décallage


Ca fait ça seulement avec IE ? Si c'est ça bravo, tu es tombée sur un bug. Eventuellement, si tu indiques explicitement la largeur des blocs ça peut résoudre le problème.
 
Le mieux serait que tu postes le code ou une URL de ta page.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 08-04-2003 à 12:32:51    

je ne peux pas uploader aujourd'hui donc voici le code du cas qui semble bugger:
 

Code :
  1. <div class="center"><img src="#"></div>
  2.   <div class="section">
  3.      <div class="moitieLeft">blabla</div>
  4.      <div class="moitieRight">bloblo</div>
  5.   </div>
  6. <div class="center"><img src="#"></div>


et les styles:

Code :
  1. div.moitieLeft {
  2.   width: 47%;
  3.   background-color:BLUE;
  4. }
  5. div.moitieRight {
  6.   width: 47%;
  7.   margin-left: 53%;
  8.   background-color:RED;
  9. }
  10. div.center {
  11.   text-align: center;
  12. }


IE 5.5


Message édité par urd-sama le 08-04-2003 à 12:33:39

---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 08-04-2003 à 13:04:23    

Heu tu as oublié le float: left; pour moitieLeft.
 
Sinon, passe la marge à 52% au lieu de 53 et les 2 DIVs seront l'un à coté de l'autre sous IE.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 08-04-2003 à 13:22:11    

gm_superstar a écrit :

Heu tu as oublié le float: left; pour moitieLeft.
Sinon, passe la marge à 52% au lieu de 53 et les 2 DIVs seront l'un à coté de l'autre sous IE.


ah oui en effet. mais j'ai opté pour cette solution là:

Code :
  1. <div class="center"><img src="mclogo.gif"></div>
  2.           <div class="section">
  3.              <div class="moitie">bloblo</div>
  4.              <div class="moitie">blabla<div>
  5.              <div class="spacer"></div>
  6.           </div>
  7.           <div class="center"><img src="line.gif"></div>


Code :
  1. div.moitie {
  2.   width: 44%;
  3.   float: left;
  4.   margin-left: 3%;
  5.   background-color:BLUE;
  6. }
  7. div.spacer {
  8.   clear: both;
  9. }


elle me semble + claire


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 08-04-2003 à 13:23:24    

Reply

Marsh Posté le 08-04-2003 à 13:24:55    

mais en fait je n'ai pas compris pourquoi ma classe moitie n'avait que 44% de largeur. au départ j'avais mis 47, car 47+3 de marge, c'est à dire 50% en tout.
pourquoi ce 44?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 08-04-2003 à 13:34:07    

Ben je sais pas ce que tu veux faire ;)
 
En tout cas là tes DIV ont l'air centrés avec le même espace à gauche et à droite.
 
En tout cas si tu compares Moz et IE, IE donne une marge à gauche du premier DIV bien plus importante que IE [:spamafote]
A part un bug, je ne vois pas ce que c'est. C'est pour ça qu'avec IE et le flottants il faut toujours s'assurer que la longueur totale fasse moins de 100%.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed