关于CSS和JS中用到的各种Height和Width的问题
自己记不住,列一下关于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.clientHeight 和Element.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的问题的更多相关文章
- HTML5全屏背景视频与 CSS 和 JS(插件或库)
译文原链接:http://codetheory.in/html5-fullscreen-background-video/ 前言: 当网页载入时,自动播放的全屏背景视频已经成为当前颇受欢迎的趋势. 就 ...
- 项目中如果管理前端文件CSS和JS
如何管理CSS和JS文件,一直是前端一个热门的话题.下面将简单分享一下使用心得,欢迎大家吐槽.拍砖和提供更好的实现方式. 一.管理CSS文件,本博客将讨论less管理. iReset.less.iBu ...
- 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后丢失的问题
ASP.NET MVC4,ASP.NET MVC5中对JS和CSS的引用又做了一次变化,在MVC3中我们这样引用资源文件: <link href="@Url.Content(" ...
- nginx实现动态分离,解决css和js等图片加载问题
改帖专门为使用nginx,通过nginx把请求转发到web服务器再返回客户端的时候,解决css和js和图片加载不出来的问题. 如果没安装nginx,请访问一下地址进行安装 http://www.cnb ...
- MVC 之 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后的丢失
在MVC3中我们这样引用资源文件: <link href="@Url.Content("~/Content/Site.css")" rel="s ...
- IE浏览器没有加载CSS或js文件的秘密及解决办法
其实是两处资料拼成这一篇博文的,因为在开发过程中遇到,有的文章只是说明原因,而没有给出解决方案,所以再次给出解释和解决方法,以供参考,如果有好的解决方法,也请分享下! ---------------- ...
- 运用 CSS in JS 实现模块化
一.什么是 CSS in JS 上图来源:https://2019.stateofcss.com/technologies/ CSS in JS 是2014年推出的一种设计模式,它的核心思想是把 CS ...
- vue初始化、数据处理、组件传参、路由传参、全局定义CSS与JS、组件生命周期
目录 项目初始化 组件数据局部化处理 子组件 父组件 路由逻辑跳转 案例 组件传参 父传子 子组件 父组件 子传父 子组件 父组件 组件的生命周期钩子 路由传参 第一种 配置:router/index ...
- JQuery 加载 CSS、JS 文件
JS 方式加载 CSS.JS 文件: //加载 css 文件 function includeCss(filename) { var head = document.getElementsByTagN ...
随机推荐
- MySQL 并行复制(MTS) 从库更新的记录不存在实际却存在
目录 背景 版本 分析 测试 背景 开了并行复制的半同步从库SQL 线程报1032错误,异步复制从库没有报错,偶尔会出现这种 版本 mysql 5.7.16 redhat 6.8 mysql> ...
- SQL简介及MySQL的安装目录详解
一,SQL简介 1,数据库定义语言(DDL) ①create:用于创建数据库.表.索引.视图等: ②alter:用于修改数据库.表.索引.视图等: ③drop:用于删除数据库.表.索引.视图.用户等. ...
- JAVA实现微信支付V3
喜欢的朋友可以关注下,粉丝也缺. 相信很多的码友在项目中都需要接入微信支付,虽说微信支付已成为一个普遍的现象,但是接入的过程中难免会遇到各种各样的坑,这一点支付宝的SDK就做的很好,已经完成的都知道了 ...
- 安卓Dialog对话框多次显示而闪退的解决办法
事情是这样子的,我在一个活动中自定义了一个AlertDialog,通过一个按钮点击即可弹出,而后来出现的情况是,第一次点击就没问题, 正常跳出,而第二次就直接程序闪退,然后报The specified ...
- Vue的声明周期
以下简单介绍,以自己的理解进行分析.如有不好,请大牛勿喷!!!!!! new Vue() 创建 Vue 实例 beforeCreate(){}: 第一生命周期 表示实例完全创建出来,此函数执行是,da ...
- C++ Enum 转 Lua Table工具
C++ Enum转Lua Table工具 观察C++ Enum结构 总结结构 enum GameMessage { //******* ///****************** GM_GAMESER ...
- centos clamav杀毒软件安装配置及查杀,没想到linux下病毒比windows还多!
centos clamav杀毒软件安装配置及查杀,没想到linux下病毒比windows还多! 一.手动安装 1.下载(官网) cd /soft wget http://www.clam ...
- CentOS6.7-64bit编译hadoop2.6.4
1.下载maven(apache-maven-3.3.3-bin.tar.gz) http://archive.apache.org/dist/maven/maven-3/3.3.3/binaries ...
- Android:异步处理之Handler+Thread的应用(一)
前言 很久很久以前就听说了,每一个android的应用程序都会分别运行在一个独立的dalvik虚拟机进程中,而在每个虚拟机在启动时会运行一个UI主线程(Main Thread),而为啥叫UI主线程而不 ...
- fastjson 处理 double 的精度问题
项目中使用 fastjson 来处理 json 格式,当前使用的版本为1.1.37.在和其它系统交互时,将一个json串传给了对方,原值为5.0,json 处理后格式为:{"dou" ...