JS: innerWidth/Heigt、outerWidth/Height、offsetWidth/Height、clientWidth/Height、scrollWidth/Height

web前端面试-- window.innerWith、window.outerWidth、clientWidth、offsetWidth、scrollWidth的区别 它是元素内容区域的宽度,可以通过CSS的width属性来设置。例如,如果一个div元素的宽度为200px,内边距为10px,那么它的clientWidth就是200px - 2 * 10px = 180px。 阅读详情

目录

  1. document.compatMode: 获取浏览器当前的渲染模式
  2. window.screen.width: 获取屏幕的水平宽度
  3. window.screen.height: 获取屏幕的垂直高度
  4. window.screen.availWidth: 获取屏幕的水平可用宽度
  5. window.screen.availHeight: 获取屏幕的水平可用高度
  6. window.outerWidth: 获取浏览器窗口实际宽度
  7. window.outerHeight: 获取浏览器窗口实际高度
  8. window.innerWidth: 获取浏览器可视区的宽度+纵向滚动条的宽度
  9. window.innerHeight: 获取浏览器可视区的高度+横向滚动条的高度
  10. document.documentElement.clientWidth: 获取浏览器可视区的宽度
  11. document.documentElement.clientHeight: 获取浏览器可视区的高度
  12. document.documentElement.offsetWidth: 获取文档根元素本身的实际宽度
  13. document.documentElement.offsetHeight: 获取文档根元素本身的实际高度
  14. document.documentElement.scrollWidth: 获取文档根元素的实际内容宽度
  15. document.documentElement.scrollHeight: 获取文档根元素的实际内容高度
  16. document.body.clientWidth: 获取body元素的内边距区域宽度
  17. document.body.clientHeight: 获取body元素的内边距区域高度
  18. document.body.offsetWidth: 获取body元素本身的实际宽度
  19. document.body.offsetHeight: 获取body元素本身的实际高度
  20. document.body.scrollWidth: 获取body元素的实际内容宽度
  21. document.body.scrollHeight: 获取body元素的实际内容高度
  22. element.clientWidth: 获取元素的内边距区域宽度
  23. element.clientHeight: 获取元素的内边距区域高度
  24. element.offsetWidth: 获取元素本身的实际宽度
  25. element.offsetHeight: 获取元素本身的实际高度
  26. element.scrollWidth: 获取元素的实际内容宽度
  27. element.scrollHeight: 获取元素的实际内容高度

标准模式(CSS1Compat)

一、获取屏幕宽高

注意:受系统分辨率设置的影响

1. 获取屏幕的实际宽高

**所有浏览器都兼容**
window.screen.width: 获取屏幕的水平宽度
window.screen.height: 获取屏幕的垂直高度

2. 获取屏幕的可用宽高

**所有浏览器都兼容**
window.screen.availWidth: 获取屏幕的水平可用宽度(任务栏的宽度除外)
window.screen.availHeight: 获取屏幕的垂直可用高度(任务栏的高度除外)

二、获取浏览器宽高
1. 获取浏览器的实际宽高

**IE9以下不支持**
window.outerWidth: 获取浏览器窗口实际宽度
window.outerHeight: 获取浏览器窗口实际高度

2. 浏览器可视区宽高(visualViewport)

视窗:正常情况下眼睛能看到的显示页面的区域(受物体的远近影响)。

*IE9以下为undefined*
window.innerWidth:获取浏览器视窗的宽度(包含纵向滚动条的宽度)
window.innerHeight: 获取浏览器视窗的高度(包含横向滚动条的高度)


*所有浏览器都兼容*
document.documentElement.clinetWidth
获取浏览器视窗的宽度(不包含纵向滚动条的宽度)
document.documentElement.clientHeight
获取浏览器视窗的高度(不包含横向滚动条的高度)


document.documentElement.offsetWidth
获取DOM文档根元素的宽度(box-sizing:content;)
offsetWidth=内容宽度(width)+左右内边距+左右边框宽度
左右内边距: padding-left + padding-right
左右边框宽度: border-left-width + border-right-width

document.documentElement.offsetHeight
获取DOM文档根元素的高度(box-sizing:content;)
offsetHeight=内容高度(height)+上下内边距+上下边框宽度
上下内边距: padding-top+ padding-bottom
上下边框宽度: border-top-width + border-bottom-width

– 回忆下现实中盒子物体的宽高计算,一开始就定下来了,不受内部元素物体的影响

