2013-03-11 81 views
2

这是我想要做的;如何安排多个div并排,一个在另一个之下

Pinterest

比方说,我有10周或更多的矩形的div。我想把他们中的5个并排放置,其他5个放在其他区域下。我的问题是;

我应该如何命名div?如果班级名称为每个div更改或ID更改或我应该给;

float:left 

属性给所有div让他们并排排列。所以当没有水平的地方时,其他五个将被放置在它们下面。

我的意思是这10个div(或更多)的结构应该如何?

+1

我不知道您了解class和id是如何工作的...当你想应用样式的1个多元素类的使用。 Ids每页使用一次。如果这些div应该都是相同的样式,它们将具有相同的类名...您尝试使用的效果可以很容易地通过[Nested](https://github.com/suprb/Nested)实现。 – brbcoding 2013-03-11 13:50:32

+0

如果将它们浮起来,下一行将从前一行的最高div的末尾开始。你需要让js使它们完全适合在前面的行块或固定高度的所有div元素。 – otinanai 2013-03-11 13:51:18

+0

它不能自动完成AFAIK,一个脚本似乎绝对地定位每一个脚本,然后添加'top'和'left'属性来根据他人的高度来定位它们。 – Blieque 2013-03-11 13:56:19

回答

8

您可能会发现Wookmark JQuery撑着有用。它像Masonry但我认为它更容易。把所有的图片放在一个div里面,在<script></script>中引用它,它基本上和Pininterest有相同的效果。

+2

有人建议添加[砌体](http://masonry.desandro.com)作为答案。我建议你编辑你的答案,并添加链接到砌体:) – Morpheus 2013-12-13 16:38:08

0

你可以做的是为所有的div创建一个容器。并且在他们下面添加10个div。

<div id="divContainer"> 

    <div class="theDiv"> 
     //Div content 1 
    </div> 

    <div class="theDiv"> 
     //Div content 2 
    </div> 

    <div class="theDiv"> 
     //Div content 3 
    </div> 

    <div class="theDiv"> 
     //Div content 4 
    </div> 

    <div class="theDiv"> 
     //Div content 5 
    </div> 

    <div class="theDiv"> 
     //Div content 6 
    </div> 

    <div class="theDiv"> 
     //Div content 7 
    </div> 

    <div class="theDiv"> 
     //Div content 8 
    </div> 

    <div class="theDiv"> 
     //Div content 9 
    </div> 

    <div class="theDiv"> 
     //Div content 10 
    </div> 

</div> 

然后添加样式。

  • 首先,设置divContainer的宽度,可以说容器是1000px,每个div里面是200px。
  • 其次,您添加浮动属性。

有点像。

<style> 
    #divContainer {background: blue; width: 1000px; float: left;} 
    .theDiv {background: pink; float: left;} 
</style> 

然后之后,你可以更多的性能,使它看起来更像边缘等。

希望这有助于你=)

+2

这不会工作,因为不同高度的不同div会使它看起来非常糟糕http://jsfiddle.net/UfVrH/ – 2013-07-19 11:13:46

1

如果使用类,则可以将它用于多个对象而不更改名称。
试试这个:

<style> 
.container { 
    overflow:auto; 
} 
.sidebyside { 
    float:left; 
    width:100px; 
    height:100px; 
    border-style:solid; 
    margin:5px; 
} 
.belowdiv { 
    width:300px; 
    height:100px; 
    border-style:solid; 
    margin:5px; 
} 
</style> 

<div class="container"> 
    <div class="sidebyside">div0</div> 
    <div class="sidebyside">div1</div> 
    <div class="sidebyside">div2</div> 
    <div class="sidebyside">div3</div> 
    <div class="sidebyside">div4</div> 
</div> 
<div class="belowdiv">div5</div> 
<div class="belowdiv">div6</div> 
<div class="belowdiv">div7</div> 
<div class="belowdiv">div8</div> 
<div class="belowdiv">div9</div> 
+0

-1你完全错过了当不同高度的div在一个容器中会发生什么点。 – 2013-07-19 11:16:28

+0

@Layne你可以把上面的所有内容放在另一个div中,并做同样的工作来水平排列它们,并简单地支持不同的大小。 – Vahid 2013-07-19 11:22:17