自己记不住,列一下关于CSS和JS中用到的各类有关Height和Width属性的介绍对比.

所属类别 属性名 意义 其他
浏览器模型 Screen.height 浏览器窗口所在的屏幕的高度(单位像素)

1.除非调整显示器的分辨率,否则这个值可以看作常量,不会发生变化。

2.显示器的分辨率与浏览器设置无关,缩放网页并不会改变分辨率。

Screen.width 浏览器窗口所在的屏幕的宽度(单位像素)
Screen.availHeight 浏览器窗口可用的屏幕高度(单位像素) 因为部分空间可能不可用,比如系统的任务栏或者 Mac 系统屏幕底部的 Dock 区,这个属性等于height减去那些被系统组件的高度。
Screen.availWidth 浏览器窗口可用的屏幕宽度(单位像素)
window.innerHeight 返回网页在当前窗口中可见部分的高度(单位像素) 1.只读,用户放大网页的时候(比如将网页从100%的大小放大为200%),这两个属性会变小。因为这时网页的像素大小不变(比如宽度还是960像素),只是每个像素占据的屏幕空间变大了,因为可见部分(视口)就变小了。
2.注意:这两个属性值包括滚动条的高度和宽度
window.innerWidth 返回网页在当前窗口中可见部分的宽度
window.outerHeight 返回浏览器窗口的高度 包括浏览器菜单和边框(单位像素),只读
window.outerWidth 返回浏览器窗口的宽度
元素节点 Element.clientHeight 返回一个整数值,表示元素节点的 CSS 高度(单位像素) 1.只对块级元素生效,对于行内元素返回0。如果块级元素没有设置 CSS 高度,则返回实际高度。

2.除了元素本身的高度,它还包括padding部分,但是不包括border、margin。如果有水平滚动条,还要减去水平滚动条的高度。

3.注意,这个值始终是整数,如果是小数会被四舍五入。
Element.clientWidth 返回元素节点的 CSS 宽度
Element.scrollHeight 表示当前元素的总高度(单位像素),包括溢出容器、当前不可见的部分 1.只读.

2.它包括padding,但是不包括border、margin以及水平滚动条的高度(如果有水平滚动条的话),还包括伪元素(::before或::after)的高度。
Element.scrollWidth 表示当前元素的总宽度(单位像素)
Element.offsetHeight 表示元素节点的 CSS 高度(单位像素) 1.包括元素本身的高度、padding 和 border,以及水平滚动条的高度(如果存在滚动条)。
2.只读属性。         
3.只比Element.clientHeightElement.clientWidth多了边框的高度或宽度。 
4.如果元素的 CSS 设为不可见(比如display: none;),则返回0。
Element.offsetWidth 表示元素的 CSS 水平宽度(单位像素)
备注 1.document.documentElement的clientHeight属性,返回当前视口的高度(即浏览器窗口的高度),等同于window.innerHeight属性减去水平滚动条的高度(如果有的话)

2.document.body的高度则是网页的实际高度。一般来说,document.body.clientHeight大于document.documentElement.clientHeight

3.整张网页的总高度可以从document.documentElement.scrollHeight或document.body.scrollHeight上读取。

有关坐标的属性:   
  1. MoiseEvent.clientX:返回鼠标事件触发时鼠标相对于元素视口(body)的X坐标。

  2. MouseEvent.clientY:返回鼠标事件触发时鼠标相对于元素视口(body)的Y坐标

如果有错误,麻烦您指出,相互学习.

谢谢~~

