1.clientWidth和clientHeight
指元素的可视部分宽度和高度,就是padding+content
如果没有滚动条,就是设定的宽度和高度

如果有滚动条,就是设定的宽度和高度减去滚动条的宽度和高度

  1. body{
  2. border:20px solid #ccc;
  3. margin:10px;
  4. padding:40px;
  5. background:#eee;
  6. height:350px;
  7. width:500px;
  8. overflow:scroll
  9. }
  10. document.body.clientWidth //500+80=580
  11. document.body.clientHeight//350+80=430
  12. #mydiv{
  13. width:200px;
  14. height:200px;
  15. background:red;
  16. border:1px solid #eee;
  17. overflow:auto;
  18. }
  19. //在div中添加文字,出现滚动条
  20. var mydiv=document.getElementById('mydiv');
  21. mydiv.clientHeight//200
  22. mydiv.clientWidth//200-7
  23. 小结:
  24. 无padding无滚动:clientWidth=style.width
  25. 有padding无滚动:clientWidth=style.width+padding*2
  26. 有padding有滚动:clientWidth=style.width+padding*2-滚动轴宽度
  27. clientLeft和clientTop
  28. 这一对属性是读取元素border的宽度和高度
  29. clientTop=border-top的border-width
  30. clientLeft=border-left的border-width

2.offsetWidth offsetHeight

就是padding+content+border

    1. body{
    2. border:20px solid #ccc;
    3. margin:10px;
    4. padding:40px;
    5. background:#eee;
    6. height:350px;
    7. width:500px;
    8. overflow:scroll
    9. }
    10. document.body.offsetWidth //500+80+40=620
    11. document.body.offsetHeight//350+80+40=470
    12. 小结:
    13. 无padding无滚动无border
    14. offsetWidth=clientWidth=style.width
    15. 有padding无滚动有border
    16. offsetWidth=style.width+style.padding*2+(border-width)*2
    17. offsetWidth=clientWidth+(border-width)*2
    18. 有padding有滚动有border
    19. offsetWidth=style.width+style.padding*2+(border-width)*2+滚动条宽度

js各种宽高的总结的更多相关文章

  1. js/jq宽高的理解与运用

    document:1. 与client相关的宽高document.body.clientWidthdocument.body.clientHeightdocument.body.clientLeftd ...

  2. js各种宽高(1)

    在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之 ...

  3. 原生js获取宽高与jquery获取宽高的方法的关系

    说明:1.因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况.  2.以下所说的所有方法与属性所返回的值都是不带单位的.  3.为了方便说明,以下情况采用缩写表示:  obj -> ...

  4. JS 各种宽高

    1.window的各种宽高   outerWidth.innerWidth.outerHeight.innerHeight outerHeight 获取浏览器窗口外部的高度(单位:像素).表示整个浏览 ...

  5. js 浏览器 宽高 各种

    常用: JS 获取浏览器窗口大小   // 获取窗口宽度   if (window.innerWidth)   winWidth = window.innerWidth;   else if ((do ...

  6. js常用宽高属性

    document.body.clientWidth //body对象的宽度 document.body.clientHeight //body对象的高度 document.documentElemen ...

  7. js各种宽高(2)

    在javascript和jquery中,都有对各种高度的写法,在这里,我们就着重讲一下窗口.文档等高度的理解.(宽度和高度差不多!) jquery的各种高度 首先来说一说$(document)和$(w ...

  8. js获取宽高

    document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.docume ...

  9. js各种宽高(3)

    有时候项目中会用到用js获取元素位置来定位元素,首先通过图片说明scrollWidth,clientWidth,offsetWidth的关系. JS获取各种宽度.高度的简单介绍: scrollHeig ...

  10. JS/jQuery宽高的理解和应用

    1.widows:窗口.window对象可省略 2.document对象是window对象的一部分 浏览器的Html文档成为Document对象 window.location===document. ...

随机推荐

  1. 2023-07-06:RabbitMQ中的AMQP是什么?

    2023-07-06:RabbitMQ中的AMQP是什么? 答案2023-07-06: AMQP AMQP(Advanced Message Queuing Protocol)是一个应用层协议的开放标 ...

  2. 向量数据库Faiss的搭建与使用

    向量数据库Faiss是Facebook AI研究院开发的一种高效的相似性搜索和聚类的库.它能够快速处理大规模数据,并且支持在高维空间中进行相似性搜索.本文将介绍如何搭建Faiss环境并提供一个简单的使 ...

  3. GitLab 无仓库 中了勒索病毒

    坑爹的记录一下,并没有解决 Gitlab 昨天(2021-11-29)打开之后看不到项目了,下面这个吊样子 最后发现中病毒了,一堆的这个吊毛文件,复制一个打开看了一下 你别说这个黑客网页写的还不错,这 ...

  4. node:windows script host 錯誤 console未定义

    错误背景 在开发npm包时,碰到此项报错 解决方案 选中任意js文件,选择打开方式,指定到node中即可

  5. 加密算法解析:MD5、DES和RAS的工作原理与特点

    一.MD5不可逆加密 1.1-理解MD5 MD5公开的算法,任何语言实现后其实都是一样的.通用的 不可逆加密:原文--加密--密文,密文无法解密出原文 1.2-MD5封装 using System.I ...

  6. Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

    目录 Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明 Hi3798MV200 恩兔N2 NS-1 (二): 制作 Ubuntu rootfs Hi3798MV200 恩兔N2 ...

  7. Spring Cloud Gateway Actuator API SpEL表达式注入命令执行漏洞(CVE-2022-22947)

    描述: Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单.有效.统一的 API 路由 ...

  8. 【pandas小技巧】--列值的映射

    映射列值是指将一个列中的某些特定值映射为另外一些值,常用于数据清洗和转换. 使用映射列值的场景有很多,以下是几种常见的场景: 将字符串类型的列中的某些值映射为数字.例如,将"男"和 ...

  9. win10右键添加打开cmd窗口的命令

    创建文本文档,复制如下内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\b ...

  10. Blazor前后端框架Known-V1.2.12

    V1.2.12 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Git ...