溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

五大常用Div高度自適應(yīng)的方法分別是什么

發(fā)布時間:2021-11-18 09:54:51 來源:億速云 閱讀:131 作者:柒染 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)五大常用Div高度自適應(yīng)的方法分別是什么,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

5種常用Div高度自適應(yīng)的方法

1.背景圖填充

這是使用最廣泛的一種做法,無hacks,推薦使用:

SourceCodetoRun

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>Equalheight(列高度相同的方法)title> <styletypestyletype="text/css"> body{  padding:0;  margin:0;  font-size:12px;  font-family:Arial,Helvetica,sans-serif;  line-height:140%;  background:#E7DFD3;  }  #middle{  width:580px;  float:left;  background:#FFFFFF;  text-align:left;  }  #header,#footer{  background:#E8E8E8;  width:750px;  text-align:center;  }  #sideleft{  width:580px;  float:left;  position:relative;  margin-left:-580px;  }  #sideright{  width:170px;  float:right;  position:relative;  margin:0-170px00;  background:#F0F0F0;  }  #footer{  clear:both;  }  h2,h3,address,p{  margin:0;  padding:.8em;  }  h2,h3{font-size:20px;}  style> <scripttypescripttype="text/javascript"> //<![CDATA[   functiontoggleContent(name,n){  vari,t='',el=document.getElementById(name);  if(!el.origCont)el.origCont=el.innerHTML;   for(i=0;i<N;I++)T+=EL.ORIGCONT; span <> el.innerHTML=t;  }   //]]> script> head> <body> <dividdivid="header"> <h2>Headh2> <dividdivid="middle"> <dividdivid="sideright"> <dividdivid="sideleft"> <h3>sidelefth3> <p>默認(rèn)長度加長頁面p> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、相對的設(shè)計方法并不容易。  但是如果恰當(dāng)利用,就可以成為增強親和力和易用性的一個自然選擇,  同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,  因為如果尺寸不變,則考慮的東西就相對較少??墒侨绻捎脧椥缘脑O(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,  但是你的用戶想看到的可能不一樣。任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、  相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,  就可以成為增強親和力和易用性的一個自然選擇,同時又無須做出設(shè)計上的犧牲。p> div> <h3>siderighth3> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、  相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,  就可以成為增強親和力和易用性的一個自然選擇,  同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,因為如果尺寸不變,則考慮的東西就相對較少。  可是如果采用彈性的設(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,但是你的用戶想看到的可能不一樣。  任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> div>div> <dividdivid="footer"> Footer  address> <p>制作:Yzci.Comp> div> body> html>

[可先修改部分代碼再運行查看效果]

2.采用腳本控制列的高度(一)

需要事先知道哪列的高度,以此為基準(zhǔn)用腳本控制。
document.getElementById("sideleft").style.height=document.getElementById("sideright").scrollHeight+"px"
上面的代碼是以sideright的基準(zhǔn)高度來控制sideleft的高度。

代碼簡單,但比較被動:
SourceCodetoRun

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>Equalheight(使用JS實現(xiàn)列高度相同的方法)title> <styletypestyletype="text/css"> body{  padding:0;  margin:0;  font-size:12px;  font-family:Arial,Helvetica,sans-serif;  line-height:140%;  text-align:center;  background:#E7DFD3;  }  #wrap{  width:750px;  margin:0auto;  /*overflow:hidden;*/  }  #header{  background:#E8E8E8;  }  #sideleft{  width:580px;  float:left;  background:#FFF;  text-align:left;  }  #sideright{  width:170px;  float:left;  background:#F0F0F0;  text-align:left;  }  #footer{  background:#E8E8E8;  width:100%;  float:left;  }  h2,h3,address,p{  margin:0;  padding:.8em;  }  h2,h3{font-size:20px;}  style> head> <body> <dividdivid="wrap"> <dividdivid="header"> <h2>Headh2> div> <dividdivid="sideleft"> <h3>sidelefth3> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,就可以成為增強親和力和易用性的一個自然選擇,同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,因為如果尺寸不變,則考慮的東西就相對較少??墒侨绻捎脧椥缘脑O(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,但是你的用戶想看到的可能不一樣。任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,就可以成為增強親和力和易用性的一個自然選擇,同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,因為如果尺寸不變,則考慮的東西就相對較少??墒侨绻捎脧椥缘脑O(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,但是你的用戶想看到的可能不一樣。任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> div> <dividdivid="sideright"> <h3>siderighth3> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,就可以成為增強親和力和易用性的一個自然選擇,同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,因為如果尺寸不變,則考慮的東西就相對較少。可是如果采用彈性的設(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,但是你的用戶想看到的可能不一樣。任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> div> <scripttypescripttype="text/javascript"> document.getElementById("sideleft").style.height=document.getElementById("sideright").scrollHeight+"px"  script> <dividdivid="footer"> Footer  address> <p>制作:Yzci.Comp> div> div> body> html>

[可先修改部分代碼再運行查看效果]

3.采用腳本控制列的高度(二)

不需要事先知道哪列的高度,腳本自動判斷。
代碼較復(fù)雜,有點延時:

SourceCodetoRun

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"lang="en"> <head> <title>腳本控制三行三列自適應(yīng)高度DIV布局title> <scriptsrcscriptsrc="../js/eqCols.js"type="text/javascript">script> <styletypestyletype="text/css"> body{  font-size:75%;  font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;  line-height:100%;  margin:5px;  padding:0px;  }  #header,#mid,#footer{  width:760px;  margin:0pxauto;  padding:0px;  }  #header{  background:#F4F4F4;  height:60px;  margin-bottom:5px;  }  h4,h6{  padding-top:25px;  color:#708090;  text-align:center;  margin:0;  }  #fbox{  background:#F1F1F1;  width:195px;  float:left;  }  #mbox{  background:#DFF7FF;  margin:0px5px0px;  padding:0px;  float:left;  width:360px;  }  #sbox{  background:#FFEBCC;  width:195px;  float:right;  }  p{  margin:0px;  padding:10px;  text-indent:2em;  line-height:130%;  }  #footer{  background:#CDDBED;  border-top:solid5px#FFFFFF;  text-align:center;  height:60px;  clear:both;  }  style> head> <bodyonloadbodyonload="P7_equalCols('fbox','mbox','sbox')"> <dividdivid="header"><h4>腳本控制三行三列自適應(yīng)高度DIV布局h4>div> <dividdivid="mid"> <dividdivid="fbox"><p> 親和力指的并不只是關(guān)于盲人和屏幕閱讀器。還有許多人雖然不是盲人,但是有視力障礙-你我變老時就會成為他們的一員。  使網(wǎng)站變得更具親和力的一個最簡單的方法就是允許用戶改變文字大??;拒絕提供這樣的選擇就剝奪了用戶的主導(dǎo)權(quán),很可能使用戶無法舒適地閱讀。  p><p> 親和力指的并不只是關(guān)于盲人和屏幕閱讀器。還有許多人雖然不是盲人,但是有視力障礙-你我變老時就會成為他們的一員。  使網(wǎng)站變得更具親和力的一個最簡單的方法就是允許用戶改變文字大?。痪芙^提供這樣的選擇就剝奪了用戶的主導(dǎo)權(quán),很可能使用戶無法舒適地閱讀。  p>div> <dividdivid="mbox"><p> 親和力指的并不只是關(guān)于盲人和屏幕閱讀器。還有許多人雖然不是盲人,但是有視力障礙-你我變老時就會成為他們的一員。  使網(wǎng)站變得更具親和力的一個最簡單的方法就是允許用戶改變文字大??;拒絕提供這樣的選擇就剝奪了用戶的主導(dǎo)權(quán),很可能使用戶無法舒適地閱讀。  p> <p> 如果設(shè)計者使用像素為單位指定文字大小,大多數(shù)的用戶將無法縮放文字,因為InternetExplorer改變文字大小的方式與別的瀏覽器不同。  Mozilla和Opera可以縮放已經(jīng)設(shè)定像素大小的文字,而Windows下的IE卻不能。  p> <p> 親和力指的并不只是關(guān)于盲人和屏幕閱讀器。還有許多人雖然不是盲人,但是有視力障礙-你我變老時就會成為他們的一員。  使網(wǎng)站變得更具親和力的一個最簡單的方法就是允許用戶改變文字大??;拒絕提供這樣的選擇就剝奪了用戶的主導(dǎo)權(quán),很可能使用戶無法舒適地閱讀。  p> <p> 如果設(shè)計者使用像素為單位指定文字大小,大多數(shù)的用戶將無法縮放文字,因為InternetExplorer改變文字大小的方式與別的瀏覽器不同。Mozilla和Opera可以縮放已經(jīng)設(shè)定像素大小的文字,而Windows下的IE卻不能。  p> div><dividdivid="sbox"><p> 親和力指的并不只是關(guān)于盲人和屏幕閱讀器。還有許多人雖然不是盲人,但是有視力障礙-你我變老時就會成為他們的一員。  使網(wǎng)站變得更具親和力的一個最簡單的方法就是允許用戶改變文字大??;拒絕提供這樣的選擇就剝奪了用戶的主導(dǎo)權(quán),很可能使用戶無法舒適地閱讀。  p>div> div> <dividdivid="footer"><h6>制作:Yzci.Comh6>div> body> html>

[可先修改部分代碼再運行查看效果]

4.采用負(fù)的外邊界和內(nèi)補丁相結(jié)合

不需要事先知道哪列的高度。

hacks比較多(主要是opera的),但容易使用,推薦:

SourceCodetoRun

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>Equalheight(DIV+CSS布局中自適應(yīng)高度的解決方法)title> <styletypestyletype="text/css"> body{  padding:0;  margin:0;  font-size:12px;  font-family:Arial,Helvetica,sans-serif;  line-height:140%;  text-align:center;  background:#E7DFD3;  }  #wrap{  width:750px;  margin:0auto;  overflow:hidden;  }  #header{  background:#E8E8E8;  }  #sideleft{  width:580px;  float:left;  background:#FFF;  text-align:left;  }  #sideright{  width:170px;  float:left;  background:#F0F0F0;  text-align:left;  }  /*easyclearing*/  #wrap:after  {  content:'[DONOTLEAVEITISNOTREAL]';  display:block;  height:0;  clear:both;  visibility:hidden;  }  #wrap  {  display:inline-block;  }  /*\*/  #wrap  {  display:block;  }  /*endeasyclearing*/  /*\*/  #sideleft,#sideright  {  padding-bottom:32767px!important;  margin-bottom:-32767px!important;  }  @mediaalland(min-width:0px){  #sideleft,#sideright  {  padding-bottom:0!important;  margin-bottom:0!important;  }  #sideleft:before,#sideright:before  {  content:'[DONOTLEAVEITISNOTREAL]';  display:block;  background:inherit;  padding-top:32767px!important;  margin-bottom:-32767px!important;  height:0;  }  }  /**/  #footer{  background:#E8E8E8;  width:100%;  float:left;  }  h2,h3,address,p{  margin:0;  padding:.8em;  }  h2,h3{font-size:20px;}  style> head> <body> <dividdivid="wrap"> <dividdivid="header"> <h2>Headh2> div> <dividdivid="sideleft"> <h3>sidelefth3> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,就可以成為增強親和力和易用性的一個自然選擇,同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,因為如果尺寸不變,則考慮的東西就相對較少??墒侨绻捎脧椥缘脑O(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,但是你的用戶想看到的可能不一樣。任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,就可以成為增強親和力和易用性的一個自然選擇,同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,因為如果尺寸不變,則考慮的東西就相對較少。可是如果采用彈性的設(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,但是你的用戶想看到的可能不一樣。任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> div> <dividdivid="sideright"> <h3>siderighth3> <p>要從固定的、基于像素的設(shè)計方法轉(zhuǎn)到彈性的、相對的設(shè)計方法并不容易。但是如果恰當(dāng)利用,就可以成為增強親和力和易用性的一個自然選擇,同時又無須做出設(shè)計上的犧牲。p> <p>像素是計算機屏幕上的不可縮放的點,而一個  h4就是一個字大小的方塊。由于字體大小的變化,h4  代表用戶喜歡的文字大小的相對單位。p> <p>采用印刷式的固定設(shè)計方案或許要容易些,因為如果尺寸不變,則考慮的東西就相對較少??墒侨绻捎脧椥缘脑O(shè)計方法,就可以充分利用電腦的顯示器和瀏覽器。p> <p>也許你想你的網(wǎng)站以某種特定的方式顯示,但是你的用戶想看到的可能不一樣。任何強加于用戶的東西都不利于易用性,從而對網(wǎng)站的成功造成損害。p> div> <dividdivid="footer"> Footer  address> <p>制作:Yzci.Comp> div> div> body> html>

[可先修改部分代碼再運行查看效果]

5.采用負(fù)的左右邊界和相對定位

下面的例子能較好地解決列高度相同的問題。
三行二列布局,主要內(nèi)容在左邊,網(wǎng)頁寬度750px,左列580px,右列170px。
CSS代碼:
ExampleSourceCode

#middle{  width:580px;  float:left;  background:#FFFFFF;  text-align:left;  }  #sideleft{  width:580px;  float:left;  position:relative;  margin-left:-580px;  }  #sideright{  width:170px;  float:right;  position:relative;  margin:0-170px00;  background:#F0F0F0;  }   xhtml代碼:  ExampleSourceCode  <dividdivid="middle"> <dividdivid="sideright"> <dividdivid="sideleft"> div> div> div>

從結(jié)構(gòu)看,middle(使用的是左列希望的背景色)在最外面,寬度等于sideleft的寬度,往里一層是sideright,其寬度為170px,浮動方向是右邊。但其右面的邊界是負(fù)的170px,相當(dāng)于將sideright拉向右面(右面緊貼著middle的右邊)170px的位置。而sideleft又是套在sideright里面的,其內(nèi)容先于sideright出來,左邊界是負(fù)的580,相當(dāng)于在sideright左邊580px,此時sideleft和middle位置重合。

◆優(yōu)點:不需要背景圖片,無hacks,完全的自適應(yīng)高度。

◆缺點:現(xiàn)在的代碼只能左對齊。

以上就是五大常用Div高度自適應(yīng)的方法分別是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

div
AI