关于窗口和文档的几个属性!

1.屏幕 (screen 属性)

  Window 对象的screen属性引用的是Screen对象,他有width , height 属性, 分别指定的是以像素计的屏幕的宽高, 而
availWidth availHeight 指的是实际可用的宽和高(他们排出了桌面任务栏这些特性所用的宽高)。

2 浏览器可视区大小(所谓可视区域是指能看得见的区域,即在浏览器中能看到页面的区域(高度与宽度)。)

在标准浏览器中,可以使用window 的innerWidth  
和innerHeight属性(IE支持IE9以及更高)

  window.innerWidth

 
window.innerHeight   (如果浏览器有滚动条  ,则包括滚动条的边栏所占的几像素的宽高)

在声明了DOCTYPE的浏览器中,可以用以下来获取浏览器显示窗口大小:

  document.documentElement.clientWidth

   
document.documentElement.clientHeight  (如果浏览器有滚动条  ,不会包括滚动条的边栏所占的几像素的宽高)

在没有声明DOCTYPE的IE中,浏览器显示窗口大小只能以下获取:

   document.body.offsetWidth

 
 document.body.offsetHeight

3. 文档坐标和视口坐标

 
元素的位置是像素来度量的,向右代表X增加,向下代表Y增加,针对框架页中显示的文档,视口是定义了框架页的<iframe>元素,文档坐标比视口坐标更加基础,并且在用户滚动时候不会发生任何变化。

 为了在坐标系之间进行转换,我们需要判定浏览器窗口中的滚动条位置。

 在IE9以及更高或者其他现在浏览器中,Window对象的pageXoffset ,
pageYoffset提供这些值,

也可以通过
查询文档的根节点(document.documentElement)的 scrollLeft scrollTop 来获取。但是在怪异模式下,必须使用
 document.body 上来查询他们。

 下面是一个  以X 有来返回滚动条偏移量的。

 function getScrollOffset(w){

 var w = w || window;

 

//除了IE8以及更早版本,所有浏览器都可以用

if(w.pageXoffset !== null){ return {x:
w.pageXOffset, y: w.pageYOffset}};

//对于标准模式下的IE(或其他任何浏览器)

var d = w.document;

if(window.compatMode ==
"CSS1Compat"){

  return {x: d.documentElement.scrollLeft, y:
d.documentElement.scrollTop};    //  但是谷歌浏览器不认识这厮,
但是可以通过 document.body 来获取。

// 对于怪异模式下的浏览器

return {x: d.body.scrollLeft, y:
scrollTop}

}

 }

4. 元素尺寸

时间: 2024-08-27 22:54:16

关于窗口和文档的几个属性!的相关文章

CSS权威指南学习笔记系列(1)CSS和文档

题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对,请谅解和指出.谢谢大家.正文: 第一章 CSS和文档---------- 1.CSS,称为层叠样式表.使用CSS的理由有:a.易于使用,样式表能大大减少Web创作人员的工作量:b.在多个页面上使用样式,可以创建一个样式表,然后把这个样式表应用到多个页面:c.层叠,CSS还规定了冲突规则:这些规则统称

深入理解DOM节点类型第三篇——注释节点和文档类型节点

× 目录 [1]注释节点 [2]文档类型 前面的话 把注释节点和文档类型节点放在一起是因为IE8-浏览器的一个bug.IE8-浏览器将标签名为"!"的元素视作注释节点,所以文档声明也被视作注释节点.本文将详细介绍这两部分的内容 注释节点 [特征] 注释在DOM中是通过Comment类型来表示,注释节点的三个node属性——nodeType.nodeName.nodeValue分别是8.'#comment'和注释的内容,其父节点parentNode可能是Document或Element,

css绝对定位、相对定位和文档流的那些事

前言 接触html.和css时间也不短了,但每次用div+css布局的时候心里还是有点儿虚,有时候干脆就直接用table算了,很多时候用div会出现些不可预料的问题,虽然花费一定时间能够解决,但总不是个事,所以今天特地探索了下css+div的绝对定位和相对定位和文档流的关系. 文档流的概念 确切的说应该是文档文档流模型的机制,html的布局机制就是用文档流模型的,即块元素(block)独占一行,内联元素(inline).不独占一行 如块级元素(block) <div>div1</div&

JS魔法堂:浏览器模式和文档模式怎么玩?

一.前言 从IE8开始引入了文档兼容模式的概念,作为开发人员的我们可以在开发人员工具中通过“浏览器模式”和“文档模式”(IE11开始改为“浏览器模式”改成更贴切的“用户代理字符串”)品味一番,它的出现极大地方便了苦逼的前端攻城狮们适配各版本的IE,但jser们也不能完全信任它,因为它只是提供尽可能的文档模式模拟而已. 本篇大部分内容来源于官方解说:http://msdn.microsoft.com/library/cc288325(v=vs.85).aspx,并尽量融入个人平常工作中踩过的坑加以

(转)css绝对定位、相对定位和文档流的那些事

原文链接:http://www.cnblogs.com/tim-li/archive/2012/07/09/2582618.html 前言 接触html.和css时间也不短了,但每次用div+css布局的时候心里还是有点儿虚,有时候干脆就直接用table算了,很多时候用div会出现些不可预料的问题,虽然花费一定时间能够解决,但总不是个事,所以今天特地探索了下css+div的绝对定位和相对定位和文档流的关系. 文档流的概念 确切的说应该是文档文档流模型的机制,html的布局机制就是用文档流模型的,

浏览器模式和文档模式怎么玩?

一.前言 从IE8开始引入了文档兼容模式的概念,作为开发人员的我们可以在开发人员工具中通过“浏览器模式”和“文档模式”(IE11开始改为“浏览器模式”改成更贴切的“用户代理字符串”)品味一番,它的出现极大地方便了苦逼的前端攻城狮们适配各版本的IE,但jser们也不能完全信任它,因为它只是提供尽可能的文档模式模拟而已. 本篇大部分内容来源于官方解说:http://msdn.microsoft.com/library/cc288325(v=vs.85).aspx,并尽量融入个人平常工作中踩过的坑加以

《开源框架那点事儿18》:为什么要先从测试用例编写和文档编写开始?

有一个同学,问我一个问题:加入Tiny是否必须从写单元测试用例和文档作起? 此问题引发我诸多感触,故形成乱弹一篇. 作为一个新加入者,多看.少说,是正点.而这个时候,写写测试用例.文档,就是个不错的选择.这样入手比较容易,也比较容易体现水平. 可以说好的程序员,测试和文档都是写得好的.测试和文档一定写不好的,一定不是好的程序员. 同时,在看代码,写测试用例.写文档的过程中,还可以这样思考: 他为什么要这么设计?换成我,我会怎么设计?然后有相当一部分,会转化成:哦,原来是这个样子的!这个时候你进步

JEECG 开源平台全视频和文档

jeecg v3.0入门视频 链接: http://pan.baidu.com/s/1bnrMfiJ密码: 8q0k MiniDao持久层 入门视频 链接: http://pan.baidu.com/s/1eQGc4W6 密码: stst JEECG-OnlineCoding<企业招聘系统> 视频 链接:http://pan.baidu.com/s/1sjHHVM9 密码: os7b JEECG公开课视频 链接: http://pan.baidu.com/s/1pJFeiiJ 密码: cr75

第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作

第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)基本的索引和文档CRUD操作 elasticsearch(搜索引擎)基本的索引和文档CRUD操作 也就是基本的索引和文档.增.删.改.查.操作 注意:以下操作都是在kibana里操作的