28172 sujets

CSS et mise en forme, CSS3

Bonjour tous

Je suis parti de
http://www.alsacreations.com/static/gabarits/modele09.html
pour positionner colonne et contenu mais les position: absolu; ne donnent rien.

Et je reste avec les décalages comme on voit sur l'image.
En fait la colonne de gauche et le contenu, je peux stabiliser mais la colonne de droite impossible, elle reste sous le contenu.

J'ai virer un maximum de texte et fais aussi le ménage dans la feuille de style pour ne garder que ce qui interesse.
l'image :
http://griggione.free.fr/tutos/pics/474.jpg

le fichier html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    #INCLURE "template/meta.html"
  </head>
  <body>
    <div id="wrapper">
      <div id="subwrapper">
        #INCLURE "template/entete.html"
        <div id="chemin">::navigation:: : <a href="#URLSOMMAIRE">accueil</a></div>
        #INCLURE "template/menu.html"
        <div id="contenu">
        </div>
        #INCLURE "template/colonneD.html"
        #INCLURE "template/pied.html"
      </div>
    </div>
  </body>
</html>


le fichier css :
/* Eléments HTML en général
-------------------------------------------------------- */
@import url(style_editeur.css);

body {
  padding: 0;
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  background-position: center 0;
  background-image: url('_gfx/lo3.jpg');
  color: #397567;
  font-size: 12px;
}
img {
  border: 0
}

/* Page
-------------------------------------------------------- */

#wrapper {
  width: 990px;
  text-align: left;
  overflow: visible;
  position: relative;
  margin: 0 auto 0 auto;
  padding: 0;
}
#subwrapper {
  overflow: hidden;
  position: relative;
  padding: 0;
  width: 990px;
  border-left: solid 1px #4E9C8A;
  border-right: solid 1px #4E9C8A;
  border-bottom: solid 1px #4E9C8A;
}

/* Entête
-------------------------------------------------------- */

#entete {
  width: 990px;
  margin-left: auto; 
  margin-right: auto;
  margin-top: 5px;
}
#flash1 {
  margin-left: 5px;
}

/* Chemin
-------------------------------------------------------- */

#chemin {
  float: left;
  width: 980px;
  color: #397567;
  font-size: 11px;
  font-weight: bold;
  margin: 5px 0 0 0;
  padding: 5px 0 5px 10px;
  background-color: #E4f1Ef;
  border-top: solid 2px #4E9C8A;
}

/* Colonne Gauche
-------------------------------------------------------- */

#moteurEtCatalogue {
  width: 160px;
  padding: 0;
  margin: 10px 0 0 0;
}
#accueil ul, #menuCatalogue ul {
  padding: 0;
  margin: 0;
  list-style: none;
  color: #ffffff;
}

#accueil ul li a, #menuCatalogue ul li a  {
  text-decoration: none;
  color: #ffffff;
  border-left: solid 3px #93CABD;
  display: block;
  background-color: #3D7C6f;
  padding: 5px 0 5px 10px;
}

/* Contenu
-------------------------------------------------------- */

#contenu {
  width: 630px;
  padding: 10px 5px;
  margin: 0 0 0 170px;
  border: #2E5C53 solid 1px;
  background: #F8F9F2;
  -moz-border-radius: 15px;
  -webkit-border-radius: 15px;
  -khtml-border-radius: 15px;
  border-radius: 15px;
  behavior: url(template/border-radius.htc);
}

/* colonne Droite
---------------------------------------------------------*/
#colD {
  margin: 0 0 0 820px;
  width: 160px;
  padding: 0 0 5px 0;
  color: #ffffff;
  z-index: 1000;
}

/* Panier
-------------------------------------------------------- */
#monPanier {
  float: left;
  width: 160px;
  background-color: #397567;
  margin: 0 0 5px 0;
  border-left: 3px solid #93CABD;
  padding: 0 0 0 10px;
  height: 80px;
}
#monPanier h3 {
  color: #ffffff;
}

/* Pied de page
-------------------------------------------------------- */

#footer {
  float: left;
  width: 990px;
  color: #468E7E;
  font-size: 11px;
  font-weight: normal;
  padding: 5px 0 10px 0;
  background-color: #E4f1Ef;
  border-top: solid 1px #4B9E8D;
  border-bottom: solid 1px #4B9E8D;
}

/* Correction des bug Internet Explorer
-------------------------------------------------------- */

* html button {width:1%; overflow:visible;} 
*:first-child+html button {overflow:visible;}
Bonjour,
Bah déjà faudrait peut-être mettre float:right; sur #monPanier... on veut bien qu'il soit à droite non Smiley murf
Heu attends... que je comprenne bien... en trois étapes:
1. Tu as pris comme référence un modèle de page avec des colonnes positionnés en absolu.
2. Tu as viré le positionnement absolu pour utiliser float à la place.
3. Comme tu as mal utilisé float ça ne te donne pas le résultat souhaité.