关于CSS和JS中用到的各种Height和Width的问题的更多相关文章

  1. HTML5全屏背景视频与 CSS 和 JS(插件或库)

    译文原链接:http://codetheory.in/html5-fullscreen-background-video/ 前言: 当网页载入时,自动播放的全屏背景视频已经成为当前颇受欢迎的趋势. 就 ...

  2. 项目中如果管理前端文件CSS和JS

    如何管理CSS和JS文件,一直是前端一个热门的话题.下面将简单分享一下使用心得,欢迎大家吐槽.拍砖和提供更好的实现方式. 一.管理CSS文件,本博客将讨论less管理. iReset.less.iBu ...

  3. 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后丢失的问题

    ASP.NET MVC4,ASP.NET MVC5中对JS和CSS的引用又做了一次变化,在MVC3中我们这样引用资源文件: <link href="@Url.Content(" ...

  4. nginx实现动态分离,解决css和js等图片加载问题

    改帖专门为使用nginx,通过nginx把请求转发到web服务器再返回客户端的时候,解决css和js和图片加载不出来的问题. 如果没安装nginx,请访问一下地址进行安装 http://www.cnb ...

  5. MVC 之 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后的丢失

    在MVC3中我们这样引用资源文件: <link href="@Url.Content("~/Content/Site.css")" rel="s ...

  6. IE浏览器没有加载CSS或js文件的秘密及解决办法

    其实是两处资料拼成这一篇博文的,因为在开发过程中遇到,有的文章只是说明原因,而没有给出解决方案,所以再次给出解释和解决方法,以供参考,如果有好的解决方法,也请分享下! ---------------- ...

  7. 运用 CSS in JS 实现模块化

    一.什么是 CSS in JS 上图来源:https://2019.stateofcss.com/technologies/ CSS in JS 是2014年推出的一种设计模式,它的核心思想是把 CS ...

  8. vue初始化、数据处理、组件传参、路由传参、全局定义CSS与JS、组件生命周期

    目录 项目初始化 组件数据局部化处理 子组件 父组件 路由逻辑跳转 案例 组件传参 父传子 子组件 父组件 子传父 子组件 父组件 组件的生命周期钩子 路由传参 第一种 配置:router/index ...

  9. JQuery 加载 CSS、JS 文件

    JS 方式加载 CSS.JS 文件: //加载 css 文件 function includeCss(filename) { var head = document.getElementsByTagN ...

随机推荐

  1. vue 路由传参的三种基本模式

    路由是连接各个页面的桥梁,而参数在其中扮演者异常重要的角色,在一定意义上,决定着两座桥梁是否能够连接成功. 在vue路由中,支持3中传参方式. 场景,点击父组件的li元素跳转到子组件中,并携带参数,便 ...

  2. postgresql-pg_prewarm数据预加载。

    pg_prewarm数据预加载. http://francs3.blog.163.com/blog/static/405767272014419114519709/   https://www.kan ...

  3. vue教程2-05 v-for循环 重复数据无法添加问题 加track-by='索引'

    vue教程2-05 v-for循环 重复数据无法添加问题  加track-by='索引' 解决问题的代码示例: <!DOCTYPE html> <html lang="en ...

  4. Python 多进程 多线程 协程 I/O多路复用

    引言 在学习Python多进程.多线程之前,先脑补一下如下场景: 说有这么一道题:小红烧水需要10分钟,拖地需要5分钟,洗菜需要5分钟,如果一样一样去干,就是简单的加法,全部做完,需要20分钟:但是, ...

  5. android自定义控件 几种方式总结

    方式1:不继承任何组件 , 直接在代码里面调用实例化.public class ProgressDialog { private Dialog dialog; public ProgressDialo ...

  6. IE中透明度的读写

    一.获取透明度 ele.filters.alpha 返回元素所有滤镜的对象,可在此基础上获取opacity即可. 但是似乎ele.filters只能存储第一个滤镜,而当我们把alpha放在第二位时,就 ...

  7. 跌跌撞撞的看完了《jquery技术内幕》

    今年2月20日买的书,今天是5月26,三个月来,除了周末休息一天,如果没有特殊情况,我都会每晚花两个小时看这本书,以及查各种与jquery源码相关的资料.今天总算是跌跌撞撞的看完了,有点小激动,也有点 ...

  8. linux内核学习之全局描述符表(GDT)(二)

    来源:https://www.cnblogs.com/longintchar/p/5224406.html 在进入保护模式之前,我们先要学习一些基础知识.今天我们看一下全局描述符表(Global De ...

  9. MySQL复制以及调优

    一. 简介 MySQL自带复制方案,带来好处有: 数据备份. 负载均衡. 分布式数据. 概念介绍: 主机(master):被复制的数据库. 从机(slave):复制主机数据的数据库. 复制步骤: (1 ...

  10. Java NIO系列教程(十二) Java NIO与IO

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...