HTML offsetHeight 属性用法详解

前端开发小伙伴们在页面布局的时候是不是经常会用到offsetHeight,今天就来讲下用法。

offsetHeight 是 HTML 元素的属性,用于获取元素的物理高度(包括内边距、边框和水平滚动条,但不包括外边距)。它返回一个整数值,表示元素的垂直尺寸。

  • element:这是一个指向 HTML 元素的引用。

假设我们有以下 HTML 结构:

在这个例子中,#box 元素的 offsetHeight 属性值是 170。这是因为:

  • 元素的高度 (height) 是 150px。
  • 上下的内边距 (padding) 各为 10px,总共 20px。
  • 上下的边框 (border) 各为 5px,总共 10px。

所以总高度为 150 + 20 + 10 = 180px。

  1. 包含内容:offsetHeight 包括元素的内容区域、内边距和边框,但不包括外边距。
  2. 滚动条:如果元素有水平滚动条,offsetHeight 会包含滚动条的高度。
  3. 隐藏元素:对于隐藏的元素(例如通过 CSS 设置 display: none),offsetHeight 返回 0。
  4. 计算开销:由于需要计算布局信息,频繁访问 offsetHeight 可能会影响性能,特别是在大量元素或复杂布局的情况下。
  • clientHeight:返回元素的高度,包括内边距,但不包括边框和水平滚动条。
  • scrollHeight:返回元素的整体高度,包括溢出不可见部分的高度。
  • offsetTop:返回元素相对于其 offsetParent 的顶部距离。
  • offsetLeft:返回元素相对于其 offsetParent 的左侧距离。

offsetHeight 是一个有用的属性,可以帮助开发者精确地测量和操作元素的物理尺寸。了解它的工作原理和使用场景,可以更好地进行前端开发和调试。

什么是HTML

HTML 是用来描述网页的一种语言。HTML 是一种在 Web 上使用的通用标记语言。HTML 允许你格式化文本,添加图片,创建链接、输入表单、框架和表格等等,并可将之存为文本文件,浏览器即可读取和显示。

  • HTML 指的是超文本标记语言: HyperText Markup Language
  • HTML 不是一种编程语言,而是一种标记语言
  • 标记语言是一套标记标签 (markup tag)
  • HTML 使用标记标签来描述网页
  • HTML 文档包含了HTML 标签文本内容
  • HTML文档也叫做 web 页面

新建一个test.html文件,内容如下

