HTML 复习

47 阅读2分钟

src 与 href 的区别

  1. src 表示外部资源的来源,这个资源会嵌入当前元素;href 表示超文本引用,只是在当前文档和外部资源建立关联,需要时才获取
  2. src 主要用于 img、script、iframe 标签;href 主要用于 a、link
  3. src 会阻塞文档解析,直至资源下载并执行;href 不会

HTML 语义化

语义也就是代码的含义,代表这个 HTML 元素有什么用,扮演什么角色

好处:

  • SEO友好
  • 屏幕阅读器使用它帮助视力障碍人群
  • 代码可读性

常见的语义元素:

nav、article、侧边栏元素aside、header、footer、main、section、摘要展现元素summary(一般被包裹于details,只能作直接子节点,提供概要)、详细信息展现元素details(带小三角,可以自定义旋钮) 等

defer 和 async 区别

  1. defer 在 HTML 全部解析完毕后,按脚本出现顺序执行;async 下载完毕后立即执行,执行时机不确定
  2. 它们下载是异步的,async 执行的时候可能会中断页面渲染,defer 没有这个问题
  3. defer 适合执行相互依赖或需要 DOM 的脚本;async 适合独立的脚本,比如广告、第三方分析脚本

行内元素和块级元素

  1. 行内元素不会独占一行,宽度随内容变化,不能设置宽高,但可以用padding、margin,通常只能容纳文本和行内元素,常见的有:span、a、strong、em、img(行内块)等
  2. 块级元素会独占一行,宽度自动占满父元素,可设置宽高,容纳其他块和行内元素,常见的有:div、p、h1、ul、li等

此外还有行内块,兼备块级和行内元素的特点

canvas 和 svg 区别

  1. svg 基于矢量,无损缩放,依赖 DOM,图形元素作为 DOM 的一部分,可以被独立操作,常用于图标、地图等
  2. canvas 基于像素,放大失真,绘制的图形不作为 DOM 元素存在,而是被渲染为像素,不支持直接给图形绑事件,适合高性能渲染大量动态图形的场景,如游戏和数据可视化

SEO 优化

HTML5 新特性

  1. 语义化标签
  2. 更多种类的 input
  3. 新增表单元素和属性
  4. 拖放 API
  5. 地理定位
  6. web worker、webStorage、websocket