HTML 中常用的 meta 元素

虽然之前我有整理过一次meta 标签,但是心中对于meta 标签还是一知半解,所以再次对meta 标签进行整理,并对上一次的文章进行修改。而这次整理主要是参考MDN 文档和Lxxyx 对于meta 标签的总结进行的。

概述

  • HTML <meta> 标签是用于表示元数据信息,它不会显示在用户所看到的页面上,这些信息被用于机器解析,这些机器可以是服务器、搜索引擎、网络爬虫等。
  • <meta> 标签是一个空元素,不需要闭合标签。
  • <meta> 标签在<head> 标签中一般处于顶部位置。

属性

  1. 全局属性

    所有的全局属性对<meta> 标签适用,只是全局属性name<meta> 标签中具有特殊的语义,这个后面会提到。

  2. charset 属性

    这个属性用于声明当前文档所使用的字符编码,一般写在<head> 标签里面的第一行,属性值推荐设置为UTF-8。

    注意:如果页面没有定义字符编码,某些交叉脚本技术会伤害到浏览网页的用户,比如UTF-7 fallback cross-scripting technique ,所以推荐使用这个属性定义文档的字符编码。

    <head>
      <meta charset="utf-8">
      <title>html</title>
    </head>
    
  3. content 属性

    这个属性是与http-equiv 或者 name 共同使用的,用于定义http-equivname 相关属性值的内容。

  4. http-equiv 属性

    个人理解,该属性的属性值相当于HTTP 消息头中的name-value 键值对中的name,而content 相当于name-value 键值对中的value,用于修改某些HTTP header 中的数据。该属性的全称为"http-equivalent"。

    • 语法格式:

        <meta http-equiv="属性值" content="http-equiv属性值的内容">
      
    • content-security-policy

      它允许网页作者定义当前页的内容策略 内容策略主要指定允许的服务器源和脚本端点,这有助于防止跨站点脚本攻击。

        <meta http-equiv="content-security-policy" content="default-src https:">
      
    • content-type

      该属性用于定义该文档的 MIME type 。因为这是一个HTML 标签,所以许多HTTP content-type 的值写在这里是无效的。而有效的语法是一个字符串"text/html 然后再跟一个;charset=IANAcharset" 。如下面的例子:

      <meta http-equiv="content-type" content="text/html;charset=utf-8">
      

      但是这个属性将要被废弃,用<meta charset="utf-8"> 代替它。

    • refresh

      • 定义多少秒后刷新页面,

          <meta http-equiv="refresh" content="5"> <!-- 5秒后刷新页面 -->
        
      • 定义多少秒后调转到另外一个页面

        <meta http-equiv="refresh" content="3;url=https://baidu.com"> 
        <!-- 3秒后跳转到百度页面,这个功能可以用于用户登录界面跳转 -->
        
    • X-UA-Compatible

      用于告知浏览器以何种版本来渲染页面。

          <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
          <!-- 指定IE和Chrome使用最新版本渲染当前页面 -->
      
    • expires

      该属性用于设置页面的到期时间,过期后网页必须到服务器上重新传输。

        <meta http-equiv="expires" content="Wed Jun 21 2017 15:23:50 GMT+0800"
      
    • set-cookie

      用于设置网页的cookie。想了解更多请点击这里

        <meta http-equiv="set-cookie" content="Michael=more%20than; expires=Wed, 21-Jun-2017 15:26:30 GMT; domain=.example.com; path=/; secure;httponly;">
        <!--
      1. Michael 是某一cookie 名,是必需的,如果没有cookie 值那么后面也是需要加等号和分号
      2. more%20than 是cookie 值,是可选的,其中%20 是空格的转义格式。
      3. expires 是到期时间,是可选的,格式:"expires=Wdy, DD-Mon-YYYY HH:MM:SS GMT;"
      4. domain 是可选的,用于设置能够读取这个cookie 的域名,至少要求有两个句点,比如.example.com 
      5. path 是可选的,用于设置读取这个cookie 的url path,如果设置了path,那么该路径以及该路径下的    所有文件和目录都可以读取这个cookie。
      6. secure; 用于加密链接。
      7. httponly; 表示cookie 仅在http 连接是被读取和传输,而非javascript。
      -->
      

      注意:这个属性将被废弃,HTTP header set-cookie 代替

  5. name 属性

    该属性用于定义文档级别元数据的名称,比如网页的作者、网页的描述、关键字等。如果同一个<meta> 标签中已经设置了 itemprop、http-equiv 或者 charset 其中一个属性,那么就不能再设置name 属性。

    • 语法格式

      <meta name="属性值" content="name的属性值的具体内容">
      
    • application-name

      用于定义运行在该网页上的应用名称

    • author

      用于定义该文档的作者

    • description

      用于描述该网站简短而有精确的摘要

      <meta name="description" content="这是一篇介绍HTML meta 标签的文章,文章分为概述和属性。">
      
    • keywords

      和该网站高度相关的关键字

    • generator

      可以是某软件的名称,该软件之前用于生成该网页

    • referrer

      document.referrer是用于获取前一个网页的URL 地址,那么如果从这个页面跳转到下一个页面,这个页面meta 标签中referrer 的值,会影响到下一个页面获取得到前一个页面URL 的地址。

      <meta name="referrer" content="no-referrer">
      <!--
      no-referrer: 下一个页面获取得到的 referrer 为空字符``
      origin: referrer 为文档源地址
      no-referrer-when-downgrade: 当(https→https)时发送源地址,当(https→http)发送空字符串
      origin-when-crossorigin:当下一个页面是同源网址,那么它的 referrer 就是网址地址
                             (但是会删去参数,比如锚点和查询字符串);
                             如果下一个网址是不同源的,那么它的 获取得到前一个网页的 URL 为文档源地址。
      unsafe-URL: 下一个页面获取的referrer 是full URL
      -->
      
    • creator

      用于定义这个文档的创造者,可以是组织或者机构。如果多于一个,那么就要使用多个meta 标签

    • robots

      用于定义爬虫以怎样的方式检索本页面,用逗号分隔属性值

      <meta name="robots" content="index,nofollow">
      <!-- 
      index: 默认值,让搜索引擎检索到本页面
      nodindex: 不让搜索引擎检索到本页面
      follow: 默认值,让搜索引擎可以检索本页面上链接
      nofollow: 不让搜索引擎检索本页面上链接的页面
      none: 相当于 noindex,nofollow
      all: 相当于 index,follow
      -->
      
    • viewport

      这个相当常用,用于响应式页面和移动端页面设计。

      <meta name="viewport" content="initial-scale=1.0,user-scalable=no,width=device-width,maxmum-scale=1.0,minmum-scale=1.0">
      <!--
      width: 如果是数值,那么视口的宽度等于单位像素乘以数值;如果是`device-width`,那么视口的宽度适应设备屏幕的宽度。
      initial-scale:0.0 ~ 10.0,是设备的宽度和视口的大小的比例
      maxmum-scale: 0.0 ~ 10.0, 定义网页放大的最大比例,要大于或等于 minmum-scale
      minmum-scale: 0.0 ~ 10.0, 用于定义网页缩小的级别,要小于或等于 maxmum-scale
      user-scalable: yes or no, 用于定义用户是否能够放大或缩小页面
      -->
      

总结

在HTML 中我们首先可以用meta 标签用于定义网页的字符编码,然后可以用http-equiv 属性设置HTTP Header 中的一些数据,还可以用name 属性设置搜索引擎检索结果显示的内容以及检索行为。meta 标签能够实现的功能还是挺多的,当然这也导致了知识点比较杂,要一下子记住这么多的点也比较难,所以写这篇博客就是让自己对meta 标签的功能有一个初步的印象,不管什么时候忘记了也好查询。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 作者:彭志明日期:2017年4月29日 本文主要针对常用的meta元素的http-equiv,content属性值...
    pz明阅读 1,128评论 0 0
  • 1.meta的意义: 在HTML文档中,meta元素可放置在head标签内用于定义整个文档层面的元数据信息。使用m...
    马建阳阅读 842评论 0 2
  • 标签提供了 HTML 文档的元数据。元数据不会显示在客户端,但是会被浏览器解析。META元素通常用于指定网页的描述...
    shadow123阅读 521评论 0 0
  • meta 是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与<...
    __HAPPINESS_yh阅读 1,030评论 1 1
  • 初看这个标题很容易理解错误,这里的meta元素不仅仅指的是 ,而是指元信息(meta information),即...
    chiang24阅读 742评论 0 1