Salut,
J'ai lu les tutos et astuces de ce site a propos du positionnement (en particulier celui pour centrer des données dans une page), mais moi je ne veux pas centrer des données dans une page...
Je veux juste avoir dans un <A> (sous forme de "block" avec une taille), une image et un texte (un peu comme un bouton quoi)...
mais je veux que tout soit parfaitement centré :
- verticalement (facile, ok)
- horizontalement (dans le block A)
- horizontalement : le texte par rapport a l'image !
à l'utilisation, je veux avoir le html suivant :
Bon, j'ai cherché longtemps, j'ai passé du temps.. voici une premiere approche simpliste :
voilà je me suis dis, que l'image et le texte aurait la même ligne de "base" et qu'ils serait centré (middle) dessus... et bien non..
bon,apres quelques tests.. je suis arrivé a faire marcher mon truc ...sous IE, avec un drolle de bidouille...
j'ai juste ajouté ce style là :
et je place un span vide a cet endroit :
et là, j'obtiens exactement ce que je veux ... sous IE
ma theorie a deux balles sur comment ca fonctionne : le span prends 100% de l'espace en hauteur (dans mon A) et place la ligne de "base" au milieu de cet espace(vertical-align), et donc le texte et l'image s'alligne sur la même ligne de base ! ouf ! c'est presque logique
Mais voilà, je veux faire les choses bien, et ca ne marche pas sous FireFox (v1.0) donc c'est sans doute que c'est pas genial comme solution... et même si c'etait correct, je veux une solution qui marche aussi sous FF.
Donc voilà, je suis a la recherche d'une solution PROPRE et si possible sans hack affreux....
celui qui réussit gagne.. toute mon estime
Si vous n'avez pas compris ce que je veux, faites simplement un copié collé de ce code et ouvrez-le avec IE6 pour voir le resultat que je veux.
merci!!!
Modifié le 04 Dec 2004 - 01:10
J'ai lu les tutos et astuces de ce site a propos du positionnement (en particulier celui pour centrer des données dans une page), mais moi je ne veux pas centrer des données dans une page...
Je veux juste avoir dans un <A> (sous forme de "block" avec une taille), une image et un texte (un peu comme un bouton quoi)...
mais je veux que tout soit parfaitement centré :
- verticalement (facile, ok)
- horizontalement (dans le block A)
- horizontalement : le texte par rapport a l'image !
à l'utilisation, je veux avoir le html suivant :
<a..><img...>mon texte</a>
Bon, j'ai cherché longtemps, j'ai passé du temps.. voici une premiere approche simpliste :
a { display:block; [#green]/* passage de inline vers block*/ [/#]
width:200px; height:50px; [#green]/* les dimensions de mon bloc*/[/#]
border : 1px solid #99ccff; [#green]/* mise en page */[/#]
background-color : #FFF8DC;
vertical-align: middle; [#green]/* voilà... ici ! */[/#]
text-align : center;
}
a:hover { background-color : #FFEBCD; } [#green]/* pour faire joli */[/#]
img {
vertical-align: middle
}
voilà je me suis dis, que l'image et le texte aurait la même ligne de "base" et qu'ils serait centré (middle) dessus... et bien non..
bon,apres quelques tests.. je suis arrivé a faire marcher mon truc ...sous IE, avec un drolle de bidouille...
j'ai juste ajouté ce style là :
span {vertical-align:middle;
height:100% }
et je place un span vide a cet endroit :
<a...>[#blue]<span></span>[/#]<img...>mon texte</a>
et là, j'obtiens exactement ce que je veux ... sous IE

ma theorie a deux balles sur comment ca fonctionne : le span prends 100% de l'espace en hauteur (dans mon A) et place la ligne de "base" au milieu de cet espace(vertical-align), et donc le texte et l'image s'alligne sur la même ligne de base ! ouf ! c'est presque logique

Mais voilà, je veux faire les choses bien, et ca ne marche pas sous FireFox (v1.0) donc c'est sans doute que c'est pas genial comme solution... et même si c'etait correct, je veux une solution qui marche aussi sous FF.
Donc voilà, je suis a la recherche d'une solution PROPRE et si possible sans hack affreux....
celui qui réussit gagne.. toute mon estime

Si vous n'avez pas compris ce que je veux, faites simplement un copié collé de ce code et ouvrez-le avec IE6 pour voir le resultat que je veux.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head></head>
<body>
<style>
a {
display:block;
width:200px;
height:50px;
border : 1px solid #99ccff;
background-color : #FFF8DC;
vertical-align: middle;
text-align : center;
}
a:hover {
background-color : #FFEBCD;
}
img {
vertical-align: middle
}
span {vertical-align:middle;
height:100% }
</style>
<a href="#"><span></span><img src="" width="30" height="30" border="0">test</a>
</body>
</html>
merci!!!
Modifié le 04 Dec 2004 - 01:10