Bonjour,
Après avoir recherché pas mal de temps, et m'être arraché quelques cheveux (déjà que j'en ai pas beaucoup), je m'en remets à vous ...
J'ai une fonction PHP qui génère un bouton. Ce bouton est composé de trois parties :
- Une partie gauche, contenant une image en background et une hauteur / largeur fixe
- Une partie centrale, contenant une image de fond d'une hauteur fixe et d'une largeur de 1px, en repeat: repeat-x et un texte par dessus
- Une partie de droite, idem à la partie de gauche
J'aimerais pouvoir centrer ce bouton sur la page ... Cependant, le float: left des images m'en empêche !
Voici le bout de code du bouton :
$action correspond à l'action javascript associée au bouton.
$larg correspond à la largeur de la partie centrale du bouton.
Et voici le CSS correspondant :
Quelques précisions :
- La balise parente du div button_container est le body
- Il y a des tableaux dans le body
- La taille du bouton peut changer (je fixe la taille dans ma fonction PHP)
- La fonction est destinée à être utilisée dans plusieurs cas de figures : la taille de la page peut varier.
J'ai essayé plusieurs choses :
- Les spacer en haut et bas avec clear: both;
- Les margin: 0px auto; (décale effectivement le bouton, mais d'environ 1/6 de la page)
- Le text-align: center dans le parent
- Ajouter le ".button_container" devant les ".button_left",".button_middle" et ".button_right"
Et j'en passe.
Les essais sont faits sur firefox 4.0 et IE8, résultat identique dans les deux cas.
Voici le résultat :
En vous remerciant !
EDIT : image jointe pour un effet visuel hors du commun. Les borders sont ajouté en guise de tests.
Modifié par Meyfarth (24 Mar 2011 - 14:33)
Après avoir recherché pas mal de temps, et m'être arraché quelques cheveux (déjà que j'en ai pas beaucoup), je m'en remets à vous ...
J'ai une fonction PHP qui génère un bouton. Ce bouton est composé de trois parties :
- Une partie gauche, contenant une image en background et une hauteur / largeur fixe
- Une partie centrale, contenant une image de fond d'une hauteur fixe et d'une largeur de 1px, en repeat: repeat-x et un texte par dessus
- Une partie de droite, idem à la partie de gauche
J'aimerais pouvoir centrer ce bouton sur la page ... Cependant, le float: left des images m'en empêche !
Voici le bout de code du bouton :
<div class="button_container">
<div class="spacer"> </div>
<div class="button_left_off"> </div>
<div class="button_middle_off" onclick="[$action]" style="width: [$larg]px">[$text]</div>
<div class="button_right_off"> </div>
<div class="spacer"> </div>
</div>
$action correspond à l'action javascript associée au bouton.
$larg correspond à la largeur de la partie centrale du bouton.
Et voici le CSS correspondant :
.button_container
{
text-align: center;
border: 1px solid;
margin: 0px auto;
}
.button_container .button_left_off
{
background-image:url(../../images/button_left_off.gif);
float: left;
width: 8px;
height: 30px;
cursor: pointer;
border: 1px solid;
}
.button_container .button_middle_off
{
background-image:url(../../images/button_middle_off.gif);
background-repeat: repeat-x;
float: left;
height: 30px;
color: #363636;
text-align: center;
padding-top: 5px;
font-family: tahoma;
font-size: 13px;
font-weight: bolder;
cursor: pointer;
border: 1px solid;
}
.button_container .button_right_off
{
background-image:url(../../images/button_right_off.gif);
float: left;
width: 8px;
height: 30px;
cursor: pointer;
border: 1px solid;
}
Quelques précisions :
- La balise parente du div button_container est le body
- Il y a des tableaux dans le body
- La taille du bouton peut changer (je fixe la taille dans ma fonction PHP)
- La fonction est destinée à être utilisée dans plusieurs cas de figures : la taille de la page peut varier.
J'ai essayé plusieurs choses :
- Les spacer en haut et bas avec clear: both;
- Les margin: 0px auto; (décale effectivement le bouton, mais d'environ 1/6 de la page)
- Le text-align: center dans le parent
- Ajouter le ".button_container" devant les ".button_left",".button_middle" et ".button_right"
Et j'en passe.
Les essais sont faits sur firefox 4.0 et IE8, résultat identique dans les deux cas.
Voici le résultat :
En vous remerciant !
EDIT : image jointe pour un effet visuel hors du commun. Les borders sont ajouté en guise de tests.
Modifié par Meyfarth (24 Mar 2011 - 14:33)