2014-11-14 78 views
0

我想为投资组合创建布局。在大屏幕上,它有三列,包含均匀分布的图像。这里是我的意思的例子:为要显示的图像创建流体3列布局

http://www.yourinspirationweb.com/wp-content/uploads/2012/09/portfolio-3-colonne.png

我创建了一个粗略的jsfiddle这里:http://jsfiddle.net/3h2fm6pb/1/

下面是HTML:

<div id="container"> 
    <div class="imgContainer"> 
     <div class="image"> 
      <img src="http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg"> 
     </div> 
     <div class="image"> 
      <img src="https://photographylife.com/wp-content/uploads/2014/06/Nikon-D810-Image-Sample-6.jpg"> 
     </div> 
     <div class="image"> 
      <img src="http://www.keenthemes.com/preview/conquer/assets/plugins/jcrop/demos/demo_files/image1.jpg"> 
     </div> 
     <div class="image"> 
      <img src="http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg"> 
     </div> 
     <div class="image"> 
      <img src="https://photographylife.com/wp-content/uploads/2014/06/Nikon-D810-Image-Sample-6.jpg"> 
     </div> 
     <div class="image"> 
      <img src="http://www.keenthemes.com/preview/conquer/assets/plugins/jcrop/demos/demo_files/image1.jpg"> 
     </div> 
    </div> 
</div> 

这里是SCSS:

#container { 
    max-width: 600px; 
    margin: 0 auto; 

    .imgContainer{ 
     width: 100%; 
    } 

} 

.image { 
    float: left; 
    width: 33%; 
    img { 
     width: 100%; 
     display: block; 
    } 
} 

我挣扎得到空白我n之间的图像,所以无论图像在哪里,他们总是看起来均匀间隔。

padding: 5px;添加到.image类,不起作用,因为它使它只有两个图像可以放入该行。为什么是这样?

我知道这个jsfiddle在调整视口尺寸时缩小了整个容器,但是我要实现媒体查询,以便图像的尺寸达到50%等等。因此,两个图像将在行而不是三个。

因此,考虑到这一点,创建此布局的最有效方法是什么,以便图像在它们之间具有很好的填充效果,无论视口大小如何。到目前为止,我尝试过的方法效果不佳......在一个屏幕尺寸上它看起来不错,但是当它们重新安排另一个视口尺寸时,空白看起来不均匀。

这里是什么,我与视尺寸意味着故障:

大屏幕:每行三个图像...有中央和侧面图像之间的差距......之间有差距每一行。这些差距是相同的数额。

较小的屏幕:在每一行上的两个图像...有两个图像之间的间隙...有

移动屏幕的每一行之间的间隙:每行一个图像....有只有每个图像的下方和上方有间隙

希望这是有道理的。

在此先感谢。

回答

2

您需要将box-sizing设置为border-box才能使用paddingwidth。这里已满example

+0

非常感谢这个例子!我甚至都没有意识到你可以像使用scss一样使用媒体查询......我一直在使用他们很长的路我猜...通过说@ @media only screen和(min-width:48em){} '等等...我可以问你在'html {}'语句中做了什么吗?你有没有设置HTML边框,然后它内的一切继承?我对边框和scss很陌生。另外,是否有任何特定的原因,为什么你在'.image'类中使用'display:inline-block'而不是'float:left'?再次感谢! – Forrest 2014-11-14 13:15:40

+0

1)''inline-block'不像'float'允许使用不同高度的图像(只是试试)。 2)关于'html {}'和'border-box'你明白一切正确。它只是一个切换css box模型的更方便的方法。欢迎 – sgromskiy 2014-11-14 14:51:46