其中:

  • <!DOCTYPE html> 声明为 HTML5 文档
  • <html> 元素是 HTML 页面的根元素
  • <head> 元素包含了文档的元(meta)数据,如 <meta charset=\”utf-8\”> 定义网页编码格式为 utf-8(由于在大部分浏览器中直接输出中文会出现乱码,所以要在头部将字符声明为UTF-8
  • <title> 元素描述了文档的标题
  • <body> 元素包含了可见的页面内容
  • <h1> 元素定义一个大标题
  • <p> 元素定义一个段落

保存后运行,即可在浏览器中打开如下界面

3.1 标题

HTML 标题(Heading)是通过<h1> – <h6> 标签来定义的.

3.2 段落

HTML 段落是通过标签 <p> 来定义的

3.3 链接

HTML 链接是通过标签 <a> 来定义的

3.4 图像

HTML 图像是通过标签 <img> 来定义的。注意: 图像的名称和尺寸是以属性的形式提供的。

3.5 表格

表格由 <table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。表格的表头使用 <th> 标签进行定义。如果不定义边框属性,表格将不显示边框。有时这很有用,但是大多数时候,我们希望显示边框。使用边框属性来显示一个带有边框的表格:

4.1 基本文档

4.2 基本标签

4.3 文本格式化

4.4 链接

4.5 图片

4.6 样式/区块

4.7 无序列表

4.8 有序列表

HTML基础知识

注释:<!– –>

DOCTYPE:就是告诉浏览器,我们要使用什么规范

head:网页头部标签

  • title:网页标题
  • meta:描述性标签,描述网站的信息,用来做SEO
    • charset = \”UTF-8\”
    • name = \”keyword\” content = \”\”关键词
    • name = \”descrisption\” content = \”\”描述

body:代表网页主题

标题标签

  • <h1>一级标签</h1>一直到6级标签

段落标签

  • <p>段落标签</p>

换行标签

  • <br/> /是闭合的意思,单标签,闭不闭合都行

水平线标签

  • <hr/>

字体样式标签

  • <strong>粗体</strong>
  • <em>斜体</em>

注释

  • <!– –>

特殊字符

  • 空格 —->一个空格
  • 大于号 >
  • 小于号<
  • 版权符号©

特殊符号就是 & xxx ;

<img src=\”path\” alt=\”文字\” title=\”text\” width=\”x\” heigth=\”y\” />

  • src 图像地址 必填
  • alt 图像的代替文字(找不到图片的时候显示) 必填
  • title 鼠标悬停提示文字
  • width 图像的宽度
  • height 图像的高度

注意:../ 代表上一级目录

文本链接

<a href=\”path\” target=\”目标窗口位置\”>链接文本或图像</a>

  • href 链接路径,要跳转带那个位置 必填
  • target链接在哪个窗口打开:常用值_self 当前窗口(默认的)、_blank 新窗口

图像链接:就是嵌套图片标签

页面间链接

  • 从一个页面链接到另一个页面

锚链接

  • 第一步需要一个标记 使用name做标记
  • 第二步跳转到标记 使用#标记
  • <a name=\”top\” ></a><a href=\”#top\”></a>上面是页面内的跳转<a name=\”down\”></a><a href=\”第一个页面的path#down\”></a>页面间的跳转

功能性链接

  • 邮件链接:mailto: <a href=\”mailto:邮箱\”></a>点击后会打开邮箱
  • qq链接:在qq推广工具里面的

块元素

  • 无论内容多少,该元素独占一行
  • p、h1-h6

行内元素

  • 内容撑开宽度、左右都是行内元素的可以排在一起
  • a、strong、em…

什么是列表:就是一种展示方式

有序列表

  • <ol> <li></li> </ol>

无序列表

  • <ul> <li></li> </ul>

自定义列表

为什么使用表格

  • 简单通用
  • 结构稳定

基本结构

  • 单元格
  • 跨行
  • 跨列

跨列:使用colspan=\”夸的列数\” <td colspan=\”4\”>

跨行:使用rowspan=\”夸的行数\” <td rowspan=\”4\”>

视频元素

  • video
  • <video src=\”path\” controls autoplay></video>
  • src:资源路径
  • controls控制条
  • autoplay自动播放

音频元素

  • audio
  • <audio src=\”\” controls autoplay></audio>

<iframe src=\”path\” name=\”mainFrame\”></iframe>

  • src必填
  • width
  • heigth
  • name标记
  • name的使用<iframe src=\”\” name=\”hello\” frameborder=\”0\” width=\”1000px\” heigth=\”800px\”></iframe><a href=\”path\” target=\”hello\”></a>点击超连接后,会在内联框架里显示这个页面

表单:form

  • method 规定如何发送表单数据常用psot、get
  • action 表示向何处发送表单数据,把表单的数据发送给那个地方

get方式提交:我们可以在url中看到我们提交的信息,不安全,但高效

post方式提交:比较安全,可以传输大文件

表单元素格式

单选框

  • input type=\”radio\”
  • value 单选框的值
  • name :表示组,name一样一次只能选一个,name不一样可以选多个
  • checked默认选中的

多选框

  • input type=\”checkbox\”
  • value = \”sleep\”
  • name = \”hooby\”
  • checked默认选中的
  • <input type=\”checkbox\” name=\”sleep\” value=\”slppe\” checked/>shujiao<input type=\”checkbox\” name=\”sleep\” value=\”slppe\”/>shujiao<input type=\”checkbox\” name=\”sleep\” value=\”slppe\”/>shujiao<input type=\”checkbox\” name=\”sleep\” value=\”slppe\”/>shujiao<input type=\”checkbox\” name=\”sleep\” value=\”slppe\”/>shujiao<input type=\”checkbox\” name=\”sleep\” value=\”slppe\”/>shujiao多选框的结果是以数组的形式返回的

按钮

下拉框

  • selected 默认选择

文本域

文件域

邮件验证

URL

数字验证

滑块

搜索

隐藏域 hidden

只读 readonly

禁用 disabled

增强鼠标可用性

为什么要进行表单验证:缓解服务器压力、保证数据安全

提示信息

  • placeholder=\”提示信息\” 在输入框上

非空判断

  • required

正则表达式验证

  • pattern
  • <input type=\”text\” name=\”mail\” pattern=\”正则表达式\”>

高级验证使用js

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。