沐游虞笔记
  • 前端面试题

    • HTML面试题汇总(无答案)
    • HTML面试题汇总
    • CSS 面试题汇总(无答案)
    • CSS 面试题汇总
    • javascript 面试题汇总(无答案)
    • javascript 面试题汇总
    • promise 面试题(无答案)
    • promise 面试题
    • 浏览器面试题汇总(无答案)
    • 浏览器面试题汇总
    • 网络面试题汇总(无答案)
    • 网络面试题汇总
    • 工程化面试题汇总(无答案)
    • 工程化面试题汇总
    • VUE面试题汇总(无答案)
    • VUE面试题汇总
  • 直播课文件

    • 静态页面学习指导
    • 属性的计算过程
    • 层叠继承规则总结
    • BFC
    • JS基础知识回顾
    • DOM 事件的传播机制
    • DOM 事件的注册和移除
    • 阻止事件默认行为
    • 基础领航考试题
    • 基础领航考试题(答案)
    • 2024前端发展
    • JS核心概念学习指导
    • 第三方库与工程化学习指导
    • Vue入门学习指导
    • vue进阶学习指导
    • 前端性能优化
  • 笔面试环节知识讲解

    • 目录
    • 图像处理
    • 图像处理(面试)
    • Webpack构建优化
    • Webpack构建优化(面试)
    • TTS性能优化
    • TTS性能优化(面试)
    • 实时协作
    • 实时协作(面试)
    • 网页复制图片到剪贴板
    • 网页复制图片到剪贴板(面试)
    • vite插件
    • vite插件(面试)
    • 表单数据同步与保持
    • 表单数据同步与保持(面试)
    • 优化虚拟列表
    • 优化虚拟列表(面试)
    • 微前端解决巨石应用
    • 微前端解决巨石应用(面试)
    • DNS解析与优化
    • DNS解析与优化(面试)
    • 前端监控
    • 前端监控(面试)
    • 12.跨标签页通信
    • 12.跨标签页通信(面试)
    • 13.Vite相关优化
    • 13.Vite相关优化(面试)
    • 14.计时器节流问题
    • 14.计时器节流问题(面试)
    • 15.多文件预览支持
    • 15.多文件预览支持(面试)
    • 16.defer优化白屏时间
    • 16.defer优化白屏时间(面试)
  • Vue3整体变化
  • Vue2响应式回顾
  • Vue3响应式变化
  • nextTick实现原理
  • 两道代码题
  • Vue运行机制
  • 渲染器核心功能
  • 事件绑定与更新
  • computed面试题
  • watch面试题
  • 图解双端diff
  • 图解快速dff
  • 最长递增子序列
  • 模板编译器
  • 模板编译提升
  • 组件name作用
  • 路由传参方式
  • 基础篇

    • 序章React介绍
    • JSX基础语法
    • React基本介绍
    • 表单
    • 生命周期
    • 组件与事件绑定
    • 组件状态与数据传递
    • Hooks
    • React--redux介绍
    • React-router介绍
  • 就业篇

    • 属性默认值和类型验证
    • 高阶组件
    • Ref
    • Context
    • Render Props
    • Portals
    • 错误边界
    • 组件渲染性能优化
    • 前端框架的理解
    • Reacti和Vue描述页面的区别
    • 前端框架的分类
    • 虚拟DoM
    • React整体架构
    • React渲染流程
    • Fiber双缓冲
    • MessageChannel
    • Scheduleri调度普通任务
    • Scheduleri调度延时任务
    • 最小堆
    • React中的位运算
    • beginWork工作流程
    • completeWork工作流程
    • 图解diff算法
    • commit工作流程
    • lane模型
    • React中的事件
    • Hooks原理
    • useStateuseReducer.
    • effect相关hook
    • useCallbackuseMemo
    • useRef
    • Update
    • 性能优化策略之eagerState
    • 性能优化策略之bailout
    • bailoutContextAPl
    • 性能优化对日常开发启示
  • 前端监控概述
  • 错误监控
  • 数据上报
  • 页面性能监控
  • 用户行为收集与埋点
  • CSS3手册
  • HTML5手册
  • JavaScript语言提升

    • es补充
    • 事件循环
    • promise基础
    • Promise的链式调用
    • Promise的静态方法
    • async和await
    • Promise相关面试题
  • 网络

    • 客户端与服务器
    • 关于 Apifox 的使用
  • git文档
  • 工程化

    • CommonJS
    • ES module
    • npm文档(包管理)
    • Lass笔记
    • webpack工具
  • canvas详解
  • uinapp笔记
  • 自动化测试
  • oauth2令牌

    • 认识Oauth2
    • 三方应用实现github授权
    • 微信三方应用登录实现
    • 支付宝沙箱支付功能
  • 前端面试题

    • HTML面试题汇总(无答案)
    • HTML面试题汇总
    • CSS 面试题汇总(无答案)
    • CSS 面试题汇总
    • javascript 面试题汇总(无答案)
    • javascript 面试题汇总
    • promise 面试题(无答案)
    • promise 面试题
    • 浏览器面试题汇总(无答案)
    • 浏览器面试题汇总
    • 网络面试题汇总(无答案)
    • 网络面试题汇总
    • 工程化面试题汇总(无答案)
    • 工程化面试题汇总
    • VUE面试题汇总(无答案)
    • VUE面试题汇总
  • 直播课文件

    • 静态页面学习指导
    • 属性的计算过程
    • 层叠继承规则总结
    • BFC
    • JS基础知识回顾
    • DOM 事件的传播机制
    • DOM 事件的注册和移除
    • 阻止事件默认行为
    • 基础领航考试题
    • 基础领航考试题(答案)
    • 2024前端发展
    • JS核心概念学习指导
    • 第三方库与工程化学习指导
    • Vue入门学习指导
    • vue进阶学习指导
    • 前端性能优化
  • 笔面试环节知识讲解

    • 目录
    • 图像处理
    • 图像处理(面试)
    • Webpack构建优化
    • Webpack构建优化(面试)
    • TTS性能优化
    • TTS性能优化(面试)
    • 实时协作
    • 实时协作(面试)
    • 网页复制图片到剪贴板
    • 网页复制图片到剪贴板(面试)
    • vite插件
    • vite插件(面试)
    • 表单数据同步与保持
    • 表单数据同步与保持(面试)
    • 优化虚拟列表
    • 优化虚拟列表(面试)
    • 微前端解决巨石应用
    • 微前端解决巨石应用(面试)
    • DNS解析与优化
    • DNS解析与优化(面试)
    • 前端监控
    • 前端监控(面试)
    • 12.跨标签页通信
    • 12.跨标签页通信(面试)
    • 13.Vite相关优化
    • 13.Vite相关优化(面试)
    • 14.计时器节流问题
    • 14.计时器节流问题(面试)
    • 15.多文件预览支持
    • 15.多文件预览支持(面试)
    • 16.defer优化白屏时间
    • 16.defer优化白屏时间(面试)
  • Vue3整体变化
  • Vue2响应式回顾
  • Vue3响应式变化
  • nextTick实现原理
  • 两道代码题
  • Vue运行机制
  • 渲染器核心功能
  • 事件绑定与更新
  • computed面试题
  • watch面试题
  • 图解双端diff
  • 图解快速dff
  • 最长递增子序列
  • 模板编译器
  • 模板编译提升
  • 组件name作用
  • 路由传参方式
  • 基础篇

    • 序章React介绍
    • JSX基础语法
    • React基本介绍
    • 表单
    • 生命周期
    • 组件与事件绑定
    • 组件状态与数据传递
    • Hooks
    • React--redux介绍
    • React-router介绍
  • 就业篇

    • 属性默认值和类型验证
    • 高阶组件
    • Ref
    • Context
    • Render Props
    • Portals
    • 错误边界
    • 组件渲染性能优化
    • 前端框架的理解
    • Reacti和Vue描述页面的区别
    • 前端框架的分类
    • 虚拟DoM
    • React整体架构
    • React渲染流程
    • Fiber双缓冲
    • MessageChannel
    • Scheduleri调度普通任务
    • Scheduleri调度延时任务
    • 最小堆
    • React中的位运算
    • beginWork工作流程
    • completeWork工作流程
    • 图解diff算法
    • commit工作流程
    • lane模型
    • React中的事件
    • Hooks原理
    • useStateuseReducer.
    • effect相关hook
    • useCallbackuseMemo
    • useRef
    • Update
    • 性能优化策略之eagerState
    • 性能优化策略之bailout
    • bailoutContextAPl
    • 性能优化对日常开发启示
  • 前端监控概述
  • 错误监控
  • 数据上报
  • 页面性能监控
  • 用户行为收集与埋点
  • CSS3手册
  • HTML5手册
  • JavaScript语言提升

    • es补充
    • 事件循环
    • promise基础
    • Promise的链式调用
    • Promise的静态方法
    • async和await
    • Promise相关面试题
  • 网络

    • 客户端与服务器
    • 关于 Apifox 的使用
  • git文档
  • 工程化

    • CommonJS
    • ES module
    • npm文档(包管理)
    • Lass笔记
    • webpack工具
  • canvas详解
  • uinapp笔记
  • 自动化测试
  • oauth2令牌

    • 认识Oauth2
    • 三方应用实现github授权
    • 微信三方应用登录实现
    • 支付宝沙箱支付功能
  • HTML+CSS语言提升

    • CSS3视觉

      • CSS3手册
    • HTML5文档

      • HTML5手册
        • 元素语义化
        • 新增元素
          • 多媒体
          • 文章结构
        • 新增属性
          • 自定义数据属性
          • input的新增属性
          • web api
        • 使用css选择器选中元素
        • 控制类样式
        • 本地存储
        • 渲染帧
        • 音视频API
  • JavaScript语言提升

    • 零碎的改动

      • ES语言提升
    • 数组

    • 事件循环

      • 课件
    • Promise基础

      • 笔记
    • Promise的链式调用

      • 笔记
    • Promise的静态方法

      • 笔记
    • async和await

      • 笔记
    • Promise相关面试题

      • 笔记
  • 网络

    • 基本概念-客户端和服务器

      • 网络课件
    • 关于 Apifox 的使用

      • 关于 Apifox 的使用
  • git

    • git基本概念

      • git文档
    • git分支

  • 工程化

    • CommonJS

      • 课堂笔记
    • ES Module

      • 模块化手册
    • 包管理器

      • npm文档
    • Less

      • 课堂笔记
    • 构建工具的使用

      • 课堂笔记
    • 分页电影列表案例

  • 技术应用
  • HTML+CSS语言提升
  • HTML5文档
