【前端

2023-11-05

先看一个例子

html

<div class="container">
  <div class="item">
    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容
    内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容
  </div>
</div>

js

window.onload = () => {
 let container = document.querySelector(".container");
 console.log("clientWidth: 可视区域的宽度(400px-滚动条的宽度10px)=",container.clientWidth);
 console.log("clientHeght: 可视区域的高度为container盒子的高度",container.clientHeight);
 console.log("offsetHeight: 可视区域的高度为height+border*2=",container.offsetHeight);
 console.log("offsetWidht: 可视区域的高度为widht+border*2=",container.offsetWidth);
 console.log("scrollHeight: 可视区域的高度为子盒子的height",container.scrollHeight);
};

css

body,
  html {
    height: 100%;
    overflow: hidden;
    margin: 0;
    padding: 0;
  }
  ::-webkit-scrollbar {
    width: 10px;
    background-color: gray;
  }
  ::-webkit-scrollbar-thumb {
    background-color: black;
    border-radius: 5px;
  }

  .container {
    height: 500px;
    width: 400px;
    margin: 100px auto;
    background-color: rgb(6, 100, 64);
    border: blue 5px solid;
    overflow: auto;
  }
  .item {
    height: 800px;
    width: 200px;
    margin: 0 auto;
    color: #fff;
    line-height: 200px;
    overflow: hidden;
    background-color: rgb(235, 77, 77);
  }

输出

 clientWidth

只读属性 Element.clientWidth 对于内联元素以及没有 CSS 样式的元素为 0;否则,它是元素内部的宽度(以像素为单位)。该属性包括内边距(padding),但不包括边框(border)、外边距(margin)和垂直滚动条(如果存在)。

在根元素(<html> 元素)或怪异模式下的 <body> 元素上使用 clientWidth 时,该属性将返回视口宽度(不包含任何滚动条)

clientHeight

只读属性 Element.clientHeight 对于没有定义 CSS 或者内联布局盒子的元素为 0;否则,它是元素内部的高度(以像素为单位),包含内边距,但不包括边框、外边距和水平滚动条(如果存在)。

clientHeight 可以通过 CSS height + CSS padding - 水平滚动条高度(如果存在)来计算。

在根元素(<html> 元素)或怪异模式下的 <body> 元素上使用 clientHeight 时,该属性将返回视口高度(不包含任何滚动条)

 

 clientLeft

表示一个元素的左边框的宽度,以像素表示。如果元素的文本方向是从右向左(RTL, right-to-left),并且由于内容溢出导致左边出现了一个垂直滚动条,则该属性包括滚动条的宽度。clientLeft 不包括左外边距和左内边距。clientLeft 是只读的。

clientTop

一个元素顶部边框的宽度(以像素表示)。不包括顶部外边距或内边距。clientTop 是只读的。

 语法

var top = element.clientTop;

offsetWidth

HTMLElement.offsetWidth 是一个只读属性,返回一个元素的布局宽度。一个典型的(译者注:各浏览器的 offsetWidth 可能有所不同)offsetWidth 是测量包含元素的边框 (border)、水平线上的内边距 (padding)、竖直方向滚动条 (scrollbar)(如果存在的话)、以及 CSS 设置的宽度 (width) 的值。

语法

var offsetWidth =element.offsetWidth;

备注: 这个属性将会 round(四舍五入) 为一个整数。如果你想要一个 fractional(小数) 值,请使用element.getBounding ClientRect()

示例

 offsetHeight

HTMLElement.offsetHeight 是一个只读属性,它返回该元素的像素高度,高度包含该元素的垂直内边距和边框,且是一个整数。

通常,元素的 offsetHeight 是一种元素 CSS 高度的衡量标准,包括元素的边框、内边距和元素的水平滚动条(如果存在且渲染的话),不包含:before 或:after 等伪类元素的高度。

对于文档的 body 对象,它包括代替元素的 CSS 高度线性总含量高。浮动元素的向下延伸内容高度是被忽略的。

如果元素被隐藏(例如 元素或者元素的祖先之一的元素的 style.display 被设置为 none),则返回 0

备注: 这个属性值会被四舍五入为整数值,如果你需要一个浮点数值,请用 