Donc si j'ai bien compris, tu as deux solutions: soit tu utilises du positionnement absolu (retour à l'étape 1 sans faire 2 et 3), soit tu utilises float et dans ce cas ça serait bien de s'inspirer d'un modèle de mise en page qui utilise les flottants plutôt que d'un modèle qui utilise le positionnement absolu (et donc retour à l'étape 1 aussi, mais en changeant de modèle).
Bonjour

Sylverdragon a écrit :
Bonjour,
Bah déjà faudrait peut-être mettre float:right; sur #monPanier... on veut bien qu'il soit à droite non Smiley murf

En fait c'est sur la #colD qu'il faut le mettre, cette div contient panier, contact, etc., mais cela a rectifié le tir.
De plus, le fait d'avoir mis la colonne gauche avant le contenu sur le html permet de la mettre a sa place en haut.

fvsch a écrit :

1. Tu as pris comme référence un modèle de page avec des colonnes positionnés en absolu.

Donc si j'ai bien compris, tu as deux solutions: soit tu utilises du positionnement absolu (retour à l'étape 1 sans faire 2 et 3),

J'ai refais avec la tête neuve après une nuit de sommeil Smiley smile
J'ai gardé la modif sur le fichier html et remis les positions en absolu pour les deux colonnes, D et G.
Déjà c'est mieux sauf que la div chemin n'est pas prise en compte et tout vient se positionner sous l'en-tete.

A noter que si je mets pour le contenu une position relative, il apparait bien dans FF par-dessus le chemin mais le background reste invisible dans IE.

Je remet les fichiers et une image :

http://griggione.free.fr/tutos/pics/477.jpg

  <body>
    <div id="wrapper">
      <div id="subwrapper">
        #INCLURE "template/entete.html"
        <div id="chemin">::navigation:: : <a href="#URLSOMMAIRE">::accueil::</a></div>
        #INCLURE "template/menu.html"
        #INCLURE "template/colonneD.html"
        <div id="contenu">
        ee<br />
        ee<br />
        ee<br />
        ee<br />
        ee<br />
        ee<br />
        ee<br />
        ee<br />
        ee<br />
        </div>
        #INCLURE "template/pied.html"
      </div>
    </div>
  </body>


/* Entête
-------------------------------------------------------- */

#entete {
  width: 990px;
  margin-left: auto; 
  margin-right: auto;
  margin-top: 5px;
}
#flash1 {
  margin-left: 5px;
}

/* Chemin
-------------------------------------------------------- */

#chemin {
  float: left;
  width: 980px;
  color: #397567;
  font-size: 11px;
  font-weight: bold;
  margin: 5px 0 0 0;
  padding: 5px 0 5px 10px;
  background-color: #E4f1Ef;
  border-top: solid 2px #4E9C8A;
}

/* Colonne Gauche
-------------------------------------------------------- */

#moteurEtCatalogue {
  position: absolute;
  width: 160px;
  padding: 0;
  margin: 0;
}
#accueil ul, #menuCatalogue ul {
  padding: 0;
  margin: 0;
  list-style: none;
  color: #ffffff;
}

#accueil ul li a, #menuCatalogue ul li a  {
  text-decoration: none;
  color: #ffffff;
  border-left: solid 3px #93CABD;
  display: block;
  background-color: #3D7C6f;
  padding: 5px 0 5px 10px;
}

/* Contenu
-------------------------------------------------------- */

#contenu {
  position: relative;
  width: 630px;
  padding: 10px 5px;
  margin: 0 0 10px 170px;
  border: #2E5C53 solid 1px;
  background: #F8F9F2;
  -moz-border-radius: 15px;
  -webkit-border-radius: 15px;
  -khtml-border-radius: 15px;
  border-radius: 15px;
  behavior: url(template/border-radius.htc);
}

/* colonne Droite
---------------------------------------------------------*/
#colD {
  position: absolute;
  margin: 0 0 0 820px;
  width: 160px;
  padding: 0 0 5px 0;
  color: #ffffff;
  z-index: 1000;
}
RE

Bien vu et souvent je me fais avoir par les float, mais ..... Smiley rolleyes

Reste plus que le problème de la position absolu de la colonne gauche, du coup mon pied de page ne reste plus sous la colonne si le contenu est vide :

http://griggione.free.fr/tutos/pics/478.jpg
/* Pied de page
-------------------------------------------------------- */

#footer {
  float: left;
  width: 990px;
  color: #468E7E;
  font-size: 11px;
  font-weight: normal;
  padding: 5px 0 10px 0;
  background-color: #E4f1Ef;
  border-top: solid 1px #4B9E8D;
  border-bottom: solid 1px #4B9E8D;
}
Bonjour tous

