国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

瀑布流布局的兩種實現方式:傳統多列浮動和絕對定位布局

2024-07-11 08:28:31
字體:
來源:轉載
供稿:網友
傳統多列浮動

各列固定寬度,并且左浮動;
一列中的數據塊為一組,列中的每個數據塊依次排列即可;
更多數據加載時,需要分別插入到不同的列上;

優點:
(1)布局簡單,應該說沒啥特別的難點;
(2)不用明確知道數據塊高度,當數據塊中有圖片時,就不需要指定圖片高度。
缺點:
(1)列數固定,擴展不易,當瀏覽器窗口大小變化時,只能固定的x列,如果要添加一列,很難調整數據塊的排列;
(2)滾動加載更多數據時,還要指定插入到第幾列中,還是不方便。

代碼范例:

復制代碼
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>瀑布流布局</title>
<style>
*{ margin:0px; padding:0px;}
li{ list-style:none}
#div1{ width:760px; height:auto; margin:20px auto;}
ul{ width:240px; margin:5px; float:left;}
</style>
</head>
<body>
<div id="div1">
<ul>
<li>
<img src="img/1.jpg" />
</li>
<li>
<img src="img/2.jpg" />
</li>
<li>
<img src="img/3.jpg" />
</li>
</ul>
<ul>
<li>
<img src="img/4.jpg" />
</li>
<li>
<img src="img/5.jpg" />
</li>
<li>
<img src="img/6.jpg" />
</li>
</ul>
<ul>
<li>
<img src="img/7.jpg" />
</li>
<li>
<img src="img/8.jpg" />
</li>
<li>
<img src="img/9.jpg" />
</li>
</ul>
</div>
</body>
</html>

絕對定位
可謂是最優的一種方案。

優點:
方便添加數據內容,窗口變化,列數/數據塊都會自動調整;

缺點:
(1)需要實現知道數據塊高度,如果其中包含圖片,需要知道圖片高度;
(2)JS 動態計算數據塊位置,當窗口縮放頻繁,可能會狂耗性能。

代碼范例:

復制代碼
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>定位的瀑布流</title>
<style>
*{ margin:0px; padding:0px;}
li{ list-style:none}
#div1{ width:760px; height:auto; margin:20px auto; position:relative;}
li{ position:absolute;}
</style>
<script language="javascript">
window.onload=function(){
var ali = document.getElementsByTagName('li');
var aHeight={L:[],C:[],R:[]};
for(var i = 0;i<ali.length;i++){
var iNow=i%3;
switch(iNow){
case 0:
ali[i].style.left='5px';
aHeight.L.push(ali[i].offsetHeight);
var step=Math.floor(i/3);
if(!step){
ali[i].style.top=0;
}else{
var sum=0;
for(var j=0;j<step;j++){
sum+=aHeight.L[j]+5;
}
ali[i].style.top=sum+'px';
}
break;
case 1:
ali[i].style.left='250px';
aHeight.C.push(ali[i].offsetHeight);
var step=Math.floor(i/3);
if(!step){
ali[i].style.top=0;
}else{
var sum=0;
for(var j=0;j<step;j++){
sum+=aHeight.C[j]+5;
}
ali[i].style.top=sum+'px';
}
break;
case 2:
ali[i].style.left='495px';
aHeight.R.push(ali[i].offsetHeight);
var step=Math.floor(i/3);
if(!step){
ali[i].style.top=0;
}else{
var sum=0;
for(var j=0;j<step;j++){
sum+=aHeight.R[j]+5;
}
ali[i].style.top=sum+'px';
}
break;
}
}
}
</script>
</head>
<body>
<div id="div1">
<ul>
<li>
<img src="img/1.jpg" />
</li>
<li>
<img src="img/2.jpg" />
</li>
<li>
<img src="img/3.jpg" />
</li>
<li>
<img src="img/4.jpg" />
</li>
<li>
<img src="img/5.jpg" />
</li>
<li>
<img src="img/6.jpg" />
</li>
<li>
<img src="img/7.jpg" />
</li>
<li>
<img src="img/8.jpg" />
</li>
<li>
<img src="img/9.jpg" />
</li>
</ul>
</div>
</body>
</html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙坪坝区| 海伦市| 舒城县| 凉城县| 鄄城县| 曲靖市| 辰溪县| 柳河县| 浪卡子县| 天等县| 阜新市| 怀安县| 沧源| 来安县| 连江县| 勃利县| 巴彦淖尔市| 彰武县| 当雄县| 平阳县| 唐海县| 北碚区| 新宁县| 包头市| 龙里县| 吉安市| 正安县| 衢州市| 十堰市| 荥经县| 富裕县| 邵武市| 温州市| 桐乡市| 民勤县| 合阳县| 永州市| 辛集市| 沅陵县| 涪陵区| 临湘市|