对于一名前端工程师来说,meta标签是再熟悉不过了。初学前端时,写的最多的就是下面的这句了👨🏻‍💻:

<meta charset="UTF-8" />

但是大多数前端er对meta的认识基本上就止步于此了,不要小看它,小标签却能实现大功能。这篇文章就来带着大家一起重新认识下常常被我们忽略的 meta 标签吧💪

什么是meta

  • meta 是 html 语言 head 区的一个辅助性标签,位于文档的头部,不包含任何内容,其属性定义了与文档相关联的名称/值对。

  • meta 元素可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。

  • meta标签共有两个属性,它们分别是 http-equiv 属性和 name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。

几乎所有的网页里,我们可以看到类似下面这段的html代码:

<head>
  <meta http-equiv="content-Type" content="text/html; 
	charset=gb2312" />
</head>

也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,例如加入关键字会自动被大型搜索网站自动搜集;可以设定页面格式及刷新等等。

meta 中的 name 属性

name属性主要用于描述网页,与之对应的属性值为contentcontent中的内容主要是便于搜索引擎机器人查找信息和分类信息用的

  • meta 标签的 name 属性 语法格式 :
<meta name="参数" content="具体的参数值"/>

其中name属性主要有以下几种参数:

  • keywords(关键词)

keywords用来告诉搜索引擎你网页的关键字是什么。

<meta name ="keywords" content="收藏小佑前端 了解更多前端知识"/>
  • description(网站内容的描述)

description用来告诉搜索引擎你的网站主要内容。

viewport(移动端的窗口)

大多数前端工程师都会称之为视口,这个属性常用于设计移动端网页,可以让开发者来控制网页的大小和缩放

  • meta viewport 的 6 个属性:
    • width :设置 viewport 的宽度,默认视口宽度
    • height:设置 viewport 的高度
    • initial-scale:设置页面的初始缩放值
    • minimum-scale:允许用户的最小缩放值
    • maximum-scale:允许用户的最大缩放值
    • user-scalable:是否允许用户进行缩放,值为"no"或"yes", no 代表不允许,yes 代表允许
<meta name="viewport" content="width=device-width, initial-scale=1"/>
  • robots(定义搜索引擎爬虫的索引方式)

robots 用来告诉爬虫哪些页面需要索引,哪些页面不需要索引

<meta name="robots" content="none"/>

content 具体参数如下:

  • none: 搜索引擎将忽略此网页,等价于 noindex,nofollow。
  • noindex: 搜索引擎不索引此网页。
  • nofollow: 搜索引擎不继续通过此网页的链接索引搜索其它的网页。
  • all: 搜索引擎将索引此网页与继续通过此网页的链接索引,等价于 index,+ + follow。
  • index: 搜索引擎索引此网页。
  • follow: 搜索引擎继续通过此网页的链接索引搜索其它的网页。
  • author(作者)

用于标注网页作者

<meta name="author" content="前端开发爱好者.xy"/>
  • generator(网页制作软件)

用于标明网页是什么软件做的

<meta name="generator" content="Vscode"/>
  • copyright(版权)

用于标注版权信息

// 表示是 xy 个人版权
<meta name="copyright" content="xy"/>
  • revisit-after(搜索引擎爬虫重访时间)

如果页面不是经常更新,为了减轻搜索引擎爬虫对服务器带来的压力,可以设置一个爬虫的重访时间。如果重访时间过短,爬虫将按它们定义的默认时间来访问

<meta name="revisit-after" content="30 days" />

meta 中的 http-equiv 属性

http-equiv顾名思义,相当于 http 的文件头作用。
它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为contentcontent中的内容其实就是各个参数的变量值。

meta 标签的http-equiv属性语法格式是:

<meta http-equiv="参数" content="参数变量值"/>
  • 其中 http-equiv 属性主要有以下几种参数:
    content-Type(显示字符集的设定)
    用于设定网页字符集,便于浏览器解析与渲染页面