浏览器兼容性:
  • IE(5,8,9,10)中: offsetWidth=window.innerWidth, offsetHeight=window.innerHeight
  • IE7中: offsetWidth=clientWidth, offsetHeight=clientHeight

document.documentElement.scrollWidth
获取DOM文档页面的实际宽度,即浏览器可视区宽高+超出可视区的其它部分的宽度
【如果没有滚动条就等于根元素的clientWidth】
document.documentElement.scrollHeight
获取DOM文档页面的实际高度,即浏览器可视区高度+超出可视区的其它部分的高度
【如果没有滚动条就等于根元素的clientHeight】
假设:我在盒子中也有一个带滑动滚动条的异度空间不就是可以装下不受盒子大小的物体吗?


document.body.clientWidth
获取body元素的可视区(内边距区域)宽度:width+padding(left+right)
document.body.clientHeight
获取body元素的可视区(内边距区域)高度:width+padding(top+bottom)


document.body.offsetWidth
获取body元素的Border Area(边框区域)宽度:
width+padding(left+right) + border(left-width±right-width)
document.body.offsetHeight
获取body元素的Border Area(边框区域)高度:
width+padding(top+bottom)+border(top-width+bottom-width)


document.body.scrollWidth
获取body元素可视区宽度(左右内边距+内容区宽度)+超出可视区宽度之外的内容宽度
即document.body.clientWidth + 超出的内容宽度(scrollLeft:横向滚动条拖到最右边)
document.body.scrollHeight
获取body元素可视区宽度(上下内边距+内容区高度)+超出可视区宽度之外的内容高度
即document.body.clientHeight+ 超出的内容高度(scrollTop:横向滚动条拖到最下边)


body的后代元素的clientWidth/Height、offsetWidth/Height、scrollWidth/Height与body的效果一样


结论
scroll只有元素本身的内容是否超出本身盒子content-box有关,不超出时与client是一样的。
client、offset与盒子本身(最初)的大小有关,client不包含边框,offset包含边框。都不包含外边距

见图:

在这里插入图片描述
注意:如果页面被放大可视区相应的就会缩小(就相当于页面离的眼睛越近相应的看到的地方就越小,反之离的越远看到的就越大, 移动端浏览桌面端的网页就是这么个原理)

  // 实际ES6中剩余函数参数的功能
  function restArguments(func, startIndex) {
    return function () {
      var length = func.length,
        argLength = arguments.length,
        index = startIndex - length > 0 ? 0 : startIndex,
        i = 0,
        firstArray = [],
        lastArray = []
      for (; i < index; i++) {
        firstArray.push(arguments[i])
      }
      for (i = index; i < argLength; i++) {
        lastArray.push(arguments[i])
      }
      func.apply(this, firstArray.concat([lastArray]))
    }
  }

  // 偏函数
  write = restArguments(write, 0)

  function write(contents) {
    for (var k in contents) {
      document.write('<br/>' + contents[k])
    }
  }

  write(
    // 浏览器当前的渲染模式-混杂模式/标准模式
    'document.compatMode:' + document.compatMode,
    // 屏幕的分辨率水平像素
    'window.screen.width:' + window.screen.width,
    // 屏幕的分辨率垂直像素
    'window.screen.height:' + window.screen.height,
    // 屏幕的分辨率水平方向的可用像素(不包含任务栏的宽度)
    'window.screen.availWidth:' + window.screen.availWidth,
    // 屏幕的分辨率垂直方向的可用像素(不包含任务栏的高度)
    'window.screen.availHeight:' + window.screen.availHeight,

    // 浏览器窗口的宽度
    'window.outerWidth:' + window.outerWidth,
    // 浏览器窗口的高度
    'window.outerHeight:' + window.outerHeight,
    // 窗口文档可视区宽度+纵向滚动条宽度
    'window.innerWidth:' + window.innerWidth,
    // 窗口文档可视区高度+横向滚动条高度
    'window.innerHeight:' + window.innerHeight,

    // 窗口文档可视区宽度
    'document.documentElement.clinetWidth:' + document.documentElement.clientWidth,
    // 窗口文档可视区高度
    'document.documentElement.clientHeight:' + document.documentElement.clientHeight,
    // 文档根元素的实际宽度不包含外边距(左右)
    'document.documentElement.offsetWidth:' + document.documentElement.offsetWidth,
    // 文档根元素的实际高度不包含外边距(上下)
    'document.documentElement.offsetHeight:' + document.documentElement.offsetHeight,
    // 文档页面的实际宽度(受内部元素的影响),内容不溢出时与clientWidth是一样的
    'document.documentElement.scrollWidth:' + document.documentElement.scrollWidth,
    // 文档页面的实际高度(受内部元素的影响),内容不溢出时与clientHeight是一样的
    'document.documentElement.scrollHeight:' + document.documentElement.scrollHeight,
    
    // 文档body元素的内边距区域宽度(content-box + padding-left/right)
    'document.body.clientWidth:' + document.body.clientWidth,
    // 文档body元素的内边距区域高度(content-box + padding-top/bottom)
    'document.body.clientHeight:' + document.body.clientHeight,
    // 文档body元素的实际宽度不包含外边距(左右)
    'document.body.offsetWidth:' + document.body.offsetWidth,
    // 文档body元素的实际高度不包含外边距(上下)
    'document.body.offsetHeight:' + document.body.offsetHeight,
    // 文档body元素的实际内容宽度(受内部元素的影响),内容不溢出时与clientWidth是一样的
    'document.body.scrollWidth:' + document.body.scrollWidth,
    // 文档body元素的实际内容高度(受内部元素的影响),内容不溢出时与clientHeight是一样的
    'document.body.scrollHeight:' + document.body.scrollHeight,

  )