element.getBounding ClientRect()

语法

var intElemOffsetHeight = document.getElementById(id_attribute_value).offsetHeight

intElemOffsetHeight是一个变量存储对应元素的 offsetHeight 像素的整数值。offsetHeight 属性是只读的。

示例

 上面的图片中显示了 scollbar 和窗口高度的 offsetHeight.但是不能滚动的元素可能会有一个很大的高度值,大于可以看见的内容。这些元素原则上是被包含在滚动元素之中的。所以,这些不能滚动的元素可能会因为 scrollTop 的值会被完全隐藏或者部分隐藏;

备注

offsetHeight 是一个 DOM 属性,由 MSIE 首次提出。它有时被称为一个元素的物理/图形的尺寸,或是一个元素的边界框(border-box)的高度。

offsetLeft

HTMLElement.offsetLeft 是一个只读属性,返回当前元素左上角相对于 HTMLElement.offsetParent 节点的左边界偏移的像素值。

对块级元素来说,offsetTopoffsetLeftoffsetWidth 及 offsetHeight 描述了元素相对于 offsetParent 的边界框。

然而,对于可被截断到下一行的行内元素(如 span),offsetTop 和 offsetLeft 描述的是第一个边界框的位置(使用 Element.getClientRects() 来获取其宽度和高度),而 offsetWidth 和 offsetHeight 描述的是边界框的尺寸(使用Element.getBoundingClientRect 来获取其位置)。因此,使用 offsetLeft、offsetTop、offsetWidthoffsetHeight 来对应 left、top、width 和 height 的一个盒子将不会是文本容器 span 的盒子边界。

语法

left = element.offsetLeft;

left 是一个整数,表示向左偏移的像素值。

示例

var colorTable = document.getElementById("t1");
var tOLeft = colorTable.offsetLeft;

if (tOLeft > 5) {
  // large left offset: do something here
}

这个例子展示了蓝色边框的 div 包含一个长的句子,红色的盒子是一个可以表示包含这个长句子的 span 标签的边界。

Image:offsetLeft.jpg

<div style="width: 300px; border-color:blue;
  border-style:solid; border-width:1;">
  <span>Short span. </span>
  <span id="long">Long span that wraps withing this div.</span>
</div>

<div id="box" style="position: absolute; border-color: red;
  border-width: 1; border-style: solid; z-index: 10">
</div>

<script>
  var box = document.getElementById("box");
  var long = document.getElementById("long");
  //
  // long.offsetLeft 这个值就是 span 的 offsetLeft.
  // long.offsetParent 返回的是 body(在 chrome 浏览器中测试)
  // 如果 id 为 long 的 span 元素的父元素 div,设置了 position 属性值,只要不为 static,那么 long.offsetParent 就是 div

  box.style.left = long.offsetLeft + document.body.scrollLeft + "px";
  box.style.top = long.offsetTop + document.body.scrollTop + "px";
  box.style.width = long.offsetWidth + "px";
  box.style.height = long.offsetHeight + "px";
</script>

 offsetTop

HTMLElement.offsetTop 为只读属性,它返回当前元素相对于其 offsetParent 元素的顶部内边距的距离。

语法

topPos = element.offsetTop;

示例

var d = document.getElementById("div1");
var topPos = d.offsetTop;