luzhichang
2023-10-23
目录

HTML5手册

image-20210518112556986

HTML5包含两个部分的更新,分别是文档和web api

# 文档

HTML5元素表 (opens new window)

# 元素语义化

元素语义化是指每个HTML元素都代表着某种含义,在开发中应该根据元素含义选择元素

元素语义化的好处:

  1. 利于SEO(搜索引擎优化)
  2. 利于无障碍访问
  3. 利于浏览器的插件分析网页

# 新增元素

# 多媒体

可以使用audio元素表达一个音频

可以使用video元素表达一个视频

它们均具有以下属性

属性名 含义 类型
src 多媒体的文件路径 普通属性
controls 是否显示播放控件 布尔属性
autoplay 是否自动播放 布尔属性
loop 是否循环播放 布尔属性
muted 静音播放 布尔属性

新版浏览器不允许「带声音的自动播放」,可能将来甚至不允许自动播放

浏览器希望播放行为由用户决定

# 文章结构

为了让搜索引擎和浏览器更好的理解文档内容,HTML5新增了多个元素来表达内容的含义。

下面的示例中,使用了HTML5的新增元素来表达一篇文章

<!-- article:一篇文章 -->
<article>
  <!-- header:文章头部信息 -->
  <header>
    <h1>文章标题</h1>
    <!-- blockquote:引用信息 -->
    <blockquote>此文章引用的文献:xxxx</blockquote>
  </header>
  <!-- aside: 文章的其他附加信息 -->
  <aside>
    <span>作者:xxxx</span>
    <span>发布日期:xxx</span>
    <span>浏览量:xxx</span>
  </aside>
  <!-- section:章节 -->
  <section>
    <h2>章节1</h2>
    <p>段落1</p>
    <p>段落2</p>
    <p>段落3</p>
    <p>段落4</p>
  </section>
  <!-- section:章节 -->
  <section>
    <h2>章节2</h2>
    <p>段落1</p>
    <p>段落2</p>
    <p>段落3</p>
    <p>段落4</p>
  </section>
  <!-- section:章节 -->
  <section>
    <h2>章节3</h2>
    <p>段落1</p>
    <p>段落2</p>
    <p>段落3</p>
    <p>段落4</p>
  </section>
  <!-- 页脚 -->
  <footer>
    <p>参考资料</p>
    <!-- cite表示外部站点的引用 -->
    <cite>xxxxxxx</cite>
    <cite>xxxxxxx</cite>
    <cite>xxxxxxx</cite>
    <cite>xxxxxxx</cite>
    <cite>xxxxxxx</cite>
    <cite>xxxxxxx</cite>
  </footer>
