CSS largueur fixe = centrage par rapport au mauvais élément
cocodu67...
Messages postés
3178
Date d'inscription
Statut
Membre
Dernière intervention
-
codeurh24 Messages postés 760 Date d'inscription Statut Membre Dernière intervention -
codeurh24 Messages postés 760 Date d'inscription Statut Membre Dernière intervention -
Bonsoir
Je suis en train de coder une page et voici un petit aperçu :
http://www.cjoint.com/data3/3BiaKyFdkO6.htm
Ma page est composée d'une grande div jaune à hauteur fixe, à l'intérieur j'ai placé 2 div qui font les 2 colonnes (rouge et bleu). A gauche dans la rouge je peux mettre par exemple des boutons ou un menu et à droite du contenu.
Le problème c'est qu'à droite j'ai besoin de mettre des div de taille fixe. Rien de compliqué dans toutes les pages que j'ai fais sans cette structure à 2 colonnes mais ici le fait d'appliquer une largueur fixe fait que la div se centre par rapport à la page ... et non par rapport à la div bleu dans laquelle elle se trouve.
Voici le code de la div rose correctement centrée :
Et voici le code de la div grise qui est identique à celui de la rose à la seule différence près qu'il y a une largueur fixe :
Pour information, voici le code CSS des 3 autres div dont j'ai parlé :
C'est la première fois que mettre une largueur fixe m'empêche de centrer une div par rapport à la position de celle qui la contient ...
Pouvez vous m'aider ?
Merci d'avance
Edit : Je suis arrivé à centrer un élément dans la div bleu et centrage par rapport à la div bleu, ça c'est bon.
Le soucis c'est que maintenant mon bleu possède une largueur fixe ... et donc forcément ça ne s'adapte pas à l'écran.
http://www.cjoint.com/data3/3BicsHLYgPB.htm
Voici le code actuel :
Le plus simple serait 100 % de largueur pour le bleu mais alors il prend la même largueur que la page et donc déborde à droite ... il faudrait qu'il ait la largueur de la page - les 200 pixels du rouge ...
Je suis en train de coder une page et voici un petit aperçu :
http://www.cjoint.com/data3/3BiaKyFdkO6.htm
Ma page est composée d'une grande div jaune à hauteur fixe, à l'intérieur j'ai placé 2 div qui font les 2 colonnes (rouge et bleu). A gauche dans la rouge je peux mettre par exemple des boutons ou un menu et à droite du contenu.
Le problème c'est qu'à droite j'ai besoin de mettre des div de taille fixe. Rien de compliqué dans toutes les pages que j'ai fais sans cette structure à 2 colonnes mais ici le fait d'appliquer une largueur fixe fait que la div se centre par rapport à la page ... et non par rapport à la div bleu dans laquelle elle se trouve.
Voici le code de la div rose correctement centrée :
echo "<center><div style='background-color:pink;z-index:5000;'>ooooo</div></center>";
Et voici le code de la div grise qui est identique à celui de la rose à la seule différence près qu'il y a une largueur fixe :
echo "<center><div style='background-color:gray;z-index:5000;width:400px;'>ooooo</div></center>";
Pour information, voici le code CSS des 3 autres div dont j'ai parlé :
.page { padding-left: 15px; padding-right: 15px; position: relative; background-color: yellow; height: 1500px; } .bandeau_gauche { height: 100%; background-color: red; display: inline-block; width: 35%; max-width: 200px; float: left; text-align: center; } .bandeau_droite { height: 100%; background-color: blue; display: block; vertical-align: middle; }
C'est la première fois que mettre une largueur fixe m'empêche de centrer une div par rapport à la position de celle qui la contient ...
Pouvez vous m'aider ?
Merci d'avance
Edit : Je suis arrivé à centrer un élément dans la div bleu et centrage par rapport à la div bleu, ça c'est bon.
Le soucis c'est que maintenant mon bleu possède une largueur fixe ... et donc forcément ça ne s'adapte pas à l'écran.
http://www.cjoint.com/data3/3BicsHLYgPB.htm
Voici le code actuel :
.page { padding-left: 15px; padding-right: 15px; position: relative; background-color: yellow; height: 1500px; } .bandeau_gauche { height: 100%; background-color: red; display: inline-block; width: 35%; max-width: 200px; float: left; text-align: center; } .bandeau_droite { height: 100%; background-color: blue; display: block; vertical-align: middle; width:1000px; position:relative; left:200px; }
Le plus simple serait 100 % de largueur pour le bleu mais alors il prend la même largueur que la page et donc déborde à droite ... il faudrait qu'il ait la largueur de la page - les 200 pixels du rouge ...
A voir également:
- CSS largueur fixe = centrage par rapport au mauvais élément
- Plan rapport de stage - Guide
- Changer pile bios pc fixe - Guide
- Comment connecter un ordinateur fixe en wifi sans fil - Guide
- Mac fixe - Guide
- Freeplug rouge fixe - Forum Réseaux sociaux
1 réponse
Pour centrer une div qui s'adapte a la page dans la colonne bleu, il faut que tout les parents de cette div est une largeur en pourcentage ensuite si ton élément est de type block et que toute les dimensions en pourcentage sont préciser tu peut utiliser les margin auto.
Je vois dans ton css que tu a mélanger float et display: inline-block;
je te conseille de privilégier display: inline-block; et de ne pas utiliser les float dans la majorité des cas.
voici mon exemple:
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>test centrage</title>
<style>
div{ border: 1px solid #000;vertical-align:top;}
#page, html, body{ width:100%;height:100%;}
#colonne-gauche { display:inline-block;width:39%;height:49%; }
#colonne-droite { display:inline-block;width:59%;height:49%; }
#test { display:block;width:50%;height:10%;margin-left:auto;margin-right:auto; }
</style>
</head>
<body>
<div id="page">
<div id="colonne-gauche">
<ul>
<li><a href="#">test1</a></li>
<li><a href="#">test2</a></li>
<li><a href="#">test3</a></li>
</ul>
</div>
<div id="colonne-droite">
<div id="test"></div>
</div>
</div>
</body>
</html>
Je vois dans ton css que tu a mélanger float et display: inline-block;
je te conseille de privilégier display: inline-block; et de ne pas utiliser les float dans la majorité des cas.
voici mon exemple:
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>test centrage</title>
<style>
div{ border: 1px solid #000;vertical-align:top;}
#page, html, body{ width:100%;height:100%;}
#colonne-gauche { display:inline-block;width:39%;height:49%; }
#colonne-droite { display:inline-block;width:59%;height:49%; }
#test { display:block;width:50%;height:10%;margin-left:auto;margin-right:auto; }
</style>
</head>
<body>
<div id="page">
<div id="colonne-gauche">
<ul>
<li><a href="#">test1</a></li>
<li><a href="#">test2</a></li>
<li><a href="#">test3</a></li>
</ul>
</div>
<div id="colonne-droite">
<div id="test"></div>
</div>
</div>
</body>
</html>