均匀分布图像&通过CSS在Div中水平放置

时间:2012-05-12 18:30:35

标签: css html

我很难找到针对我案例的具体信息。我想在940px div上分发3个图像缩略图,以便与我的其他内容对齐。到目前为止,我已经将图像水平排列,但间距是关闭的。一切都向左移。

这是我的CSS:

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

我的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>

示例图片

我目前拥有的内容:

enter image description here

我想要实现的目标:

enter image description here

非常感谢您的帮助。

6 个答案:

答案 0 :(得分:45)

使用我的答案中显示的技巧:Fluid width with equally spaced DIVs

以下是您的代码: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>​

答案 1 :(得分:29)

有一个干净的解决方案:

http://radiatingstar.com/distribute-divs-images-equaly-line

#container {
    text-align: justify;
}
#container > div {
    width: 100px; /* Declare your value. Can be in relative units. */
    display: inline-block;
    vertical-align: top;
}
#container:after {
    content: "";
    width: 100%;
    display: inline-block;
}

答案 2 :(得分:22)

答案很简单,只需使用:

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

这就是全部!

答案 3 :(得分:3)

尝试添加

  

位置:相对;文本对齐:中心;

在#thumbs中,并在#thumbs中设置(或img)的宽度和边距。

像这样,测试各种值:

#thumbs a {
  width: 25%;
  margin: 0 4%;
  text-align:center;
}

答案 4 :(得分:2)

text-align: justify;的缺点是,每两个内联块元素之间必须有空格,否则这两个元素将相互粘连。

您可以在此处查看此行为: http://jsfiddle.net/JTcGZ/1552/

实现这一目标的新现代方法是使用flex。

#thumbs {   
    display: flex;
    justify-content: space-between // flex-start | flex-end | center | space-around;
    align-items: stretch // flex-start | flex-end | center | baseline;
}
#thumbs a {
    display: inline-block;
}

您还可以在现代浏览器中定义百分比宽度:

#thumbs a {
    width: calc((100% / 3) - 10px);
}

请访问此页面以获取有关flex布局的更多详细信息:

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

答案 5 :(得分:1)

为什么包装id div thumb不能用作顶部填充为90px的容器,而其他内部元素使用一个简单的类(不是id,因此可以重复使用),所有都浮动。这样他们就可以完美地水平对齐,包装容器也可以提供你想要的边距。你还可以使用相当少的代码来完成你想要的任务。