html页面高度不固定在不同浏览器下的兼容性设置
建站知识 2021-07-03 08:43www.168986.cn长沙网站建设
页面需要嵌套在跨域的iframe中,而页面高度不固定,需要每个页面把自己的高度获得后,通过js通知iframe调整显示。
而页面在获得自己的高度时,发现总是比预想的大。经过参考别人的博客,发现原来是w3c标准的原因。
也就是要在<html>前面加上<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://.w3./TR/xhtml1/DTD/xhtml1-transitional.dtd">
加上之后,document.documentElement.scrollHeight在IE和Chrome下,可以正常取到合适的全文高度,firefox下取到的则过高;用document.body.scrollHeight取则恰好相反。
采用了Math.min(document.documentElement.scrollHeight,document.body.scrollHeight)获得最小高度,正常。
加上W3C标准后,画面也出现了一些小的不同,比如页面的行间距,似乎IE的就要短一些,有些地方重合了。而且css也会严格区分大小写。
参考文章url
内容
js获取页面高度 2011-06-02 14:20:02| 分类JavaScript | 标签body document clientwidth 宽度 页面高度 |字号大中小 订阅.
<script>
function getInfo()
{
var s = "";
s += " 网页可见区域宽"+ document.body.clientWidth;
s += " 网页可见区域高"+ document.body.clientHeight;
s += " 网页可见区域宽"+ document.body.offsetWidth + " (包括边线和滚动条的宽)";
s += " 网页可见区域高"+ document.body.offsetHeight + " (包括边线的宽)";
s += " 网页正文全文宽"+ document.body.scrollWidth;
s += " 网页正文全文高"+ document.body.scrollHeight;
s += " 网页被卷去的高(ff)"+ document.body.scrollTop;
s += " 网页被卷去的高(ie)"+ document.documentElement.scrollTop;
s += " 网页被卷去的左"+ document.body.scrollLeft;
s += " 网页正文部分上"+ window.screenTop;
s += " 网页正文部分左"+ window.screenLeft;
s += " 屏幕分辨率的高"+ window.screen.height;
s += " 屏幕分辨率的宽"+ window.screen.width;
s += " 屏幕可用工作区高度"+ window.screen.availHeight;
s += " 屏幕可用工作区宽度"+ window.screen.availWidth;
s += " 你的屏幕设置是 "+ window.screen.colorDepth +" 位彩色";
s += " 你的屏幕设置 "+ window.screen.deviceXDPI +" 像素/英寸";
//alert (s);
}
getInfo();
< /script>
在我本地测试当中
在IE、FireFox、Opera下都可以使用
document.body.clientWidth
document.body.clientHeight
即可获得,很简单,很方便。
而在公司项目当中
Opera仍然使用
document.body.clientWidth
document.body.clientHeight
可是IE和FireFox则使用
document.documentElement.clientWidth
document.documentElement.clientHeight
原来是W3C的标准在作怪啊
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://.w3./TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果在页面中添加这行标记的话
在IE中
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
在FireFox中
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
在Opera中
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
而如果没有定义W3C的标准,则
IE为
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
FireFox为
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
Opera为
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
真是一件麻烦事情,其实就开发来看,宁可少一些对象和方法,不使用最新的标准要方便许多啊。
而页面在获得自己的高度时,发现总是比预想的大。经过参考别人的博客,发现原来是w3c标准的原因。
也就是要在<html>前面加上<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://.w3./TR/xhtml1/DTD/xhtml1-transitional.dtd">
加上之后,document.documentElement.scrollHeight在IE和Chrome下,可以正常取到合适的全文高度,firefox下取到的则过高;用document.body.scrollHeight取则恰好相反。
采用了Math.min(document.documentElement.scrollHeight,document.body.scrollHeight)获得最小高度,正常。
加上W3C标准后,画面也出现了一些小的不同,比如页面的行间距,似乎IE的就要短一些,有些地方重合了。而且css也会严格区分大小写。
参考文章url
内容
js获取页面高度 2011-06-02 14:20:02| 分类JavaScript | 标签body document clientwidth 宽度 页面高度 |字号大中小 订阅.
复制代码
代码如下:<script>
function getInfo()
{
var s = "";
s += " 网页可见区域宽"+ document.body.clientWidth;
s += " 网页可见区域高"+ document.body.clientHeight;
s += " 网页可见区域宽"+ document.body.offsetWidth + " (包括边线和滚动条的宽)";
s += " 网页可见区域高"+ document.body.offsetHeight + " (包括边线的宽)";
s += " 网页正文全文宽"+ document.body.scrollWidth;
s += " 网页正文全文高"+ document.body.scrollHeight;
s += " 网页被卷去的高(ff)"+ document.body.scrollTop;
s += " 网页被卷去的高(ie)"+ document.documentElement.scrollTop;
s += " 网页被卷去的左"+ document.body.scrollLeft;
s += " 网页正文部分上"+ window.screenTop;
s += " 网页正文部分左"+ window.screenLeft;
s += " 屏幕分辨率的高"+ window.screen.height;
s += " 屏幕分辨率的宽"+ window.screen.width;
s += " 屏幕可用工作区高度"+ window.screen.availHeight;
s += " 屏幕可用工作区宽度"+ window.screen.availWidth;
s += " 你的屏幕设置是 "+ window.screen.colorDepth +" 位彩色";
s += " 你的屏幕设置 "+ window.screen.deviceXDPI +" 像素/英寸";
//alert (s);
}
getInfo();
< /script>
在我本地测试当中
在IE、FireFox、Opera下都可以使用
document.body.clientWidth
document.body.clientHeight
即可获得,很简单,很方便。
而在公司项目当中
Opera仍然使用
document.body.clientWidth
document.body.clientHeight
可是IE和FireFox则使用
document.documentElement.clientWidth
document.documentElement.clientHeight
原来是W3C的标准在作怪啊
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://.w3./TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果在页面中添加这行标记的话
在IE中
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
在FireFox中
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
在Opera中
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
而如果没有定义W3C的标准,则
IE为
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
FireFox为
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
Opera为
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
真是一件麻烦事情,其实就开发来看,宁可少一些对象和方法,不使用最新的标准要方便许多啊。
长沙网站设计
- 如何进行东阳SEO关键词优化?
- 边坝哪有关键词排名优化:提升你的网站流量与
- 安国百度优化服务:提升您的在线可见性
- 阜康新手做SEO怎么做
- 山西seo网站排名关键词优化:提升您网站曝光率
- 临沂seo网站排名关键词优化:提高你的网站可见
- 广西SEO网站推广怎样付费比较合理
- 双辽SEO网站推广:提升你的网站可见性与流量
- 辽宁企业网站优化购买方式有哪些
- 提升宝清百度SEO排名的实用技巧与策略
- 静宁百度SEO排名:提升您网站曝光率的关键策略
- 彭州百度SEO排名的提升策略和实施指南
- 广南百度关键词SEO:提升网站排名的关键策略
- 辽宁关键词优化怎么做论坛营销
- 吉林百度seo排名如何做到让用户满意
- 内黄百度优化服务:提升在线可见性的关键