</article>

# 新增属性

# 自定义数据属性

image-20210518123117393

# input的新增属性

MDN input详细文档 (opens new window)

进入下面的地址查看各种属性及其效果

http://mdrs.yuanjin.tech/html/html-manual/input-property.html

# web api

# 使用css选择器选中元素

// 使用css选择器选中匹配的第一个元素
document.querySelector('css选择器');
// 使用css选择器选中匹配的所有元素,返回伪数组
document.querySelectorAll('css选择器');

# 控制类样式

// 添加类样式
dom.classList.add('a');  // <div class="a"></div>
dom.classList.add('b');  // <div class="a b"></div>
dom.classList.add('c');  // <div class="a b c"></div>

// 是否包含某个类样式
dom.classList.contains('a');  // true 

// 移除类样式
dom.classList.remove('a');  // <div class="b c"></div>

// 切换类样式
dom.classList.toggle('a'); // <div class="a b c"></div>
dom.classList.toggle('a'); // <div class="b c"></div>
dom.classList.toggle('a'); // <div class="a b c"></div>

# 本地存储

localStorage,永久保存到本地

sessionStorage,临时保存到本地,关闭浏览器后消失

// 保存一个键值对到本地,值必须是字符串
localStorage.setItem('key', 'value');
// 根据键,读取本地保存的值
localStorage.getItem('key');
// 清除所有保存的内容
localStorage.clear();
// 根据键,清除指定的内容
localStorage.removeItem('key');

