js各种宽高的总结
1.clientWidth和clientHeight
指元素的可视部分宽度和高度,就是padding+content
如果没有滚动条,就是设定的宽度和高度
如果有滚动条,就是设定的宽度和高度减去滚动条的宽度和高度
- body{
- border:20px solid #ccc;
- margin:10px;
- padding:40px;
- background:#eee;
- height:350px;
- width:500px;
- overflow:scroll
- }
- document.body.clientWidth //500+80=580
- document.body.clientHeight//350+80=430
- #mydiv{
- width:200px;
- height:200px;
- background:red;
- border:1px solid #eee;
- overflow:auto;
- }
- //在div中添加文字,出现滚动条
- var mydiv=document.getElementById('mydiv');
- mydiv.clientHeight//200
- mydiv.clientWidth//200-7
- 小结:
- 无padding无滚动:clientWidth=style.width
- 有padding无滚动:clientWidth=style.width+padding*2
- 有padding有滚动:clientWidth=style.width+padding*2-滚动轴宽度
- clientLeft和clientTop
- 这一对属性是读取元素border的宽度和高度
- clientTop=border-top的border-width
- clientLeft=border-left的border-width
2.offsetWidth offsetHeight
就是padding+content+border
- body{
- border:20px solid #ccc;
- margin:10px;
- padding:40px;
- background:#eee;
- height:350px;
- width:500px;
- overflow:scroll
- }
- document.body.offsetWidth //500+80+40=620
- document.body.offsetHeight//350+80+40=470
- 小结:
- 无padding无滚动无border
- offsetWidth=clientWidth=style.width
- 有padding无滚动有border
- offsetWidth=style.width+style.padding*2+(border-width)*2
- offsetWidth=clientWidth+(border-width)*2
- 有padding有滚动有border
- offsetWidth=style.width+style.padding*2+(border-width)*2+滚动条宽度
js各种宽高的总结的更多相关文章
- js/jq宽高的理解与运用
document:1. 与client相关的宽高document.body.clientWidthdocument.body.clientHeightdocument.body.clientLeftd ...
- js各种宽高(1)
在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之 ...
- 原生js获取宽高与jquery获取宽高的方法的关系
说明:1.因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况. 2.以下所说的所有方法与属性所返回的值都是不带单位的. 3.为了方便说明,以下情况采用缩写表示: obj -> ...
- JS 各种宽高
1.window的各种宽高 outerWidth.innerWidth.outerHeight.innerHeight outerHeight 获取浏览器窗口外部的高度(单位:像素).表示整个浏览 ...
- js 浏览器 宽高 各种
常用: JS 获取浏览器窗口大小 // 获取窗口宽度 if (window.innerWidth) winWidth = window.innerWidth; else if ((do ...
- js常用宽高属性
document.body.clientWidth //body对象的宽度 document.body.clientHeight //body对象的高度 document.documentElemen ...
- js各种宽高(2)
在javascript和jquery中,都有对各种高度的写法,在这里,我们就着重讲一下窗口.文档等高度的理解.(宽度和高度差不多!) jquery的各种高度 首先来说一说$(document)和$(w ...
- js获取宽高
document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.docume ...
- js各种宽高(3)
有时候项目中会用到用js获取元素位置来定位元素,首先通过图片说明scrollWidth,clientWidth,offsetWidth的关系. JS获取各种宽度.高度的简单介绍: scrollHeig ...
- JS/jQuery宽高的理解和应用
1.widows:窗口.window对象可省略 2.document对象是window对象的一部分 浏览器的Html文档成为Document对象 window.location===document. ...
随机推荐
- 痞子衡嵌入式:从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制. 我们知道配合 MCU 一起工作的存储器包含 ROM(Flash) 和 ...
- pod setup 慢 的问题
由于更换了硬盘,重装了系统,需要重新配置环境,发现现在安装cocapods比之前坑更深了, 装环境时遇到pod setup才几kb的下载速度(即使用梯子也是巨慢),实在是没法用在网上尝试了各种方法,但 ...
- 嵌入式低功耗WiFi设备保活功耗分析
(一)嵌入式低功耗设备介绍 在物联网(IoT)领域,设备可以使用以太网和无线网进行网络连接. 以太网: 网络稳定,带宽高,延迟低,但是以太网需要拉网布线,设备安装邻活便利性能差. 无线网络:安装位置灵 ...
- 第一次用vs编译器进行第一次编程所遇问题
首先这款编译器具有多种语言:C#.C++.Java.Python等,这对像我一样的编程小白十分友好. 然后就是我第一天编程遇到的问题: 1."printf"未被定义 int a = ...
- linux cp command
参考:http://c.biancheng.net/view/746.html [root@localhost ~]# cp [选项] 源文件 目标文件 -a:相当于 -d.-p.-r 选项的集合,这 ...
- 可托拉拽的WPF选项卡控件,强大好用!
推荐一个简单易用的WPF选项卡控件. 项目简介 这是一个基于WPF开发的,可扩展.高度可定制.轻量级的UI组件,支持拖拉拽功能,可以让开发人员快速实现需要选项卡窗口的系统. 特色功能 1.拖拉拽标签: ...
- DBSCAN聚类
一.概述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,簇集的划定完全由样本的聚集 ...
- iptables基础
简介 Linux防火墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制.iptables是linux防火墙的管理程序,为包过滤机制的实现制定规则,并告诉内核空间的netfilter如何处理这些网 ...
- win10右键添加打开cmd窗口的命令
创建文本文档,复制如下内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\b ...
- 用 GPT-4 给开源项目 GoPool 重构测试代码 - 每天5分钟玩转 GPT 编程系列(8)
目录 1. 好险,差点被喷 2. 重构测试代码 2.1 引入 Ginkgo 测试框架 2.2 尝试改造旧的测试用例 2.3 重构功能测试代码 3. 总结 1. 好险,差点被喷 早几天发了一篇文章:&l ...