在这里插入图片描述

原生js—offsetWidth、screenWidth、clientWidth、innerWidth、outerWidth……各种宽高的理解 ** 对js里面的各种宽、高的理解 ** 1.首先对 window对象 、 document对象 做一个区别; window :窗口(整个浏览器窗口),包含document; document :整个HTML文档; 2.与 window 相关的宽、高: window.innerWidth:整个浏览器窗口的宽度; window.innerHeight:整个HTML文档的高度(body的高度) ... 阅读详情

相关推荐

在 ABAP CDS 里把多语言文本和有效期文本建模清楚

SAP S/4HANA Embedded Analytics中主数据文本的建模需遵循特定规范。主数据应建为#DIMENSION视图,文本单独建为#TEXT视图,通过@ObjectModel.text.association关联。文本视图需包含主数据key、语言字段(@Semantics.language)和时间有效性字段(@Semantics.businessDate),确保能根据登录语言和业务日期显示正确文本。关键点在于通过语义注解而非硬编码条件,让Analytic Engine自动处理语言和日期匹配。正

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3425

window.innerWidth以及window.outerWidth的区别

window.outerWidth获取浏览器窗口外部的宽度。 它表示整个浏览器窗口的宽度,包括边栏 window.innerWidth获取浏览器可视区域的宽度,也就是页面的宽度<!DOCTYPE html> <html> <body><p id="demo"></p><script> var w = window.innerWidth || document.documentElement.cli

sinat_32067081的博客 7897

锐捷交换机配置SSH

锐捷交换机配置ssh 一、组网需求 通过ssh功能可以远程登录管理设备 二、配置步骤 全局开启ssh服务,并且指定ssh版本 Ruijie>enable Ruijie#configure terminal Ruijie(config)#enable service ssh-server ------>开启SSH服务,默认关闭 Ruijie(config)#ip ssh version 2 ------>默认1.99版本,设置为版本2 添加登

Loners_fan的博客 1万+

window对象

实验目的 1、理解JavaScript中BOM编程和window对象的概念。 2、掌握JavaScript中window对象常见方法open()、close()、focus()、blur()、setInterval()、clearInterval()、setTimeout()、clearTimeout()和print()等的使用技巧以及常用属性status、defaultstatus、opener...

你若盛开,清风自来 444

手把手教你用DevExpress Patch工具解决VS项目中的试用弹窗问题

本文详细指导开发者使用DevExpress Patch工具解决Visual Studio项目中恼人的试用弹窗问题。核心在于理解并分步处理:首先正确应用补丁工具以绕过运行时验证,然后重点清理或重置项目中的licenses.licx文件以消除编译时验证,从而彻底根治弹窗。

weixin_29234423的博客 590

2月底速申!国家超算互联网免费算力全攻略|编程小白零消耗实操首测_2026-02-26

2月底速申!国家超算互联网免费算力全攻略|编程小白零消耗实操首测作为一名编程小白,我目前正在学习编译和运行 Qt 框架,也在逐步摸索开发环境的配置方法,目标是打造一款属于自己的个人效率工具。就在这时,我挖到了一个国家级硬核福利:国家超算互联网核心节点开放免费试运行!哪怕是零基础如我,也能申领到 100 卡时异构加速卡算力,关键是——2 月底前申请更稳妥,早占位早使用。

