純CSS響應式瀑布流 columns

效果圖 

PC 1366*768html


縮小一點bash



板端數據結構



雞端 瘋六 編輯器



這個響應式瀑布流誤打誤撞寫出來的,由於以前看百度寫過瀑布流,不太好,好複雜,又要JS什麼的,我就懶,算了算了,不寫了。ide

而後今天早上就看完數據結構教程,無聊,順便看慕課網的瀑布流教程,發現通常般,不過學到了用columns,而後又谷歌到了 break-inside 額,發現很OK喔,就OK了。佈局


我習慣寫註釋在代碼那裏,這樣感受容易看懂些,否則看一下代碼,看一下解釋,麻煩。ui

滾到最下面是所有代碼。spa

CSS代碼:核心 

* {
margin: 0;
padding: 0;
}

.waterfalls {
padding:10px;
position: relative;
margin: 0 auto;
columns:200px;  /* 每列每一個元素最小的寬度 */
column-gap: 20px; /* 每列的距離,不設置這個能夠經過margin來設置邊距 */
}

.box {
break-inside: avoid; /* 這個是設置多列布局頁面下的內容盒子如何中斷,若是不加上這個,每列的頭個元素就不會置頂,配合columns使用 */
margin-bottom:15px;

/* 若是是非圖片瀑布流的話就加上背景吧,否則感受不太好看。 */
3d

/* background:dodgerblue; */ 
color:white;
border-radius:5px;
}

.pic img { 
width: 100%; /* 建議每一個圖片寬高爲100%,若是不設置寬高,就會溢出外層盒子的,或者設置固定寬度,最好不要寬過外層盒子或者高過外層盒子。這裏說的外層盒子就是html代碼裏的 .box */
height: 100%; 
border-radius: 5px;
border: 1px solid #ccc;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}

不加一些樣式的問題:

不加 break-inside: avoid;code

就是每列元素不置頂嘛,而break-inside: avoid; 我也是剛學的,不太大懂意思😄



每一個圖片的寬度不設置:

/* width: 100%; */ 註釋掉

就會這個樣子 相似 放羊 管不住



而若是不是圖片瀑布流 是其餘瀑布流 把每一個pic標籤去掉就好啦,box裏面放要瀑布流的內容


HTML代碼:

圖片替換成 寄幾 本地的

<div class="waterfalls">
<div class="box">
<div class="pic"><img src="images/1.jpg" alt="1.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/2.jpg" alt="2.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/3.jpg" alt="3.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/4.jpg" alt="4.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/5.jpg" alt="5.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/6.jpg" alt="6.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/7.jpg" alt="7.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/8.jpg" alt="8.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/9.jpg" alt="9.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/10.jpg" alt="10.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/11.jpg" alt="11.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/12.jpg" alt="12.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/13.jpg" alt="13.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/14.jpg" alt="14.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/15.jpg" alt="15.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/16.jpg" alt="15.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/17.jpg" alt="15.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/18.jpg" alt="15.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/19.jpg" alt="15.jpg"></div>
</div>
<div class="box">
<div class="pic"><img src="images/20.jpg" alt="15.jpg"></div>
</div>
<div class="box">
這是一段文本。兔月大大🌙
</div>
</div>



全代碼:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<style>* {margin: 0;padding: 0;}.waterfalls {padding:10px;position: relative;margin: 0 auto;columns:200px;column-gap: 20px;}.box {break-inside: avoid;margin-bottom:15px;/* background:dodgerblue; */color:white;border-radius:5px;}.pic img {width: 100%;height: 100%;border-radius: 5px;border: 1px solid #ccc;box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);}</style>
<div class="waterfalls">
<div class="box">
<div class="pic">
<img src="images/1.jpg" alt="1.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/2.jpg" alt="2.jpg">
</div></div><div class="box">
<div class="pic">
<img src="images/3.jpg" alt="3.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/4.jpg" alt="4.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/5.jpg" alt="5.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/6.jpg" alt="6.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/7.jpg" alt="7.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/8.jpg" alt="8.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/9.jpg" alt="9.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/10.jpg" alt="10.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/11.jpg" alt="11.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/12.jpg" alt="12.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/13.jpg" alt="13.jpg">
</div>
</div>
<div class="box">
<div class="pic">
<img src="images/14.jpg" alt="14.jpg">
</div>
</div>
<div class="box"><div class="pic"><img src="images/15.jpg" alt="15.jpg"></div></div><div class="box"><div class="pic"><img src="images/16.jpg" alt="15.jpg"></div></div><div class="box"><div class="pic"><img src="images/17.jpg" alt="15.jpg"></div></div><div class="box"><div class="pic"><img src="images/18.jpg" alt="15.jpg"></div></div><div class="box"><div class="pic"><img src="images/19.jpg" alt="15.jpg"></div></div><div class="box"><div class="pic"><img src="images/20.jpg" alt="15.jpg"></div></div><div class="box">這是一段文本。兔月大大🌙</div></div></body></html>複製代碼



圖片能夠在behance下載一些,或者國內的一些插圖網。

第一次在掘金寫,編輯器還行吧,這掘金的編輯器怎麼發佈後,代碼會亂了。

我喜歡語雀的。


謝謝閱讀。Thanks

相關文章
相關標籤/搜索