Html

HTML Mind Map

简介

H5 带来了哪些改进?

新增了一些语义化标签如 main;删除了一些纯表现元素如 center;新增了 API 如拖拽、音视频、Canvas、Local Storage、Web Worker 等。

语义化标签有哪些?

常见的语义化标签:

  • header:标题栏,字面意义,包含了页面标题、作者信息、编辑日期等内容
  • nav:导航栏,通常包含一组列表组织的链接
  • main:页面内容主体,每个文档最好只包括一个 main 标签
  • aside:侧栏,用来存放和上下文中主要内容不是很密切相关的栏目,如广告栏、搜索、说明性文字等
  • footer:页脚,通常包含版权信息、来源、友情链接等内容

如何理解语义化标签?

一是方便搜索引擎或读屏器解析页面,二是方面使开发人员维护,其实,遵守 HTML5 规范是应该做的。

为什么要增强页面的可访问性?

增强页面的可访问目的是使网页能够被更多的人使用,包括残障人士的读屏器、处理性能底下、带宽低的设备等。

标签明细

http-equiv 有什么用?

是一个 HTML 中的程序指令,可以用来定义 CSP、Content-Type、Refresh 等 HTTP 头部。

<meta http-equiv="refresh" content="0; url=https://www.lionad.art">

见:http-equiv

src 和 href 的区别?

src 即 Source,指使用外部对象替换当前元素;href 即 Hypertext Reference,指元素与外部的链接关系。

见:Difference between SRC and HREF,这是一个 12 年前的问题,至今为止被浏览了 14w 次。

defer VS async

defer 和 async 都是并行下载,defer 延迟执行,async 下载完执行。

bare script VS defer script VS async script

strong、em、b、i 有什么不同?

  • strong 表示本段文本在文中语义上十分重要,如精彩观点
  • em 可以理解为平时交谈时的语音着重
  • b 仅仅意味着样式加粗,没有语义,可用于长文本中的产品名称加粗
  • i 标签,一般用来表示外来词汇、英文书名或词语定义

VuePress 会把 Markdown 文件中两个星号(**)中的内容,用 strong 包裹住。

label 是什么?

label 用来表示 input 的标题,并且提供了一些体验优化,比方说点击 Input Checkbox 的 label 时,相当于点击 Checkbox。

<label for="Name">Number:</label>
<input type="text" name="Name" id="Name"/>

见 MDN 的 示例

使用 iframe 需要注意什么?

iframe 会和父页面共享 TCP 并发上限,也会阻塞父页面的 onload 事件。可以等页面加载完再动态设置 src 属性,就可以规避以上问题。

H5

离线储存(manifest)

看起来很有用的东西,工程上用不到,但是面试会问,很奇怪。

manifest 机制的硬伤在于它是根据规则强制缓存的,只有用户手动清除缓存或者改变 manifest 文件本身,缓存的内容才有机会改变。后者意味着这是建立在文件名对比机制上的缓存机制,所以不可靠。

其次,尽管大多数浏览器支持 manifest,但它其实是一个废弃了的东西,见 MDN manifest

为什么 .appcache 没有得到大规模应用?它有哪些硬伤吗?

Web Worker

  • Worker 可以降低主线程的计算压力,不会导致 UI 卡顿。
  • SharedWorker 是在同域下共享数据的一个解决方案。
  • ServiceWorker 可以缓存资源,提供离线服务。

更多


Copyright © 2024 Lionad - CC-BY-NC-CD-4.0