// 保存一个键值对到本地,值必须是字符串
sessionStorage.setItem('key', 'value');
// 根据键,读取本地保存的值
sessionStorage.getItem('key');
// 清除所有保存的内容
sessionStorage.clear();
// 根据键,清除指定的内容
sessionStorage.removeItem('key');

无论是localStorage还是sessionStorage,它们都只能保存字符串,如果需要保存对象或数组,可以先将对象和数组转换为JSON字符串再进行保存

JSON.stringify(obj); // 将对象或数组转换为JSON搁置
JSON.parse(jsonString); // 将JSON格式的字符串转换为对象或数组

# 渲染帧

浏览器会不断的对网页进行渲染,通常情况下的速度为每秒渲染60次,每一次渲染称之为一帧,因此又可以说:浏览器的渲染速率是60帧

但这不是一定的,它会受到各种因素的影响,因此,帧率往往会有浮动

浮动的帧率就导致一个问题,我们在使用setInterval等计时器实现某些动画效果时,如何才能保证每一帧只执行一次动画效果呢?

image-20210518133821647

为了解决该问题,HTML5新增APIrequestAnimationFrame,用于在每一帧渲染之前做某些事

requestAnimationFrame(function(){
  // 传入一个回调函数,该函数在下一帧渲染之前自动运行
  // 通常,可以利用该回调函数,在下一帧渲染前改动元素的状态
})

raq的回调函数仅执行一次,因此,要实现连贯的动画,通常使用下面的代码结构

// 该函数负责在下一帧渲染前,执行一次元素状态变化
function changeOnce(){
  requestAnimationFrame(function(){
    if(动画是否应该停止){
      return;
    }
    改变元素状态
    changeOnce(); // 改变完成后,继续注册下一针的变化
  })
}
changeOnce();

# 音视频API

MDN详细文档 (opens new window)

针对video和audio元素,HTML5新增了音视频的API,让开发者可以使用JS控制它们

音视频属性

属性名 含义
currentTime 当前播放时间,单位为秒。为其赋值将会使媒体跳到一个新的时间。
loop 对应HTML标签loop属性,决定该媒体是否循环播放.
controls 对应HTML标签controls属性,控制是否显示用户播放界面的控制 HTML
src 对应HTML标签src属性,获取和设置播放地址
volume 表示音频的音量。值从0.0(静音)到1.0(最大音量)。
playbackRate 播放倍速。1为正常。
duration 总时长,单位为秒。
paused 当前是否是暂停状态
muted 是否静音

音视频方法

方法名 含义
play() 开始播放
pause() 暂停播放

事件

事件名 含义
pause 暂停时触发
ended 结束时触发
play 开始播放时触发
timeupdate 属性currentTime变化时触发。会随着播放进度的变化不断触发
loadeddata 事件在第一帧数据加载完成后触发
CSS3手册
ES语言提升

← CSS3手册 ES语言提升→

Theme by Vdoing | Copyright © 2021-2024 蜀ICP备2024068710号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式