如何用jquery实现高度自适应

 我来答
huanglenzhi
推荐于2016-06-08 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517196
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
大家在有时的网页设计中,前端会出现这样一个问题,因为左侧的侧边导航只有几个链接,很短,而右边的正文部分有可能会很长,怎么才能让左侧的背景能一直随着右侧的内容高度的增加而增加呢?当然,这种解决方法有两种,一种就是让左侧的导航漂浮,在右侧下拉或者是窗口拉出了左侧的高度时置顶,像糗事百科右侧的广告那样,这种方法现在也很流行,不过,我们今天不讲这种,讲的是另一种方法,让左右两边的div的高度能一致,随时一致,如果内容是固定的话,好做,左右固定高度,如果右侧的内容不固定呢?还是有办法得!

这种问题大多都是软件系统或者是一些后台中常用的,方法很简单,利用jquery获取右侧的高度,使得左侧和右侧的高度保持一致就OK啦!废话不多,上代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>

<title>jQuery实现左右div自适应高度完全相同</title>

<styletype="text/css">

<!--

body{FONT-SIZE: 14px;background-color:#fff}

-->

</style>

<styletype="text/css">

#left{background:#999999; float:left; width:100px;}

#right{background:#0066FF; color:#fff; width:300px; float:left;}

.clear{clear:both;}

</style>

</head>

<body>

<h3>右边高度高度左边</h3>

<divid="left">

<divstyle="padding:10px">

美浩工作室<br/>

美浩工作室<br/>

美浩工作室<br/>

美浩工作室<br/>

美浩工作室<br/>

</div>

</div>

<divid="right">

<divstyle="padding:10px">

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

网站建设工作室<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

<br/>

画法几何大家看法

</div>

</div>

<scripttype="text/javascript"src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>

<scripttype="text/javascript">

function $(id){

return document.getElementById(id)

}

function getHeight() {

if ($("left").offsetHeight>=$("right").offsetHeight){

$("right").style.height=$("left").offsetHeight + "px";

}

else{

$("left").style.height=$("right").offsetHeight + "px";

}

}

window.onload = function() {

getHeight();

}

</script>

<divstyle="clear:both"></div>

</body>

</html>

这其中的jquery代码中的获得高度用的clientHeight,介绍一下几种不同的获得方式以及他们的差别。
这四种浏览器分别为IE(Internet
Explorer)、NS(Netscape)、Opera、FF(FireFox)。
clientHeight
大家对 clientHeight
都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。
offsetHeight
IE、Opera
认为 offsetHeight = clientHeight + 滚动条 + 边框。
NS、FF 认为 offsetHeight
是网页内容实际高度,可以小于 clientHeight。
scrollHeight
IE、Opera 认为 scrollHeight
是网页内容实际高度,可以小于 clientHeight。
NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是
clientHeight。
简单地说
clientHeight 就是透过浏览器看内容的这个区域高度。
NS、FF 认为
offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于 clientHeight 时,scrollHeight
的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。
IE、Opera 认为 offsetHeight
是可视区域 clientHeight 滚动条加边框。scrollHeight
则是网页内容实际高度。
同理
clientWidth、offsetWidth 和 scrollWidth
的解释与上面相同,只是把高度换成宽度即可。

说明
以上基于 DTD HTML 4.01 Transitional,如果是 DTD XHTML 1.0 Transitional
则意义又会不同,在 XHTML 中这三个值都是同一个值,都表示内容的实际高度。新版本的浏览器大多支持根据页面指定的 DOCTYPE
来启用不同的解释器。下载或浏览测试文件。
关系公式:scrollHeight = offsetHeight+ scrollTop

上面的方法大家明白了吗?赶紧复制下来运行下,看看效果吧!!!!大家在用的时候给自己要同样高度的两个div加上id,在jquery里面调用的标识修改即可!很方便的,那个jquery.min.js大家可以任意下载,哪里都有的!
千锋教育
2016-01-10 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
代码参考:
<!DOCTYPE html> <html> <head> <meta charset=UTF-8 /> <title>jquery实现div自适应浏览器高度(宽度)</title> <meta name="keywords" content="html5" /> <meta name="description" content="html5 test" /> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript"> function autoHeight() { var h = $(window).height(); var h_old = 300; if (h > h_old) { $(".left").css('height', h); } else { return false; } } $(function() { autoHeight() $(window).resize(autoHeight); }) </script> <style type="text/css"> html, body { margin: 0; height: 100%; } .left { width: 100px; background: #E8EFF6; margin-left: 100px; } </style> </head> <body> <div class="left"> das </div> </body> </html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式