2015-04-28 37 views
1

使用flexbox,並基於以下標記,是否有可能讓列表中的最後一個項目在視覺上向上移動並將其自身「打包」到可用空間中?flexbox可以用來「包裝」列表中的物品嗎?

我知道這可以通過使用浮動或flexbox的不同標記(每列中的3列和項目)來完成,但我很好奇這是flexbox可以用這個標記做些什麼。

html, 
 
body { 
 
\t height: 100%; 
 
} 
 

 
html { 
 
\t box-sizing: border-box; 
 
} 
 

 
*, 
 
*:before, 
 
*:after { 
 
\t box-sizing: inherit; 
 
} 
 

 
ul { 
 
\t list-style: none; 
 
\t margin: 0; 
 
\t padding: 0; 
 
} 
 

 
.layout { 
 
\t background-color: yellow; 
 
\t display: flex; 
 
\t flex-flow: row wrap; 
 
\t align-items: flex-start; 
 
} 
 

 
.layout__item { 
 
\t background-color: red; 
 
\t width: 33.33%; 
 
\t padding-right: 15px; 
 
} 
 

 
/* Every 3rd item. */ 
 
.layout__item:nth-child(3n) { 
 
\t padding-right: 0; 
 
} 
 

 
/* Every item after the first 3. */ 
 
.layout__item:nth-child(n+4) { 
 
\t padding-top: 15px; 
 
} 
 

 
.layout__item-content { 
 
\t background-color: green; 
 
\t height: 100%; 
 
} 
 

 
.layout__item-img { 
 
\t background-color: blue; 
 
\t height: 100%; 
 
}
<ul class="layout"> 
 
\t <li class="layout__item"> 
 
\t \t <div class="layout__item-content"> 
 
\t \t \t <div class="layout__item-img" style="height:300px"></div> 
 
\t \t \t <div class="layout__item-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio quos voluptates impedit optio id, fugit, nobis assumenda eveniet, veniam deserunt eum magni. Voluptates quam, deserunt sit pariatur ducimus omnis eligendi!</div> 
 
\t \t </div> 
 
\t </li> 
 
\t <li class="layout__item"> 
 
\t \t <div class="layout__item-content"> 
 
\t \t \t <div class="layout__item-img" style="height:100px"></div> 
 
\t \t \t <div class="layout__item-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, saepe!</div> 
 
\t \t </div> 
 
\t </li> 
 
\t <li class="layout__item"> 
 
\t \t <div class="layout__item-content"> 
 
\t \t \t <div class="layout__item-img" style="height: 200px;"></div> 
 
\t \t \t <div class="layout__item-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia placeat quidem, illum cumque nisi repellat excepturi iusto aperiam tempore quam.</div> 
 
\t \t </div> 
 
\t </li> 
 
\t <li class="layout__item"> 
 
\t \t <div class="layout__item-content"> 
 
\t \t \t <div class="layout__item-img" style="height:150px;"></div> 
 
\t \t \t <div class="layout__item-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas natus odio quae nam officia libero.</div> 
 
\t \t </div> 
 
\t </li> 
 
\t <li class="layout__item"> 
 
\t \t <div class="layout__item-content"> 
 
\t \t \t <div class="layout__item-img" style="height: 321px;"></div> 
 
\t \t \t <div class="layout__item-text">Lorem ipsum dolor sit amet.</div> 
 
\t \t </div> 
 
\t </li> 
 
</ul>

+0

不能以'彎曲方向:row'。 – Oriol

+0

你的意思是摺疊只有最後一個列表項目 - 所有其他人保持在其指定的高度? – markE

+0

@markE我的意思是最後一項填充第二列中的空白區域,基本上是磚石佈局。 –

回答