Alignement de plusieur images

Résolu/Fermé
Pilou_le_picard Messages postés 372 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 21 septembre 2019 - 8 févr. 2013 à 15:25
Pilou_le_picard Messages postés 372 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 21 septembre 2019 - 8 févr. 2013 à 18:21
Bonjour,


Je rencontre un problème avec mon CSS.

.add {

position: absolute;
display: block;
left: 10px;
top: 136px;
float: left;
}


Voilà, l'idée est de mettre à la suite des images. Je veux que ces images soient à un endroit précis sur la verticale (top: 136px).
Mais je veux bien evidemment qu'elle soit espacée (d'où le float:left)

Dans ce cas présent, elle se mettent bien sur la verticale, mais ne s'espace pas (elle sont toute au même endroit). Mais si je mets, par exemple (width:90px), en oubliant volontairement le point-virgule, là les images se mettent l'une à la suite de l'autre, mais ne sont pas bien placé à la verticale.

Je suis pas encore pro au language CSS, aider de vos lumière s'il vous plait.

Merci

2 réponses

Profil bloqué
8 févr. 2013 à 15:39
le float left ne sert pas à les espacer, mais au contraire de les coller les uns après les autres

il te faut sans doute ajouter un margin-left:20px; par exemple
0
Pilou_le_picard Messages postés 372 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 21 septembre 2019 31
8 févr. 2013 à 15:55
Merci pour ta réponse Waelb83 et merci pour cette précision.
Mais malheureusement mon problème n'est pas résolu, les images en question reste toute sur le même axe verticale.

Elles ne s'alignent pas.

Voici comment je procède. Je dois faire une erreur quelque part, c'est certains.

.add {
margin-left:20px;
position: absolute;
display: block;
left: 10px;
top: 136px;
float: left;
}


<div ><img class="add" src="img/icon/fb.png" /></div>
<div ><img class="add" src="img/icon/tw.png" /></div>
<div ><img class="add" src="img/icon/g+.png" /></div>
<div><img class="add" src="img/icon/ptr.png" /></div>
<div><img class="add" src="img/icon/tmb.png" /></div>
<div><img class="add" src="img/icon/fkr.png" /></div>
<div><img class="add" src="img/icon/ld.png" /></div>
<div><img class="add" src="img/icon/dva.png" /></div>
<div><img class="add" src="img/icon/cloud.png" /></div>
<div><img class="add" src="img/icon/yt.png" /></div>
<div><img class="add" src="img/icon/add.png" /></div>
<div ><img class="add" src="img/icon/rss.png" /></div>



Je ne sais pas si le class="add" est bien placé.
Ne peut-on pas placer un left=70px quelque part, pour chaque image ?
0
essaie un truc plutot comme ca :

<style type="text/css">
ul.add {
position: absolute;
display: block;
left: 10px;
top: 136px;

}
ul.add li{
float: left;
margin-left:20px;
}
</style>



<ul class="add">
<li><img src="img/icon/fb.png" /></li>
<li><img src="img/icon/tw.png" /></li>
<li><img src="img/icon/g+.png" /></li>
</ul>
0
Pilou_le_picard Messages postés 372 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 21 septembre 2019 31
8 févr. 2013 à 16:51
Merci, ça fonctionne impeccablement !

J'ai juste ajouté dans ul.add li{ un color:black; pour cacher des petits points qui se mettaient à l'origine de l'image (20px).


Sans vouloir abuser de ta gentillesse, saurais-tu comment je dois m'y prendre pour que tout ceci ne bouge pas lorsqu'une personne zoom ou réduit la résolution de son navigateur. Et si je peux le coupler avec une méthode pour centrer sur la page ?

Merci encore.
0
Profil bloqué
8 févr. 2013 à 16:56
pour virer les points noir, il faut mettre un list-style: none; dans le style du LI

pour centrer sur la page, il faut remplacer le absolute, le left, et le top par un margin:auto;
pour les résolutions, c'est pas possible
car pour schématiser si tu zoom X2, tous les éléments de ta page seront X2 genre ton left:10px sera un left:20px
0
Salut,

Pour cacher les puces de la liste, tu peux utiliser la propriété css suivante :

ul.add li { list-style-type: none; }

Pour centrer ta liste, une solution simple est d'utiliser la propriété margin, avec ta liste en position relative :

ul.add {
position: relative;
display: block;
margin-top: 136px;
margin-left: auto;
margin-right: auto;
}

Enfin il ne me semble pas qu'il soit possible de contrôler l'affichage si le visiteur utilise le zoom du navigateur. Le zoom du navigateur est différent de la résolution de l'écran.
Si tu veux adapter l'affichage en fonction de la résolution, tu peux par exemple utiliser des valeurs en pourcentage pour définir les dimensions de tes éléments.
0
Pilou_le_picard Messages postés 372 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 21 septembre 2019 31
8 févr. 2013 à 17:24
Merci à vous deux pour l'astuce du list-style: none; ça marche très bien et au moins c'est fait dans les règles.

Par contre, j'avais effectivement penser au margin (les cours de CCM en parle bien), mais je pensais plutot le mettre avec l'intégralité du body.

Car dans le cas présent, seul la liste d'image sera en margin: auto; , Hors j'aimerais que l'intégralité du body reste tel qu'il est mais soit au centre, de sorte à ce que l'orsqu'on dézoom, le body reste au centre verticale de la page.

Si vous ne comprenez pas, c'est de ma faute, j'ai pas les mots encore...
0
Pilou_le_picard Messages postés 372 Date d'inscription lundi 27 août 2007 Statut Membre Dernière intervention 21 septembre 2019 31
Modifié par Pilou_le_picard le 8/02/2013 à 18:23
J'ai finalement trouvé.

J'ai simplement ajouté width: 1300px; et margin: auto; à body {

Et ainsi même, lorsque la résolution change, tout reste en place. Rien ne bouge. Donc c'est ce qu'il me manquait.

Merci à vous deux.
0