if (topPos > 10) {
  // div1 距离它的 offsetParent 元素的顶部的距离大于 10 px
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【前端 的相关文章

  • 将较新版本的 WebKit 嵌入 Android 应用程序

    我正在使用 Web 技术开发 Android 应用程序 CSS 转换 对于应用程序的功能非常重要 因为它们负责滚动和滑动页面 非常缓慢 根据互联网上找到的信息 CSS 过渡不是硬件加速的 除非进行 3 维转换 我发现很多文章说我应该放置 w
  • Firefox 忽略背景大小的 css

    尝试使用背景大小 CSS 规则缩小图像 但 Firefox 3 5 似乎会忽略该规则 CSS privatejoker background aqua url styles images home privatejoker png no r
  • 没有嵌套容器的桌面和移动 Flexbox 布局

    我有 3 个 div 它们必须按移动布局的特定顺序排列 但我必须将第 2 个 div 作为桌面布局的侧边栏 所以对于移动设备 分区1 分区2 分区3 对于桌面 分区1 div2 分区3 在桌面布局中 div 2 有阴影背景 因此必须是父级的
  • CSS 中 calc() 的结果是什么

    我们现在已经开始使用calc 在CSS中 用于设置计算结果的宽度 例如 div div div div parent width 100px calcWidth width calc 100 3px height 100px backgro
  • 相对于变换元素的绝对定位元素位置

    我重新创建了我在模板中遇到的问题 有一个nav具有position relative 在 的里面nav有一个div有两个嵌套列表 其中一个列表的位置绝对固定在列表的底部nav 当div对其应用了变换 当 的时候div在绝对和相对定位的元素之
  • 显示带有背景颜色的百分比条

    例如 如果我有一个包含两列和 2 行的表 Col1 Percentage 50 50 70 70 如何用代表 COl1 值的颜色填充百分比列 像这样的东西 您可以使用具有两个紧接着的停止点的线性渐变 percentageFill heigh
  • 单击输入字段会触发窗口调整大小

    我有一个带有徽标 菜单和搜索的标题 当我在桌面上时 我会按该顺序显示所有元素 但如果我的窗口宽度小于 980 像素 菜单会隐藏 有一个切换按钮 并且徽标会与nav并附在徽标之后 如果宽度更大 则徽标将再次分离并附加到 DOM 中的旧位置 w
  • 如何检查元素的内容是否为空,如果是,则在 jquery 中删除该元素

    我目前正在尝试选择某个 div 内没有内容的任何 h2 元素并将其删除 这是我的 html 代码 div class skipToContainer h2 class vidSkipTo Hello h2 h2 class vidSkipT
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • 垂直对齐复选框标签? [复制]

    这个问题在这里已经有答案了 我有这样的复选框
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 如何更改bootstrap中form-control弹出窗口中必填字段的默认消息?

  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • 现在 CSS3 供应商前缀有多必要? [复制]

    这个问题在这里已经有答案了 我只是想知道现在在 CSS 中指定 webkit moz ms 或 o 等供应商前缀在多大程度上仍然有必要 如果我理解正确的话 opera 切换到了 webkit 所以会删除 o 对吗 IE 在 IE10 中不再
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • 更改文本输入标签中文本的大小?

    我有一个很大的文本输入框 但我无法更改字体大小
  • CSS 是否有不等于选择器?

    CSS中有类似 不等于 的东西吗 例如 我有以下代码 input 但对于某些输入 我需要将其作废 我想通过将类 reset 添加到输入标签来做到这一点 例如

随机推荐

  • Bezier曲线的公式推导及代码实现

    本文仅简述Bezier曲线的公式推导 并给出了一种代码实现 在阅读本文之前 请确保你已经对Bezier曲线的背景知识有所了解 相关知识可以通过以下课程进行学习 MOOC 计算机图形学 中国农业大学 赵明或者观看B站搬运版 算法原理 给定 n
  • mysql count 测试

    从执行结果来说 count 1 和count 之间没有区别 因为count count 1 都不会去过滤空值 但count 列名 就有区别了 因为count 列名 会去过滤空值 从执行效率来说 count 1 和 count 一样 24 6
  • 自动登录脚本

    为了解决不同网络空间的问题 本来是想通过改变环境变量的方式 不过最终还是 选择了在shell脚本下 选择了网络空间后执行脚本 同时这个库 还可以实现相应的文件传输功能 这也是比较划算的一个功能 usr bin python coding u
  • chatgpt赋能python:Python获取微信群聊天记录

    Python获取微信群聊天记录 微信是目前中国最受欢迎的社交聊天应用程序之一 许多人都习惯在微信群中进行聊天和信息交流 然而 有时我们需要保存一些重要的聊天记录 以备日后查看和备份 Python可以帮助我们实现获取微信群聊天记录的目的 为什
  • java中对于类的了解

    1 java中的万事万物都由类组成 而类可以说是对象的载体 相当于类 2 类由属性与行为组成 属性 成员变量 行为 成员方法 相当于函数 举个例子 人 对象 高 矮 瘦 胖 成员变量 走路 吃饭 上班 成员方法 calss person S
  • 锂电池为啥会爆炸

    前段时间 三星公司的旗舰智能手机GalaxyNote 7一直牢牢占据着新闻头条 这倒不是因为它的性能或是设计有多么出众 当然Note7的性能和设计的确很好 而是因为其在上市后的短时间内 即被发现内置电池存在重大安全隐患 手机无故发生爆炸的几
  • JSP基本语法

    JSP基本语法 1 1 JSP页面的基本结构 1 在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面 JSP页面有五种元素组成 普通的HTML标记和JavaScript标记 JSP标记 如指令标记 动作标记 变量
  • 3.1 简单变量

    为把信息存储在计算机中 程序必须记录3个基本属性 信息将存储在哪里 要存储什么值 存储何种类型的信息
  • java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException

    IDEA也没提示错误 但是跑单元测试的时候报错 加入以下依赖正常 gt
  • Linux上快速安装软RAID详细步骤

    物理环境 虚拟机CentOS6 4 配置 8G内存 2 2核cpu 3块虚拟硬盘 sda sdb sdc sdb和sdc是完全一样的 在实际生产环境中 系统硬盘与数据库和应用是分开的 这样有利于系统的维护和对数据应用的使用 本环境中将sda
  • tcp/udp建立连接并通信的过程

    基于TCP的socket编程的服务器程序流程如下 1 创建套接字 SOCKETsockSrv socket AF INET SOCK STREAM 0 2 将套接字绑定到本地地址和端口上 SOCKADDR INaddrSrv addrSrv
  • 利用Android Studio自带的模拟器联网

    Android Studio自带的模拟器本身默认是不能上网的 因为默认DNS为10 0 2 3 使用这个DNS是不能上网的 网上很多帖子已经给出了解决办法 但是会遇到下面这种情况 通过继续查询得知 通过shell命令设置 获取 IP 网关
  • 蓝桥杯真题系列:C语言A组奇妙的数字

    小明发现了一个奇妙的数字 它的平方和立方正好把0 9的10个数字每个用且只用了一次 你能猜出这个数字是多少吗 请填写该数字 不要填写任何多余的内容 这个题题意比较简单 解决办法也是非常简单 暴力即可 主要数据结构哈希表的运用 哈希表用来记录
  • 烟波钓叟赋注解。

    先理解一下烟波钓叟赋 奇门遁甲 的排盘过程 前言 基本数制系统 中国文化 12个数以内叫掌握 一掌內还可以握更多的数 易有太极 是生两仪 两仪生四象 四象生八卦 太极为1 两仪为阴阳 三奇就是乙丙丁 四象 左青龙 右白虎 南朱雀 北玄武 五
  • Qt将十二位整形十进制转换成十六进制,在转为ascii字符,并下发串口。在接受端完整还原这个十二位的十进制数。

    可以按照以下步骤进行操作 将十进制数123456789012转换成十六进制字符串 QString hexString QString 1 arg 123456789012ull 0 16 其中 1表示替换第1个参数 0表示输出的最小位数为0
  • 微信小程序环境配置过程

    微信小程序简介 可以通过阅读微信官方文档对小程序有一个初步的了解 在官方文档内也可以学习到如何进行小程序的环境配置 官方文档链接如下 https developers weixin qq com miniprogram dev framew
  • jsonEdit编辑器

    json格式化编辑器 源码做了部分修改 支持导入及手动编辑
  • 再论PID,PID其实很简单。。。

    0 PID前言 PID已经有105年的历史了 它并不是什么很神圣的东西 大家一定都见过PID的实际应用类似于这种 需要将某一个物理量 保持稳定 的场合 比如维持平衡 稳定温度 转速等 PID都会派上大用场 那么问题来了 比如 我想控制一个
  • 【汽车电子】浅谈汽车四大总线:LIN、CAN、FlexRay、MOST

    目录 1 前言 2 汽车四大总线 2 1 LIN总线 2 1 1 LIN总线概述 2 1 2 LIN总线工作原理 2 2 CAN总线 2 2 1 CAN总线概述 2 2 2 CAN总线工作原理 2 2 3 CAN总线的优点 2 3 Flex
  • 【前端

    图 先看一个例子 html div class container div class item 内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容 内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容