qq_58517981的博客 2121

JavaScript与jQuery中获取屏幕的宽度和高度的常用方法以及HTML中精确定位

浏览器的宽高示意图: JavaScript中常用的方法: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线

不断成长的我 4179

基于Codex Skill的抖音爆款分析与带货视频自动化生成实战

这次我们来看一个基于 Codex 的自动化内容创作项目。核心是利用 Codex 平台的能力,通过自定义的 Skill(技能)来拆解抖音爆款博主的视频模式,并自动生成自己的带货视频。对于内容创作者、电商运营或对短视频自动化感兴趣的技术开发者来说,这是一个将大语言模型(LLM)能力与具体业务场景深度结合的实战案例。 项目的核心价值在于流程自动化。它试图解决一个常见痛点:分析爆款视频的脚本结构、话术、节奏需要大量人工,而模仿创作又耗时费力。通过 Codex 的 Skill 机制,可以将“分析”和“生成”这两个环节

weixin_30420305的博客 383

innerWith、outerWidth、clientWidth、offsetWidth、scrollWidth

例如,如果一个div元素的宽度为200px,内边距为10px,边框为1px,那么它的offsetWidth就是200px + 2 * 10px + 2 * 1px = 222px。例如,如果一个div元素的宽度为200px,内边距为10px,边框为1px,,那么它的clientWidth就是200px + 2 * 10px= 220px。例如,如果一个div元素的宽度为200px,内边距为10px,内容区域的宽度为300px,那么它的scrollWidth就是300px。是用来获取浏览器窗口的宽度的属性.

木昆灵寒酥的博客 1039

【2026-Spark实验一-Windows中安装Spark环境】

本文详细介绍了在Windows系统中配置Spark 3.5.8开发环境的完整流程。主要内容包括:安装JDK 8并配置环境变量,下载并解压Spark 3.5.8预编译版,设置SPARK_HOME系统变量,配置Hadoop的winutils工具解决Windows兼容性问题。通过spark-shell和SparkPi示例程序验证环境配置成功,确保Spark能够正常运行分布式计算任务。文中特别强调了路径命名规范、环境变量设置顺序等关键细节,提供了完整的配置截图和验证方法,帮助开发者快速搭建稳定的Spark学习环境。

pblh123的专栏 1588

电子电器架构 --- OEM企标中规定ECU启动时间的目的

电子电器架构 --- OEM企标中规定ECU启动时间的目的

Soly_kun的博客 224

$(window).height() 和 $(document).height()的区别

$(document).scrollTop() 获取垂直滚动的距离 (即当前滚动的地方的窗口顶端到整个页面顶端的距离)$(document).scrollLeft() 这是获取水平滚动条的距离 要获取顶端 只需要获取到scrollTop()==0的时候 就是顶端了 要获取底端 只要获取scrollTop()>=$(document).height()-$(window)...

dieshi3888的博客 424

YOLO11改进 - 卷积Conv | DEGConv(方向引导边缘门控卷积) : 空间分块、方向先验、轻量边缘增强

本文介绍了方向引导边缘门控卷积(DEGConv),一种专为增强边缘敏感度与方向感知能力设计的轻量级模块。该方法通过 Sobel 算子生成方向嵌入,结合条纹卷积提取水平与垂直边缘特征,并利用门控机制动态抑制背景噪声,从而精准捕捉细粒度结构。我们将 DEGConv 成功集成进 YOLO11,在 Backbone 的 SPPF 后及 Neck 的 P3、P4 分支中引入该模块以优化特征提取。实验证明,集成 DEGConv 的 YOLO11 在检测任务中表现优异,有效提升了模型对复杂边缘与方向特征的建模能力。

魔改工程师的博客 678

通过js脚本,利用$(window).height()和$(window).weight()进行盒子的自适应调配

现在网页布局为头部 左侧和右侧。现在通过脚本来计算子左侧和右侧的自适应 html结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-...

weixin_45646912的博客 906

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Window的scrollX、innerWidth、outerWidth

1.window.scrollX 返回文档/页面水平方向滚动的像素值。示例:// 如果 scrollX 大于 200,则把文档重新滚动到左上角。 if (window.scrollX > 200) { window.scroll(0,0); }备注:pageXOffset属性是scrollX属性的别名window.pageXOffset == window.scrollX; // 总是 tr

