HTML元信息标签

HTML元信息标签

Posted by SkioFox on October 18, 2017

所谓元信息,是指描述自身的信息,元信息类标签,就是HTML用于描述文档自身的一类标签,它们通常出现在head标签中,一般都不会在页面被显示出来

  1. head标签

head标签本身并不携带任何信息,它主要是作为盛放其它语义类标签的容器使用。head标签规定了自身必须是html标签中的第一个标签,它的内容必须包含一个title,并且最多只能包含一个base。如果文档作为iframe,或者有其他方式指定了文档标题时,可以允许不包含title标签。

  1. title标签(页面标题)
  2. meta标签

    meta标签是一组键值对,它是一种通用的元信息表示标签。在head中可以出现任意多个meta标签。一般的meta标签由name和content两个属性来定义。name表示元信息的名,content则用于表示元信息的值。

    • 具有charset属性的meta 从HTML5开始,为了简化写法,meta标签新增了charset属性。添加了charset属性的meta标签无需再有name和content。charset型meta标签非常关键,它描述了HTML文档自身的编码形式,一般放在headd标签的第一个。 <meta charset="UTF-8" >
    • 具有http-equiv属性的meta 具有http-equiv属性的meta标签,表示执行一个命令,这样的meta标签可以不需要name属性了。
         // 相当于添加了content-type这个http头,并且指定了http编码方式。
         <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    

    除了content-type,还有以下几种命令:

    • content-language 指定内容的语言;
    • default-style 指定默认样式表;
    • refresh 刷新;
    • set-cookie 模拟http头set-cookie,设置cookie;
    • x-ua-compatible 模拟http头x-ua-compatible,声明ua兼容性;
    • content-security-policy 模拟http头content-security-policy,声明内容安全策略。 - name为viewport的meta

      实际上,meta标签可以被自由定义,只要写入和读取的双方约定好name和content的格式就可以了。我们来介绍一个meta类型,它没有在HTML标准中定义,却是移动端开发的事实标准:它就是name为viewport的meta。这类meta的name属性为viewport,它的content是一个复杂结构,是用逗号分隔的键值对,键值对的格式是key=value。

         <meta name="viewport" content="width=500, initial-scale=1">
    

    移动端标准meta

         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
    
       - 其它预定义的meta
    

    在HTML标准中,还定义了一批meta标签的name,可以视为一种有约定的meta

    • application-name:如果页面是Web application,用这个标签表示应用名称。
    • author: 页面作者。
    • description:页面描述,这个属性可能被用于搜索引擎或者其它场合。
    • generator: 生成页面所使用的工具,主要用于可视化编辑器,如果是手写HTML的网页,不需要加这个meta。
    • keywords: 页面关键字,对于SEO场景非常关键。
    • referrer: 跳转策略,是一种安全考量。
    • theme-color: 页面风格颜色,实际并不会影响页面,但是浏览器可能据此调整页面之外的UI(如窗口边框或者tab的颜色)
         <!-- 示例如下 -->
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
         <!-- 默认使用最新浏览器 -->
         <meta http-equiv="Cache-Control" content="no-siteapp">
         <!-- 不被网页(加速)转码 -->
         <meta name="robots" content="index,follow">
         <!-- 搜索引擎抓取 -->
         <meta name="renderer" content="webkit">
         <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
         <meta name="apple-mobile-web-app-capable" content="yes">
         <!-- 删除苹果默认的工具栏和菜单栏 -->
         <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
         <!-- 设置苹果工具栏颜色 -->