分別用css3 js jQuery三種方法寫瀑布流

2021-09-03 09:17:46 字數 1413 閱讀 1776

一、什麼是瀑布流

像下面的圖中,1234這四個區域都是同乙個寬度的元素,並且佔據了一行的寬度。那麼第五塊元素想要插進頁面的時候,就選擇此時高度最小的第四列。依次類推。

所以,我們可以發現,這裡的問題主要有以下幾個

接下來我們一一解決上面提出來的問題。

首先,解決首行如何布局。

我們先用乙個大的盒子裝載所有的,並為其設定position為relative。

至於為什麼要設定position為relative,那是因為待會我們要設定的box需要設定position為absolute,而這個absolute的相對定位是相對於它最接近的設定了position(值為relative)的元素而定位的。

可以在這裡就設定寬度也可以待會在js中再設定寬度。取決於你。

#main

然後每乙個所在的區域我們用乙個box來包裹,在裡面新增和介紹文字。然後設定一下陰影,邊框什麼的。

接下來來講js部分。

首先要做的就是將除了第一行以外的元素設定偏移值,使他們偏移到合適的位置(高度最低的列)除此之外還要設定這個元素的position為absolute。因為只有absolute是不占用偏移值所在區間的空間位置。

所以我們需要獲取當前高度最小的是哪一列。

獲取到高度最小的是哪一列之後,將當前元素的top設定為這一列的高度,left為乙個box的寬度乘上當前列的索引值。

這樣,當前元素就去到了它該去的地方了。然後,將當前box的寬度新增到當前列的高度,那麼此時,這一列就有可能不再是高度最低的列了。

我們首先獲取到當前所有class為box的元素(自定義函式getelebycls),然後,遍歷這些元素,當元素不在第一行的時候,就開始設定top和left的值。

不說了,直接看**。

function getelebycls(parent,clsname) 

}return allcls;

}function wate***ll(parent,box)

#main

.box

.pic

.pic img

三、使用jquery來實現瀑布流

(下面是我16年的時候寫的呱呱呱)

簡單的設定了幾個div而已;下面的是全場的重點,也是整個js瀑布流設計的思想體現:

整個設計的思想就是先把第一行放好後,尋找到第一行高度最小的一張,將下一張放置在它的下面,然後將這兩張**的高度加起來繼續尋找下一張高度最小的,依次類推的放置好所有的;而每一行放置的數量就是螢幕的大小除以的寬度;

css隱藏的三種方法

1 使用display none來隱藏所有內容 display none可以讓網頁中所有內容不顯示,如 文字 鏈結 div層,是推薦的內容隱藏方式。style display none 我不占地兒,你看不見我 div 值 描述 none 此元素不會被顯示。block 此元素將顯示為塊級元素,此元素前...

css隱藏div三種方法

1 display none 設定為display none 的元素將不會再占用頁面空間,其占用的空間會被其他元素所占有,從而會引起瀏覽器的重排和重匯。2 visibility hidden 雖然能夠隱藏元素,但是該元素仍會占用頁面空間,因此只會導致瀏覽器的重匯而不會引起重排。3 opacity 0...

三種方法實現CSS三欄布局

本文由雲 社群發表 本文會分別介紹三種css實現三欄布局的方法,可在瀏覽器中開啟檢視效果 實現方法 需要左欄向左浮動,右欄向右浮動,中間設左右margin來撐開距離 doctype html en utf 8 css實現三欄布局1 title text css body left middle ri...