J'ai parcouru Alsa dans tous les sens, s'il y a beaucoup d'explication concernant un clear:both et les flottants, rien entre clear:both et position absolu Smiley decu

Je vois pas du tout comment mettre mon footer sous le colonne gauche.
griggione a écrit :
J'ai parcouru Alsa dans tous les sens, s'il y a beaucoup d'explication concernant un clear:both et les flottants, rien entre clear:both et position absolu Smiley decu

La propriété clear c'est pour les flottants et pour rien d'autre.
Si tu as un élément positionné en absolu, les autres éléments de la page ne peuvent pas prendre en compte l'espace qu'il occupe pour se placer eux-mêmes. C'est un des principes de base du positionnement absolu.

Pour rappel, c'était marqué en toute lettres dans la page d'information du gabarit utilisé.

Donc si tu veux pouvoir placer un pied de page sous tes colonnes, tu ne peux pas utiliser le positionnement absolu (sauf éventuellement pour une colonne pour laquelle tu es certain que le contenu sera plus court que celui de la colonne centrale).
Si tu n'assures pas le support d'IE7, tu peux utiliser display:table-cell (CSS 2.1). Sinon, il faudra utiliser float, en suivant par exemple l'un de ces modèles:
http://www.alsacreations.com/static/gabarits/modele10.html
http://www.alsacreations.com/static/gabarits/modele11.html
Bonjour fvsch

fvsch a écrit :

Pour rappel, c'était marqué en toute lettres dans la page d'information du gabarit utilisé.


En plus c'est vrai et je l'avais lu maintenant que je le revoie :
a écrit :
Attention: si nous souhaitons placer un pied de page dans ce gabarit, il faudra nécessairement le placer (visuellement) sous le contenu central. En effet, si le pied de page s'étend sur toute la largeur de div#global il risque d'être survolé par les colonnes latérales positionnées en absolu.

Et j'ai besoin de toute la largeur pour le footer puisque j'ai 3 colonnes précises.

fvsch a écrit :
Sinon, il faudra utiliser float, en suivant par exemple l'un de ces modèles:
http://www.alsacreations.com/static/gabarits/modele10.html
http://www.alsacreations.com/static/gabarits/modele11.html


C'est ce que j'ai essayé avant, mais pas grave, je viens de le refaire bien sur (le 11).
Alors certes, le footer est bien en dessous même si le contenu est vide, youpi, mais ..... Smiley decu
- la colonne de droite est décalée au top
- si je rempli le contenu, j'ai un trou de la valeur de ma colonne

une image parle mieux, avec les fichiers :

http://griggione.free.fr/tutos/pics/479.jpg
  <body>
    <div id="wrapper">
      <div id="subwrapper">
        #INCLURE "template/entete.html"
        <div id="chemin">::navigation:: : <a href="#URLSOMMAIRE">::accueil::</a></div>
        #INCLURE "template/menu.html"
        #INCLURE "template/colonneD.html"
        <div id="contenu">
          <div id="contenu-bis">
            ee<br />
            ee<br />
            ee<br />
            ee<br />
            ee<br />
            ee<br />
            ee<br />
            ee<br />
            ee<br />
           ee<br />
          </div>
        </div>
        #INCLURE "template/pied.html"
      </div>
    </div>
  </body>

/* Eléments HTML en général
-------------------------------------------------------- */
@import url(style_editeur.css);

body {
  padding: 0;
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  background-position: center 0;
  background-image: url('_gfx/lo3.jpg');
  color: #397567;
  font-size: 12px;
}

/* Page
-------------------------------------------------------- */

#wrapper {
  width: 990px;
  text-align: left;
  
  position: relative;
  margin: 0 auto 0 auto;
  padding: 0;
}
#subwrapper {
  overflow: hidden;
  position: relative;
  padding: 0;
  width: 990px;
  border-left: solid 1px #4E9C8A;
  border-right: solid 1px #4E9C8A;
  border-bottom: solid 1px #4E9C8A;
}

/* Entête
-------------------------------------------------------- */

#entete {
  width: 990px;
  margin-left: auto; 
  margin-right: auto;
  margin-top: 5px;
}
#flash1 {
  margin-left: 5px;
}

/* Chemin
-------------------------------------------------------- */

#chemin {
  width: 980px;
  color: #397567;
  font-size: 11px;
  font-weight: bold;
  margin: 5px 0 5px 0;
  padding: 5px 0 5px 10px;
  background-color: #E4f1Ef;
  border-top: solid 2px #4E9C8A;
}
#chemin a:link, #chemin a:visited {
  color: #397567;
  text-decoration: none;
}
#chemin a:hover {
  color: #397567;
  text-decoration: underline;
}