//旧的HTML,不推荐
<meta http-equiv="content-Type" content="text/html;charset=utf-8"/>
//HTML5设定网页字符集的方式,推荐使用UTF-8
<meta charset="utf-8"/>
  • Expires(期限)

用于设定网页的到期时间,过期后网页必须到服务器上重新传输。必须使用 GMT 的时间格式。

<meta http-equiv="expires" content="Sunday 26 October 2016 01:00 GMT" />
  • Pragma(cache 模式)

禁止浏览器从本地计算机的缓存中访问页面内容,这样设定,访问者将无法脱机浏览。

<meta http-equiv="Pragma" content="no-cache"/>
  • Refresh(刷新)

网页将在设定的时间内,自动刷新并调向设定的网址

// 2s 刷新跳转到百度
<meta http-equiv="refresh" content="2;URL=https://www.baidu.com/"/>
  • Set-Cookie(cookie 设定)

如果网页过期,那么这个网页存在本地的 cookies 也会被自动删除

<meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Friday,12-Jan-2001 18:18:18 GMT; path=/"/>
  • Window-target(显示窗口的设定)

强制页面在当前窗口以独立页面显示

<meta http-equiv="Window-target" content="_top"/>
  • content-Language(显示语言的设定)
<meta http-equiv="Content-Language" content="zh-cn" />
  • imagetoolbar(图片工具栏)

指定是否显示图片工具栏,当为 false 代表不显示,当为 true 代表显示。

<meta http-equiv="imagetoolbar" content="false" />

meta 动画效果

说到动画,大多数人肯定会想到css3动画以及使用 jscanvas 等实现动画,如果我告诉你,meta也可以实现动画效果,你信吗 ???

使用meta标签,我们还可以在进入网页或者离开网页的一刹那实现动画效果,我们只要在页面的 html 代码中的;标签之间添加如下代码就可以了:

<meta http-equiv="Page-Enter" content="revealTrans(duration=5.0,transition=20)"/>

一旦上述代码被加到一个网页中后,我们再进出页面时就会看到一些特殊效果,但我们要注意的是所加网页不能是一个Frame页

网页特效的http-equiv属性值,分别有Page-EnterPage-ExitSite-EnterSite-Exit四大类型,如以下代码所示:

<meta http-equiv="Page-Enter" content="进入时的过渡效果" />
<meta http-equiv="Page-Exit"  content="退出时的过渡效果" />
<meta http-equiv="Site-Enter" content="进入时的过渡效果" />
<meta http-equiv="Site-Exit"  content="退出时的过渡效果" />

content属性值:

  • blendTrans(Duration=秒数):如果用在进入页面时是淡入过渡效果;如果用在退出页面时是淡出过渡效果,但只能设置过渡持续时间,单位是秒
  • revealtrans(duration=过渡持续时间的秒数,transition=过渡效果的类型):duration:设置过渡持续时间(以秒为单位),transition 设置使用哪一类型的过渡效果,它有 24 种类型的过渡效果。
    24种过度效果:
  • transition 的取值是 0—23,数字从 0 开始到 23 结束,一种是 24 种过渡效果,每一个数字都对应一个过渡效果
    用法举例:
<meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0)" />

以上设置的是网页进入(Page-Enter)时的过渡效果,所以,就是淡入过渡效果进入网页。

<meta http-equiv="Page-Enter" content="revealtrans(duration=2,transition=0"/>

这段代码中transition=0,表示以矩形收缩的过渡效果进入网页,duration=2,则表示过渡持续时间为 2 秒钟;

再比如,如果使用矩形扩张过渡效果,则只需要设置transition=1即可,因为数字1表示的就是矩形扩张过渡效果,代码如下:

<meta http-equiv="Page-Enter" content="revealtrans(duration=2,transition=1"/>

还可以使用圆形收缩过渡效果,对应的数字是 2,代码如下:

<meta http-equiv="Page-Enter" content="revealtrans(duration=2,transition=2"/>

以此类推,想要设置什么过渡效果就设置相对应的数值即可。

Q.E.D.


学而不厌 不耻下问