JS的盒子模型

LoFTR训练避坑指南:从零到一复现论文训练流程 本文是一份详细的LoFTR模型训练避坑指南,旨在帮助开发者从零开始复现论文训练流程。文章系统性地讲解了环境配置、数据准备、代码调试与显存优化等关键步骤,并针对常见的训练错误提供了解决方案,确保训练过程顺利进行。 阅读详情

一。JS盒子模型指的是通过JS中提供的一系列的属性和方法,获取页面中元素的样式信息值

<script type="text/javascript">  
    var box = document.getElementById("box");  
    console.dir(box);  
</script>

#box(有很多自己的私有属性)-> HTMLDivElement.prototype -> HTMLElement.prototype -> Element.prototype -> Node.prototype -> 

EventTarget.prototype -> Object.prototype

以下面这个盒子作为例子了解一下JS中的盒子模型:

内容的宽度和高度:我们设置的 width / height 这两个样式就是内容的宽和高;如果没有设置height的值,容器的高度会更具里面内容多少自己进行适应,这样获取的值就是真实内容的高;如果固定的高度了,无论内容的多了还是少了,其实我们的内容的高度都是设定的那个值

真实内容的宽度和高度:这个代指的是实际内容的宽高(和我们设置的height没有必然的联系),例如:我们设置的高度为200px,如果内容有溢出,那么真实内容的高度就是把溢出内容的高度也要加进来的


(当前元素的几个私有的属性)

1.client系列

-> clientWidth / clientHeight : 内容的宽度 /  高度 + 左右 / 上下填充padding

-> clientLeft / clientTop : 左 边框的宽度 / 上边框的高度   (border [ Left / Top ] Width)



2.offset系列

-> offsetWidth / offsetHeight :  clientWidth / clientHeight  + 左右 / 上下边框border

-> offsetParent:当前元素的富集参照物

-> offsetLeft / offsetTop:当前元素的外边框距离富集参照物的内边框的偏移量



3.scroll系列

-> scrollWidth / scrollHeight :和我们的clientWidth / clientHeight 一模一样(前提是:容器中的内容没有溢出的情况下)

-> 如果容器中的内容有溢出,我们获取的结果是如下规则:

scrollWidth :真实内容的宽度(包含溢出) + 左填充padding-left

scrollHeight:真实内容的高度(包含溢出) + 上填充padding-top

-> 获取到的结果都是“约等于”的值,因为:同一个浏览器,我们是否设置overflow: hidden; 对于最终的结果石油影响的,在不同的浏览器中我们取到的结果也是不同的

-> scrollLeft / scrollTop:滚动条卷去的宽度 /  高度



二。关于JS合作司模型属性取值的问题

我们通过这13个属性值获取到的结果永远不可能出现小数,都是整数;浏览器获取结果的时候,在原来真实结果的基础上进行四舍五入


三。关于操作浏览器本身的盒子模型信息

-> clientWidth / clientHeight 是当前浏览器可视窗口的宽度和高度(一屏幕的宽度和高度)

-> scrollWidth / scrollHeight 是当前页面的真实宽度和高度(所有屏加起来的宽度和高度,但是是一个约等于的值)

-> 我们不管哪些属性,也不管是什么浏览器,也不管是获取还是设置,想要兼容的话,就需要写两套

document.documentElement[attr] || document.body[attr]  -> 必须document.documentElement在前面

-> 例如:

[获取]    

document.documentElement.clientWidth || document.body.clientWidth

[设置也需要写两套]

document.documentElement.clientWidth = 0;

document.body.clientWidth = 0;


为了方便,编写一个关于操作浏览器盒子模型的方法win

如果只传递了attr没有传递value,默认的意思就是“获取”

如果两个参数都传递了,意思就是“设置”

不严谨的说,这就是有关于“类的重载”,同一个方法,通过传递参数的不同实现了不同的功能

<script type="text/javascript">  
    var box = document.getElementById("box");  
    console.dir(box);  
    function win(attr,value) {  
        if(typeof value === "undefined"){//->没有传递value值=“获取”  
            return document.documentElement[attr] || document.body[attr];  
        }  
        //“设置”  
        document.documentElement[attr] = value;  
        document.body[attr] = value;  
    }  
</script>


英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战:从安全手册到代码集成的避坑指南 本文深入探讨英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战应用,重点解析锁步核配置、ECC策略优化及SafeTlib库集成中的关键问题。通过代码示例和配置建议,帮助开发者实现ASIL D级别安全性,规避常见陷阱,提升汽车电子系统的功能安全合规性。 阅读详情

相关推荐

基于陀螺仪航向反馈的轮式机器人PID直线控制

