1.语义元素

  • article: 表示一篇任何形式的文章,类似新闻报道等独立的内容区块;
  • aside: 表示独立于页面主内容的一个完整的内容快。比如:附注栏;
  • figure: 表示一幅插画。其中<figcaption>元素标注图题,而< figure>元素标注<figcaption>和插入图片的<img>元素。目标是反映图片与图题之间是关联的;
  • footer: 表示页面底部的页脚。比如:版权声明,简单链接;
  • header: 表示增强型标题,可以包含 HTML 标题和其他内容;
  • nav: 表示页面中重要的一组链接;
  • section: 表示文档中一个区块或文档,是一个通用容器;
  • main: 表示页面主内容
  • time: 标注日期和时间
  • output: 标注 JavaScript 返回值
  • mark: 标注突显文本

2. 其他语义标准

  • ARIA (无障碍富因特网应用) 规定了在任意 HTML 元素上使用的属性,而通过这些属性可以为屏幕阅读器提供额外的信息。
  • RDFa(资源描述框架)一种使用属性向网页中嵌入详细信息的标准,是一个稳定不变的标准。(格式严格、笨重)
  • 微格式是一种在网页中嵌入元数据的简单而又比较合理的方式(比较松散)hCard、hCalendar。
  • 微数据是尝试解决语义标记问题的一种选择,拥有自己的属性。(itemprop、itemtype)
搜索引擎使用元数据

SEO 搜索引擎优化,可以让网站更容易被搜索引擎曝光。Rich Snippet 是谷歌推出的一个工具,能够将 RDFa 、微格式和微数据结合起来。使用结构化数据测试工具 https://search.google.com/structured-data/testing-tool/u/0/ 测试网址或代码块中的元数据。

防止谷歌对语义数据视而不见:

  • 语义数据不是主要内容,关联性要强;
  • 语义数据被隐藏,谷歌不会使用 css 隐藏的语义;
  • 网站中只包含很少的语义数据;

3.构建更好的 Web 表单

Web 表单是一组文本框、列表、按钮及其他可以点击的小控件,通过这些小控件可以收集网站的某些信息。

  • 通过占位符 placeholder 文本添加提示(水印)注意:并不是所有每个文本框都需要、也不要使用特殊字符。
  • 在 input、textare 使用焦点 autofoucs,作为正确的起点,方便填写表单。
  • 验证:阻止错误 (required) 两个地方需要验证,客户端验证是为了访客提供方便,数据填写完整性;服务端验证是确保数据正确性。
  • 关闭验证,要禁止整个表单的验证功能,可以在<form>元素中添加 novalidate 属性;而单个按钮则可以在 <input>中添加 formnavolidate 属性。
  • 验证样式挂钩,required(必填)和 optional(选填)、valid(有效)和 invalid (无效)、in-range(在范围内)和 out-of-range(超出范围)
  • 使用正则表达式,pattern
  • 自定义验证,oninput
  • 使用 Modernizr 检测浏览器对 Web 表单和验证的支持
  • 新的输入控件:email、url、search、telephone、number、range、date、tiem、color
  • 新元素:datalist(显示输入建议)、progress(进度条)、meter(计量条)、使用 command 和 menu 创建工具条和菜单。