src 与 href 的区别
- src 表示外部资源的来源,这个资源会嵌入当前元素;href 表示超文本引用,只是在当前文档和外部资源建立关联,需要时才获取
- src 主要用于 img、script、iframe 标签;href 主要用于 a、link
- src 会阻塞文档解析,直至资源下载并执行;href 不会
HTML 语义化
语义也就是代码的含义,代表这个 HTML 元素有什么用,扮演什么角色
好处:
- SEO友好
- 屏幕阅读器使用它帮助视力障碍人群
- 代码可读性
常见的语义元素:
nav、article、侧边栏元素aside、header、footer、main、section、摘要展现元素summary(一般被包裹于details,只能作直接子节点,提供概要)、详细信息展现元素details(带小三角,可以自定义旋钮) 等
defer 和 async 区别
- defer 在 HTML 全部解析完毕后,按脚本出现顺序执行;async 下载完毕后立即执行,执行时机不确定
- 它们下载是异步的,async 执行的时候可能会中断页面渲染,defer 没有这个问题
- defer 适合执行相互依赖或需要 DOM 的脚本;async 适合独立的脚本,比如广告、第三方分析脚本
行内元素和块级元素
- 行内元素不会独占一行,宽度随内容变化,不能设置宽高,但可以用padding、margin,通常只能容纳文本和行内元素,常见的有:span、a、strong、em、img(行内块)等
- 块级元素会独占一行,宽度自动占满父元素,可设置宽高,容纳其他块和行内元素,常见的有:div、p、h1、ul、li等
此外还有行内块,兼备块级和行内元素的特点
canvas 和 svg 区别
- svg 基于矢量,无损缩放,依赖 DOM,图形元素作为 DOM 的一部分,可以被独立操作,常用于图标、地图等
- canvas 基于像素,放大失真,绘制的图形不作为 DOM 元素存在,而是被渲染为像素,不支持直接给图形绑事件,适合高性能渲染大量动态图形的场景,如游戏和数据可视化
SEO 优化
HTML5 新特性
- 语义化标签
- 更多种类的 input
- 新增表单元素和属性
- 拖放 API
- 地理定位
- web worker、webStorage、websocket