航向角控制是移动机器人实现稳定直线运动的基础技术,其本质是通过实时感知机体朝向偏差并动态调节驱动输出,以抵消机械不对称、轮径误差等固有扰动。该方法依托陀螺仪测量角速度并积分解算航向角,结合离散化PID算法生成补偿性PWM指令,在嵌入式平台(如STM32)上构建低延迟闭环。相比依赖编码器的速度闭环,它规避了轮径标定与安装偏心等误差源,显著提升低成本平台的工程鲁棒性与部署效率。典型应用场景包括教育机器人直线循迹、AGV基础导航模块开发及IMU-PID融合控制原型验证。

web39explorer的博客 1110

JS中的盒模型

宽度=height(padding(上下的高度)+border(上下边框高度))+margin(上下边距)高度=height+padding(上下的高度)+border(上下边框高度)+margin(上下边距)宽度=width(padding(左右的宽度)+border(左右边框宽度))+margin(左右边距)宽度=width+padding(左右的宽度)+border(左右边框宽度)+margin(左右边距)box-sizing:content-box;

QYY的博客 880

C#粘包和分包问题及解决方法

一:通过图解法来描述一下分包和粘包,这样客户更清晰直观的了解:  下面对上面的图进行解释:  1.正常情况:如果Socket Client 发送的数据包,在Socket Server端也是一个一个完整接收的,那个就不会出现粘包和分包情况,数据正常读取。  2.粘包情况:Socket Client发送的数据包,在客户端发送和服务器接收的情况下都有可能发送,因为客户端发送的数据都是发送的一个缓冲...

weixin_42033401的博客 7767

JS盒子模型

JS盒子模型

wxh2860906464的博客 1577

那些年-SAP固定资产导入AS91 OASV

固定资产起初导入步骤: 第一部分:资产数据导入 1)两个日期配置 填写图片摘要(选填) Specify transfer date/last closed fiscal year 这里的日期填写系统切换日期,如果系统是2015-10-01上线,这里填写2015-09-3 填写图片摘要(选填) Specifylast period posted in prv system 这里指定系统切换的上一期间。这里写2015-09 填写图片摘要(选填) ​2)AS91新增 填写固定资产的分类,公司

阿土工作室 7947

Emscripten安装(wasm编译)