FEE 1324

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JavaScript学习笔记(三)

7.操作BOM对象(重点) l浏览器介绍 JavaScript 和 浏览器关系? JavaScript 诞生就是为了能够让它在浏览器中运行! BOM:浏览器对象模型 主流浏览器: IE 6~11 Chrome Safari FireFox (Linux默认浏览器) 三方: QQ浏览器 360浏览器 window window 代表浏览器窗口 window.alert(1) un...

南宫沉梦博客 438

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

测试screen.width, window.outerWidth, window.outerHeight, window.innerWidth, window.innerHeight

html lang="zh-cmn-hans"> head> meta charset="utf-8"> meta name="viewport" content="width=device-width, user-salable=no, initial-scale=1.0; maximum-scale=1.0, minimum-scale=1.0"> meta http-equiv=

13-c的博客 1055

js及innerWidth、innerHeight、outerWidth和outerHeight属性

js及innerWidth、innerHeight、outerWidth和outerHeight属性 toumingyumaohuiyi 跨浏览器确定一个窗口的大小不是一件简单的事。Firefox.Safari.Opera和Chrome均为此提供了4个属性:innerWidth、innerHeight、 outerWidth和outerHeight。 在Safari和Firefox中,outerWidth和outerHeight返回浏览器窗口本身的尺寸(无论是从最外层的window对象还是从某个框架访.

cxu123321的博客 3344

JS笔记

网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth

Lycop的博客 384

JS -获取屏幕/浏览器高度

一、展示图 二、屏幕信息 window.screen.height:设备显示屏的高度 这个是设备显示屏的高度,各个机型的显示屏高度都不一样,可以在系统设置中看 window.screen.availHeight:屏幕的可用高度 一般是显示屏高度减去显示屏工具栏的高度 任务栏高度 = screen.height - screen.availHeight 三、浏览器信息 window.ou...

kelly0721的博客 1万+

浅谈一下window窗口的各种宽高属性

一 常用的宽高属性 在日常开发的时候,我们常常需要用到这几个高度信息。浏览器的视口高度和宽度,浏览器的卷动高度,正文内容的总高度等等信息,我在下图中列出了在工作中最常用的几个宽度和高度信息。并在本篇文章中对各种常见宽高进行说明。 二 各类宽高说明 2.1 window.innerHeight/window.innerWidth windo...

weixin_33711647的博客 533

window 宽度 长度 的各种属性 以及意思

A.1.window.innerWidth=&gt;返回窗口的文档显示区的宽度。 window.innerHeight=&gt;返回窗口的文档显示区的高度。 window.outerWidth=&gt;设置或返回一个窗口的外部高度,包括所有界面元素(如工具栏/滚动条)。 window.outerHeight=&gt;设置或返回窗口的外部宽度,包括所有的界面元素(如工具栏/滚动)。 2. body....

weixin_44081699的博客 1819

javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法

****** 元素视图属性 * offsetWidth 水平方向 width + 左右padding + 左右border-width * offsetHeight 垂直方向 height + 上下padding + 上下border-width * * clientWidth 水平方向 width + 左右padding * cli...

盏茶作酒的博客 301

JS技能点--window.innerHeight window.outerHeight 与screen.height

window与screen window是浏览器支持的全局变量,也可以通过document.defaultView获取它,表示浏览器的窗口信息。 innerHeight与outerHeight innerHeight表示窗口内容区域的高度,这是不包括边框、菜单栏的。 而outerHeight是窗口的整体高度,包括边框、菜单栏等。 所以一般常用的是innerHeight。 screen.height screen是指的屏幕,表示当前整个显示器显示的屏幕部分,不限于当前的窗口。height是屏幕的宽度,例如屏幕

编程副队长 5333

js获取浏览器窗口页面宽度、高度的方法 kaki 的博客

**js获取浏览器窗口页面宽度、高度的方法 ** 直接 alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(document.body).height());//浏览器时下窗口文档body的高度 alert($(document.body).outerHeight(true));//浏览器时下窗口文档body的总高度 包括border padding margin ale

qq_44988088的博客 2562
上一篇: 盒子模型
下一篇: JS: offsetLeft/Top、offsetParent、scrollLeft/Top、clientLeft/Top、scrollX、scrollY、pageXOffset、pageYOffse
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值