Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Distributing images evenly & horizontally in a Div via CSS

Tags:

html

css

I'm having a difficult time finding specific info for my case. I'd like to distribute 3 image thumbnails across a 940px div in order to line up with the rest of my content. So far, I've gotten the images to line up horizontally, but the spacing is off & everything is shifted left.

Here is my CSS:

#thumbs {      width: 940px;   margin-top:90px;   margin-left: auto;    margin-right: auto; } 

My HTML:

<div id="thumbs">   <a id="single_image" href="/dev/images/1.png">     <img src="/dev/images/thumb1.png" alt=""/>   </a>   <a id="single_image" href="/dev/images/2.png">     <img src="/dev/images/thumb2.png" alt=""/>   </a>   <a id="single_image" href="/dev/images/3.png">     <img src="/dev/images/thumb3.png" alt=""/>   </a> </div> 

Example Images

What I currently have:

enter image description here

What I'm trying to achieve:

enter image description here

Your help is much appreciated.

like image 428
Willard Avatar asked May 12 '12 18:05

Willard


People also ask

How do I space an image in CSS?

You can either use the margin or its shorthand properties to add space between the images. For the horizontal spacing, you can use the margin-left and margin-right. While for the vertical spacing you can use the margin-top and margin-bottom properties.


2 Answers

Use the technique shown in my answer here: Fluid width with equally spaced DIVs

Here it is with your code: http://jsfiddle.net/thirtydot/JTcGZ/

CSS:

#thumbs {        width: 540px;     margin-top:90px;     margin-left: auto;      margin-right: auto;       text-align: justify;     -ms-text-justify: distribute-all-lines;     text-justify: distribute-all-lines; } #thumbs a {     vertical-align: top;     display: inline-block;     *display: inline;     zoom: 1; } .stretch {     width: 100%;     display: inline-block;     font-size: 0;     line-height: 0 } 

HTML:

<div id="thumbs">     <a id="single_image1" href="#"><img src="http://dummyimage.com/150x150/444/fff" alt=""/></a>     <a id="single_image2" href="#"><img src="http://dummyimage.com/150x150/444/fff" alt=""/></a>     <a id="single_image3" href="#"><img src="http://dummyimage.com/150x150/444/fff" alt=""/></a>     <span class="stretch"></span> </div>​ 
like image 91
thirtydot Avatar answered Nov 10 '22 17:11

thirtydot


The answer is very simple, just use:

.container {     display: flex;     justify-content:space-between; } 

That's all!

like image 20
Lalo Avatar answered Nov 10 '22 17:11

Lalo