/* Colonne Gauche
-------------------------------------------------------- */

#moteurEtCatalogue {
  float: left;
  width: 160px;
  padding: 0;
  margin: 0;
}
#moteurEtCatalogue h3 {
  display: none;
}
#accueil, #menuCatalogue {
  float: left;
  padding: 0;
  margin: 0 0 18px 0;
  width: 100%;
}
#accueil ul, #menuCatalogue ul {
  padding: 0;
  margin: 0;
  list-style: none;
  color: #ffffff;
}
#accueil ul li, #menuCatalogue ul li {
  font-size: 14px;
  font-weight: bold;
  padding: 0;
  margin: 0 0 1px 0;
}
#accueil ul li a, #menuCatalogue ul li a  {
  text-decoration: none;
  color: #ffffff;
  border-left: solid 3px #93CABD;
  display: block;
  background-color: #3D7C6f;
  padding: 5px 0 5px 10px;
}
#accueil ul li a:hover, #menuCatalogue ul li a:hover {
  text-decoration: none;
  background-color: #54AB98;
  color: #ffffff;
  border-left: solid 3px #02407a;
}
#menuCatalogue ul li ul {
}
#menuCatalogue ul li ul li {
  font-size: 12px;
  margin: 1px 0 0 0;
  text-indent: 8px;
}
#menuCatalogue ul li ul li a {
  border-left: solid 3px #7ca3c5;
  background-color: #D6EBE7;
}
#menuCatalogue ul li a.selection {
  color: #ffffff;
  background-color: #54AB98;
  border-left: solid 3px #02407a;
}

/* Contenu
-------------------------------------------------------- */

#contenu {
  width: 630px;
  padding: 10px 5px;
  margin: 0 0 10px 170px;
  border: #2E5C53 solid 1px;
  background: #F8F9F2;
  -moz-border-radius: 15px;
  -webkit-border-radius: 15px;
  -khtml-border-radius: 15px;
  border-radius: 15px;
  behavior: url(template/border-radius.htc);
}
#contenu > :first-child {
  margin-top: 10px;
}
#contenu-bis {
  overflow: hidden;
}
#contenuPageRubrique {
  float: left;
  width: 630px;
  padding: 0 0 0 20px;
  margin: 25px 20px;
}
#contenu form {
  margin: 0 auto;
}
#contenu form  input {
  width: 200px;
  border: #2E5C53 solid 1px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  -khtml-border-radius: 5px;
  border-radius: 5px;
  behavior: url(template/border-radius.htc);
}

/* colonne Droite
---------------------------------------------------------*/
#colD {
  float: right;
  margin: 0 0 0 820px;
  width: 160px;
  padding: 0 0 5px 0;
  color: #ffffff;
  z-index: 1000;
}
#colD h3 {
  color: #ffffff;
  font-size: 18px;
  margin: 0 0 5px 0;
}
#colD a, #top a:visited  {
  text-decoration: none;
}
#colD a:hover {
  color: #61AD9f;
  text-decoration: none;
}

/* Pied de page
-------------------------------------------------------- */

#footer {
  float: left;
  width: 990px;
  color: #468E7E;
  font-size: 11px;
  font-weight: normal;
  padding: 5px 0 10px 0;
  background-color: #E4f1Ef;
  border-top: solid 1px #4B9E8D;
  border-bottom: solid 1px #4B9E8D;
}
On pourrait voir la page en ligne?
C'est un peu pénible de faire de tête le travail que le parseur HTML et le moteur de rendu du navigateur font très bien tout seuls comme des grands. Smiley cligne
Bonjour tous

Voila, je viens de mettre en ligne dans un compte test.
Attention, je vends pas de fringues, c'est juste un plugin de démo qui sert aux tests.

Les deux problèmes :
- le footer ne reste pas sous la colonne de droite (voir mot de passe perdu)
- le fond du contenu (centre) reste collé au plafond dans certaines pages comme index et pas d'autre (voir Je crée un compte).

Le lien temporaire :
http://test.griggione.fr/informacorse/

Modifié par griggione (04 Jul 2012 - 16:08)
Bonjour tous

Bon j'ai allégé au maximum et dans l'affichage et dans la feuille de style pour mieux s'y reconnaitre.
Si quelqu'un peut jeter un oeil .......
Bonjour tous

http://griggione.free.fr/tutos/smileys/bleh.gif

C'est fait !

Et on revient bien dans les classiques, à savoir qu'il faut un block pour les 3 colonnes et que le mélange float et position n'est pas compatible.

J'ai donc bien mis l'id=bloc, enlever les position:abosolute et enlever le float pour la colD pour une position:relative.
Dans les html, j'ai remis mon include colonneD après le contenu.

Je laisse encore le site test pour ceux qui veulent voir.