5:配置对应环境变量--替换成自己对应的安装路径(2025最新的Emscripten工具链默认使用LLVM/WebAssembly标准工作流,java依赖已经移除了,所以以下java环境不配,需要使用java的手动添加即可---->emsdk install java-8-152-64bit。3:下载相应的依赖库---->emsdk install latest(我这里下的是最新的,如果有指定版本,把latest替换成版本号即可)6:测试是否成功---> emcc- v/em++ -v。

qq_31578301的博客 554

JS JavaScript HTML 盒子, 定位,浮动, 伪类

JS JavaScript HTML 盒子, 定位,浮动, 伪类

weixin_42462436的博客 1031

网络设备调试指南:如何用MDIO Clause22/45协议读写Marvell MV88E6390寄存器

本文深入解析了如何通过MDIO Clause 22/45协议对Marvell MV88E6390交换芯片进行寄存器读写调试。文章详细对比了两种协议的本质区别与适用场景,并重点阐述了MV88E6390的直接与间接寻址策略,提供了实战代码示例与关键调试技巧,帮助网络工程师高效解决配置与通信问题。

tequila的博客 517

JS中的盒子模型

JS中的盒子模型(高清脑图)

qq_47396421的博客 220

osgearth2.10 demo功能介绍

osgearth-2.10 demo: 说明: 1、运行环境win7 x64 旗舰版,CPU i5-6400 8核,8G内存; 2、括号内是对应demo的测试参数(.earth); 3、配置OSG_FILE_PATH; 4、参数命令行可以查看各个demo需要的输入参数; 5、前缀说明:gui界面程序、cmd控制台程序、non功能未知; 6、程序后括号里的non表示不需要通过命令行输入参数; 示例: 1、gui:osgearth_3pv(simple.earth):相机与地球的投影关系,Range表示相机

rach09的专栏 2421

从Android到鸿蒙:UI框架迁移的实战指南与最佳实践

本文为Android开发者提供了将应用UI框架迁移至鸿蒙系统的实战指南。文章深入对比了Android命令式编程与鸿蒙ArkUI声明式编程的核心差异,详细讲解了从环境配置、布局迁移(如RecyclerView转List)、逻辑处理到多设备适配与性能优化的全流程最佳实践,帮助开发者高效完成迁移工作。

weixin_29208077的博客 433

JS基础(八)JS盒子模型

JS中DOM盒子模型深入分析 CSS盒子模型 传统盒子模型 width height:不是盒子的宽高,而是盒子中的内容 盒子的宽度=width+border*2+padding*2//在一个对称的模型中 CSS3新增加的盒子模型 增加该属性,width和height的数值就是盒子的宽高; box-sizing:border-box; JS盒子模型 提供一些属性和方法用来描...

qq_23389687的博客 3256

深入理解 DDR5 Bank Group 与并行调度机制

Bank Group架构和并行调度机制,是DDR5性能跃升的核心秘密!理解它们才能写出高效调度程序,设计出性能强劲又稳定的DDR5系统。🎯记住:Bank Group不是简单的分组,而是高速并行的“魔法钥匙”,巧用它,你的DDR5设计将爆发惊人性能!

weixin_43199439的博客 312

关于js中的盒子模型

js中的盒子模型:通过js来获取页面的样式信息 1.client系列: clientHeigth/clientWidth:获取当前浏览器可视高度和宽度,不包括border,如果是操作一个元素便是获取当前操作对象的内容高度/宽度,包括上下填充(padding值)。 clientLeft/clientTop:获取当前操作对象的border的宽度相当与boder-width。 2.offset系列: o...

weixin_45156867的博客 371

NTscan扫描工具

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JS 获取盒子模型对应的高宽

例如,在进行响应式设计时,了解如何精确地获取和操作元素的尺寸可以帮助我们更有效地管理页面布局,避免不必要的重绘和回流,从而提升用户体验。此外,结合现代框架如React或Vue.js,我们可以将上述逻辑封装进组件中,以更加模块化的方式管理和复用代码,这无疑增加了项目的可维护性和扩展性。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。返回的是元素内部区域的宽度和高度(包含padding,但不包含border和margin)。专栏系列(点击解锁)

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1085

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

js中的盒子模型

说到盒子模型,你第一时间会想到css盒子模型,css中的盒子模型包括(内容区+内边距+边框)。那在js中怎么去获取这些属性值呢?下面一起来学习js中的盒子模型。 css样式 body { margin: 0; padding: 0; } .box { position: absolute; margin: 10px; pa...

akavavp3896的博客 170

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JS盒子模型、图片懒加载、DOM库封装 — 1、JS盒子模型及常用操作样式方法的封装...

1、大纲 JS中的盒子模型 clientWidth/clientHeight clientTop/clientLeft offsetWidth/offsetHeight scrollWidth/scrollHeight getCss方法的封装 offsetTop/offsetLeft offsetParent offset方法的封装:获取盒子偏移量 scrollLeft/scrollTop 定时...

weixin_34249678的博客 247

JS学习之盒子模型

沧桑肥肥 2016-11-26 14:47 1.CSS盒子模型包括四个部分组成:设定的宽高+padding+border+margin; 2.JS盒子模型:通过系统提供的属性和方法,来获取当前元素的样式值 JS提供的属性和方法: client系列:clientWidth,clientHeight,clientLeft,clientTop; offset系列: of

u011277123的博客 866

js盒子模型常用属性

1.js盒子模型 指的是通过js中提供的一系列的属性和方法,获取页面中元素的样式信息值 例: #box有很多自己的私有属性: HTMLDivElement.prototype->HTMLElement.prototype->Element.prototype->Node.prototype->EventTarget.prototype->Object.prototype var bo

sushans的博客 9111

js盒子模型

js中提供一些属性和方法用来描述盒子的样式的 clientWidth/clientHeight 当前盒子可视区域的宽度和高度 可视区域:内容的宽高+padding*2 clientHeight = height+padding(top&&bottom) clientWidth = height+padding(left&&right) 他们的值和内容是否溢出和是否设置了overflow:hidden没有关系 clientTop和clientL...

Rossbort的博客 464

JS-盒子模型

JS-盒子模型属性offset offset

繁花落幕的博客 239

Day08 选择器 盒子模型 javaScript

简单选择器(标签名选择器,类选择器,ID选择器) 标签名选择器:按照标签的名字,选中元素 h1{} 类选择器:按照class属性的值,选中元素,先给元素加class属性+通过 . 获取class的值 Id选择器:按照id属性的值(唯一)选中元素,先给元素加id属性+通过#获取id的值 分组选择器 选中一批元素,分成一组,统一设置样式 属性选择器:通过标签的属性选中元素 Input[type=’text’]{} A[href]{} 盒子模型 CSS把网页里的每个元素,都当做一个盒子来看 外边距..

m0_60585248的博客 154

html盒子模型的填充属性,JS盒子模型常用属性

JS盒子模型常用属性CSS如下:*{margin: 0;padding: 0;}#box{margin: 100px;padding: 30px;width: 200px;height: 200px;border: 30px solid royalblue;}HTML如下:Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut c...

weixin_30678145的博客 810
上一篇: JS的同步与异步
下一篇: jQuery的AJAX和JSONP
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值