温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

五大常用Div高度自适应的方法分别是什么

发布时间:2021-11-18 09:54:51 来源:亿速云 阅读:132 作者:柒染 栏目:web开发

本篇文章给大家分享的是有关五大常用Div高度自适应的方法分别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

5种常用Div高度自适应的方法

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>默认长度加长页面p> <p>要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。  但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,  同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,  因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,  但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。p> <p>要从固定的、基于像素的设计方法转到弹性的、  相对的设计方法并不容易。但是如果恰当利用,  就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。p> div> <h3>siderighth3> <p>要从固定的、基于像素的设计方法转到弹性的、  相对的设计方法并不容易。但是如果恰当利用,  就可以成为增强亲和力和易用性的一个自然选择,  同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。  可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。  任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。p> div>div> <dividdivid="footer"> Footer  address> <p>制作:Yzci.Comp> div> body> html>

[可先修改部分代码再运行查看效果]

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

需要事先知道哪列的高度,以此为基准用脚本控制。
document.getElementById("sideleft").style.height=document.getElementById("sideright").scrollHeight+"px"
上面的代码是以sideright的基准高度来控制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实现列高度相同的方法)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>要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。p> <p>要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。p> div> <dividdivid="sideright"> <h3>siderighth3> <p>要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。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.采用脚本控制列的高度(二)

不需要事先知道哪列的高度,脚本自动判断。
代码较复杂,有点延时:

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>脚本控制三行三列自适应高度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>脚本控制三行三列自适应高度DIV布局h4>div> <dividdivid="mid"> <dividdivid="fbox"><p> 亲和力指的并不只是关于盲人和屏幕阅读器。还有许多人虽然不是盲人,但是有视力障碍-你我变老时就会成为他们的一员。  使网站变得更具亲和力的一个最简单的方法就是允许用户改变文字大小;拒绝提供这样的选择就剥夺了用户的主导权,很可能使用户无法舒适地阅读。  p><p> 亲和力指的并不只是关于盲人和屏幕阅读器。还有许多人虽然不是盲人,但是有视力障碍-你我变老时就会成为他们的一员。  使网站变得更具亲和力的一个最简单的方法就是允许用户改变文字大小;拒绝提供这样的选择就剥夺了用户的主导权,很可能使用户无法舒适地阅读。  p>div> <dividdivid="mbox"><p> 亲和力指的并不只是关于盲人和屏幕阅读器。还有许多人虽然不是盲人,但是有视力障碍-你我变老时就会成为他们的一员。  使网站变得更具亲和力的一个最简单的方法就是允许用户改变文字大小;拒绝提供这样的选择就剥夺了用户的主导权,很可能使用户无法舒适地阅读。  p> <p> 如果设计者使用像素为单位指定文字大小,大多数的用户将无法缩放文字,因为InternetExplorer改变文字大小的方式与别的浏览器不同。  Mozilla和Opera可以缩放已经设定像素大小的文字,而Windows下的IE却不能。  p> <p> 亲和力指的并不只是关于盲人和屏幕阅读器。还有许多人虽然不是盲人,但是有视力障碍-你我变老时就会成为他们的一员。  使网站变得更具亲和力的一个最简单的方法就是允许用户改变文字大小;拒绝提供这样的选择就剥夺了用户的主导权,很可能使用户无法舒适地阅读。  p> <p> 如果设计者使用像素为单位指定文字大小,大多数的用户将无法缩放文字,因为InternetExplorer改变文字大小的方式与别的浏览器不同。Mozilla和Opera可以缩放已经设定像素大小的文字,而Windows下的IE却不能。  p> div><dividdivid="sbox"><p> 亲和力指的并不只是关于盲人和屏幕阅读器。还有许多人虽然不是盲人,但是有视力障碍-你我变老时就会成为他们的一员。  使网站变得更具亲和力的一个最简单的方法就是允许用户改变文字大小;拒绝提供这样的选择就剥夺了用户的主导权,很可能使用户无法舒适地阅读。  p>div> div> <dividdivid="footer"><h6>制作:Yzci.Comh6>div> body> html>

[可先修改部分代码再运行查看效果]

4.采用负的外边界和内补丁相结合

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

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布局中自适应高度的解决方法)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>要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。p> <p>要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。p> div> <dividdivid="sideright"> <h3>siderighth3> <p>要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。p> <p>像素是计算机屏幕上的不可缩放的点,而一个  h4就是一个字大小的方块。由于字体大小的变化,h4  代表用户喜欢的文字大小的相对单位。p> <p>采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。p> <p>也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。p> div> <dividdivid="footer"> Footer  address> <p>制作:Yzci.Comp> div> div> body> html>

[可先修改部分代码再运行查看效果]

5.采用负的左右边界和相对定位

下面的例子能较好地解决列高度相同的问题。
三行二列布局,主要内容在左边,网页宽度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>

从结构看,middle(使用的是左列希望的背景色)在最外面,宽度等于sideleft的宽度,往里一层是sideright,其宽度为170px,浮动方向是右边。但其右面的边界是负的170px,相当于将sideright拉向右面(右面紧贴着middle的右边)170px的位置。而sideleft又是套在sideright里面的,其内容先于sideright出来,左边界是负的580,相当于在sideright左边580px,此时sideleft和middle位置重合。

◆优点:不需要背景图片,无hacks,完全的自适应高度。

◆缺点:现在的代码只能左对齐。

以上就是五大常用Div高度自适应的方法分别是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

div
AI