zoukankan      html  css  js  c++  java
  • 关于获取各种浏览器可见窗口大小的一点点研究

        刚进前端的菜鸟,感觉走进了前端的一条不归路。每天接触各种新知识都感觉到乐此不倦,下面来看看浏览器窗口大小的研究(其实有些部分借鉴了网上,后边是他的博客),作者:http://blog.sina.com.cn/s/blog_6f1f9ead0100n1f6.html。只是我想保存在自己的博客中,以备后用,还请原著多多谅解。

       开始进入正题了啊:

       首先,在W3C当中介绍了几种获取浏览器的大小的方法:

      1 移动端展示:

          <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"/>

          width - viewport的宽度 ,height - viewport的高度

          initial-scale - 初始的缩放比例
          minimum-scale - 允许用户缩放到的最小比例
          maximum-scale - 允许用户缩放到的最大比例
          user-scalable - 用户是否可以手动缩放

       2 PC端 :

    <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://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    加了他以后 必须执行了dtd
    document.documentElement.clientWidth(内容可见的宽度)
    如果在页面中添加这行标记的话 在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高)

  • 相关阅读:
    服务器时间同步
    DataX部署安装
    Mysql ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 解决方法
    mysql 使用需要注意的问题
    利用mysqldump 将一个表按条件导出数据
    mysql存储引擎分类
    MySQL数据备份之mysqldump使用
    count(1)、count(*)与count(列名)的执行区别
    rsync + sersync 实现实时数据同步
    ipmitool 工具使用
  • 原文地址:https://www.cnblogs.com/ccguangyao/p/5356064.html
Copyright © 2011-2022 走看看