J'ai un div avec un tas de balises d'image à l'intérieur, voici un exemple:
<div style="margin: 0; padding: 0; border: 0;">
<a href="/view/foo1"><img src="foo1.jpg" alt="Foo1" /></a>
<a href="/view/foo2"><img src="foo2.jpg" alt="Foo2" /></a>
<a href="/view/foo3"><img src="foo3.jpg" alt="Foo3" /></a>
</div>
Parce qu'il y a un espace entre les balises, les navigateurs afficheront un espace entre les images (Chrome décide de 4px). Comment puis-je dire au navigateur de ne montrer AUCUN espace blanc entre les images, sans placer le> et le <l'un à côté de l'autre? Je sais que l'espacement des lettres s'applique en plus de ce que le navigateur décide d'utiliser, donc c'est inutile même avec une valeur négative. Fondamentalement, je vais chercher quelque chose comme Twitter au bas de leur page d'accueil. J'ai regardé leur code et ils utilisent une liste non ordonnée. Je pourrais simplement le faire, mais j'aimerais avoir une explication technique pour expliquer pourquoi il semble qu'il n'y ait aucun moyen d'éliminer l'espace blanc entre ces images.
essayez d'ajouter img {margin:0;padding:0;float:left}
en d'autres termes, supprimez les margin
et padding
par défaut des navigateurs pour img
et float
.
Si pour une raison quelconque vous voulez le faire:
float
s, et;Vous pouvez utiliser la solution à partir d'ici:
Comment supprimer l'espace entre les éléments du bloc en ligne?
Je l'ai affiné légèrement depuis lors.
Voir: http://jsfiddle.net/JVd7G/
letter-spacing: -1px
est de réparer Safari.
div {
font-size: 0;
letter-spacing: -1px
}
<div style="margin: 0; padding: 0; border: 0;">
<a href="/view/foo1"><img src="http://dummyimage.com/64x64/444/fff" alt="Foo1" /></a>
<a href="/view/foo2"><img src="http://dummyimage.com/64x68/888/fff" alt="Foo2" /></a>
<a href="/view/foo3"><img src="http://dummyimage.com/64x72/bbb/fff" alt="Foo3" /></a>
</div>
Solution la plus simple qui ne détruit pas la mise en page et préserve la mise en forme du code:
<div style="margin: 0; padding: 0; border: 0;">
<a href="/view/foo1"><img src="foo1.jpg" alt="Foo1" /></a><!--
--><a href="/view/foo2"><img src="foo2.jpg" alt="Foo2" /></a><!--
--><a href="/view/foo3"><img src="foo3.jpg" alt="Foo3" /></a>
</div>
L'espacement provoque le déplacement des images car elles sont des éléments en ligne. Si vous souhaitez les empiler, vous pouvez utiliser la liste non ordonnée (comme le fait Twitter) car cela mettra chaque image dans un élément de bloc.
Les éléments en ligne sont affichés en ligne avec le texte.
Vous pouvez également faire en sorte que toutes les ancres flottent à gauche et définissent la marge gauche à -1
Si vous diffusez vos pages avec Apache, vous pouvez utiliser le module Google PageSpeed. Cela a des options que vous pouvez utiliser pour réduire les espaces blancs:
http://code.google.com/speed/page-speed/docs/filter-whitespace-collapse.html
Vous n'avez pas besoin d'utiliser les options les plus "dangereuses" de PageSpeed.
Consultez également les réponses à cette question pour savoir comment supprimer les espaces en CSS:
Il semble que l'utilisation d'un tableau soit la bonne façon de procéder, car les espaces blancs n'ont aucun effet entre les cellules.