[CSS] Div non-centré sous Mozilla

Div non-centré sous Mozilla [CSS] - HTML/CSS - Programmation

Marsh Posté le 24-04-2005 à 15:39:21    

Tout d'abord voilà mes sources:
 
la page:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. ...
  3. <body>
  4. <div class="page" id="page" name="page">
  5.   <!-- En-tête de la page //-->
  6.   <div class="entete" id="entete" name="entete">
  7.   </div>
  8.   <!-- Construction du menu de gauche //-->
  9.   <div class="colonne" id="colonne" name="colonne">
  10.   </div>
  11.   <!-- Corps //-->
  12.   <div class="corps" id="corps" name="corps">
  13.   </div>
  14. </div>
  15. </body>


 
la feuille de style:

Code :
  1. body {
  2.   text-align: center;
  3. }
  4. .page {
  5.   border: 1px solid black;
  6.   background-color: #ffffff;
  7.   width: 780px;
  8.   text-align: left;
  9. }
  10. .entete {
  11.   position: relative;
  12.   width: 780px;
  13.   height: 100px;
  14.   background: url(../images/entete.gif) top left no-repeat;
  15. }
  16. .colonne {
  17.   position: relative;
  18.   width: 170px;
  19. }
  20. .corps {
  21.   position: relative;
  22.   width: 610px;
  23. }


 
Mon premier problème est que je veux que le div "page" soit centré, ce qui se passe sous IE mais pas sous Mozilla... pourquoi je n'en sais rien.
 
Le deuxième problème est que je n'arrive aps à construire la page comme je veux dans le div "page", je voudrais le div "entete" en haut, le div "colonne" juste en dessous à gauche et le div "corps" à droite de "colonne" sur la même ligne.
J'ai essayé les float, clear, absolute mais rien n'y fait, aidez-moi svp.
 
merci.

Reply

Marsh Posté le 24-04-2005 à 15:39:21   

Reply

Marsh Posté le 24-04-2005 à 15:47:42    

faut que tu revois la notion de classe et d'id toi...
de plus, il n'y a pas a ma connaissance de propriété "name" pour les div...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 24-04-2005 à 15:47:53    

text-align n'est pas censé centrer les blocs, c'est un bug d'IE, pour le centrer dans les vrais navigateurs (Firefox, Opera, Safari) il faut mettre les marges latérales en auto
 
Donc ici

.page {
    margin: 0 auto; /* raccourci qui met les marges haut/bas à 0 et gauche/droite en auto */
}


Accessoirement, les classes sont pour les éléments qui se répètent, ce qui n'est pas le cas ici (tu n'as qu'un exemplaire de chaque par page) donc il faut utiliser les IDs et non les classes
 
Colonne n'a aucun sens sémantique (ça veut dire quoi colonne, en quoi ça décrit le rôle logique de l'élément?), de même "page" est assez limite et complètement redondant avec le body.
 
Ajoutons que les "name" on été retirés de la norme (sauf pour les frames), que finir ses commentaires par "//-->" est très con (// n'est utilisé que quand on commente les scripts, pour éviter que le script ne parse la fin de commentaire)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-04-2005 à 15:49:29    

et sinon, pour centrer le tout faut mettre les attribut sur la balise <html>
 
et tes commentaires sont mal foutus :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 24-04-2005 à 15:57:21    

<!-- ... //--> ca marche
// ... ca marche pas
/* ... */ ca marche pas

Reply

Marsh Posté le 24-04-2005 à 15:58:20    

la norme c'est

<!-- commentaire inutile -->


 


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 24-04-2005 à 16:06:17    

ok merci

Reply

Marsh Posté le 24-04-2005 à 16:29:03    

donc on recommence:
 
la page:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html>
  3. ...
  4. <body>
  5. <div id="page">
  6.   <!-- En-tête de la page -->
  7.   <div id="entete">
  8.   </div>
  9.   <!-- Construction du premier menu -->
  10.   <div class="menu" id="menu_1">
  11.   </div>
  12.   <!-- Contenu du corps -->
  13.   <div id="corps">
  14.   </div>
  15. </div>
  16. </body>


 
le css:

Code :
  1. body {
  2.   margin: 0px;
  3.   background: url(../images/bgd.jpg) top left repeat;
  4. }
  5. #page {
  6.   margin-left: auto;
  7.   margin-right: auto;
  8.   border: 1px solid black;
  9.   background-color: #ffffff;
  10.   width: 780px;
  11. }
  12. #entete {
  13.   position: relative;
  14.   width: 780px;
  15.   height: 100px;
  16.   background: url(../images/entete.gif) top left no-repeat;
  17. }
  18. #corps {
  19.   position: relative;
  20.   width: 610px;
  21. }
  22. .menu {
  23.   position: relative;
  24.   width: 170px;
  25. }


 
le div "page" est bien centré maintenant, merci. En fait ce div sert juste à mettre une ligne noire autour de la page.
 
Comment je peux donc maintenant faire pour bien mettre en place mon menu et le corps de la page comme expliué plus haut?
 
PS: désolé de toutes ces erreurs mais c'est pour mon premier stage et c'est la première fois que j'utilise les .css.

Reply

Marsh Posté le 24-04-2005 à 16:31:41    

[:petrus75]
 
// et /* */ sont des commentaires issus du C/C++, pas des commentaires SGML [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-04-2005 à 16:58:16    

comment je peux mettre en fait les div "menu" et "corps" sur la meme ligne ?
 
Sinon ma syntaxe est bonne maintenant ?
 
Merci pour vos remarques.

Reply

Marsh Posté le 24-04-2005 à 16:58:16   

Reply

Marsh Posté le 24-04-2005 à 17:07:01    

j'arrive mainteannt à mettre "menu" et "corps" sur la même ligne grçace à un 'float: left' sur chacun d'eux, mais un nouveau problème est généré sur mozilla: on dirait que ces deux blocs sont mainteant en dehors du div "page", la ligne  noire n'entoure plus que le div "entete"...
 
Et il y a aussi la propriété 'min-height' qui ne marche pas sous IE, comment y remédier ?

Reply

Marsh Posté le 26-04-2005 à 16:36:40    

personne pour 'min-height'? comment faire sous IE ?

Reply

Sujets relatifs:

Leave a Replay

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