Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meta标签详解 #4

Open
WisestCoder opened this issue Feb 28, 2018 · 0 comments
Open

Meta标签详解 #4

WisestCoder opened this issue Feb 28, 2018 · 0 comments

Comments

@WisestCoder
Copy link
Owner

WisestCoder commented Feb 28, 2018

有多少人使用meta标签,只是以下用法?

<meta charset="UTF-8">

但是打开任意的网站,其head标签内都有一列的meta标签。比如打开当前页面:

image

简介

定义

w3school官方解释:

The tag provides metadata about the HTML document. Metadata will not be displayed on the page, but will be machine parsable.

意思就是说 <meta> 元素可提供有关某个 HTML 元素的元信息 (Metadata)。

用处

Meta elements are typically used to specify page description, keywords, author of the document, last modified, and other metadata.
The metadata can be used by browsers (how to display content or reload page), search engines (keywords), or other web services

  • 标签提供了 HTML 文档的元数据。元数据不会显示在客户端,但是会被浏览器解析。

  • META元素通常用于指定网页的描述,关键词,文件的最后修改时间,作者及其他元数据。

  • 元数据可以被使用浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 Web 服务调用。

组成

meta标签共有五个属性,分别是http-equiv属性、name属性、content属性、charset属性和scheme属性。content属性常搭配name和http-equiv属性一起使用,scheme属性搭配content属性使用。

1. name属性

name属性主要用于描述网页,比如网页的关键词,叙述等。与之对应的属性值为content,content中的内容是对name填入类型的具体描述,便于搜索引擎抓取。

meta标签中name属性语法格式是:

<meta name="参数" content="具体的描述">

其中name属性共有以下几种参数。(A-C为常用属性)

A. keywords(关键字)
说明:用于告诉搜索引擎,你网页的关键字。

举例:

<meta name="keywords" content="github博客">

B. description(网站内容的描述)
说明:用于告诉搜索引擎,你网站的主要内容。

举例:

<meta name="description" content="Meta标签详解">

C. viewport(移动端的窗口)
说明:这个概念较为复杂,具体的会在下篇博文中讲述。这个属性常用于设计移动端网页。在用bootstrap,AmazeUI等框架时候都有用过viewport。

举例(常用范例):

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

D. robots(定义搜索引擎爬虫的索引方式)
说明:robots用来告诉爬虫哪些页面需要索引,哪些页面不需要索引。content的参数有all,none,index,noindex,follow,nofollow。默认是all。

举例:

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

具体参数如下:

  1. none : 搜索引擎将忽略此网页,等价于noindex,nofollow。
  2. noindex : 搜索引擎不索引此网页。
  3. nofollow: 搜索引擎不继续通过此网页的链接索引搜索其它的网页。
  4. all : 搜索引擎将索引此网页与继续通过此网页的链接索引,等价于index,follow。
  5. index : 搜索引擎索引此网页。
  6. follow : 搜索引擎继续通过此网页的链接索引搜索其它的网页。

E. author(作者)
说明:用于标注网页作者

举例:

<meta name="author" content="Lxxyx,841380530@qq.com">

F. generator(网页制作软件)
说明:用于标明网页是什么软件做的

举例: (不知道能不能这样写):

<meta name="generator" content="Sublime Text3">

G. copyright(版权)
说明:用于标注版权信息

举例:

<meta name="copyright" content="Lxxyx"> //代表该网站为Lxxyx个人版权所有。

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

举例:

<meta name="revisit-after" content="7 days" >

I. renderer(双核浏览器渲染方式)
说明:renderer是为双核浏览器准备的,用于指定双核浏览器默认以何种方式渲染页面。比如说360浏览器。

举例:

<meta name="renderer" content="webkit"> //默认webkit内核
<meta name="renderer" content="ie-comp"> //默认IE兼容模式
<meta name="renderer" content="ie-stand"> //默认IE标准模式

2. http-equiv属性

介绍之前,先说个小插曲。看文档和博客关于http-equiv的介绍时,有这么一句。

http-equiv顾名思义,相当于http的文件头作用。

http-equiv 属性提供了 content 属性的信息/值的 HTTP 头。

http-equiv 属性可用于模拟一个 HTTP 响应头。

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

<meta http-equiv="参数" content="具体的描述">

其中http-equiv属性主要有以下几种参数:

A. content-Type(设定网页字符集)(推荐使用HTML5的方式)
说明:用于设定网页字符集,便于浏览器解析与渲染页面

举例:

<meta http-equiv="content-Type" content="text/html;charset=utf-8">  //旧的HTML,不推荐
<meta charset="utf-8"> //HTML5设定网页字符集的方式,推荐使用UTF-8

B. X-UA-Compatible(浏览器采取何种版本渲染当前页面)
说明:用于告知浏览器以何种版本来渲染页面。(一般都设置为最新模式,在各大框架中这个设置也很常见。)

举例:

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

C. cache-control(指定请求和响应遵循的缓存机制)
用法1:
说明:指导浏览器如何缓存某个响应以及缓存多长时间。

举例:

<meta http-equiv="cache-control" content="no-cache">

共有以下几种用法:

  • no-cache: 先发送请求,与服务器确认该资源是否被更改,如果未被更改,则使用缓存。

  • no-store: 不允许缓存,每次都要去服务器上,下载完整的响应。(安全措施)

  • public : 缓存所有响应,但并非必须。因为max-age也可以做到相同效果

  • private : 只为单个用户缓存,因此不允许任何中继进行缓存。(比如说CDN就不允许缓存private的响应)

  • maxage : 表示当前请求开始,该响应在多久内能被缓存和重用,而不去服务器重新请求。例如:max-age=60表示响应可以再缓存和重用 60 秒。

用法2 (禁止百度自动转码):
说明:用于禁止当前页面在移动端浏览时,被百度自动转码。虽然百度的本意是好的,但是转码效果很多时候却不尽人意。所以可以在head中加入例子中的那句话,就可以避免百度自动转码了。

举例:

D. expires(网页到期时间) 说明:用于设定网页的到期时间,过期后网页必须到服务器上重新传输。 举例: ```html ```

E. refresh(自动刷新并指向某页面)
说明:网页将在设定的时间内,自动刷新并调向设定的网址。

举例:

<meta http-equiv="refresh" content="2;URL=http://www.lxxyx.win/"> //意思是2秒后跳转向我的博客

F. Set-Cookie(cookie设定)
说明:如果网页过期。那么这个网页存在本地的cookies也会被自动删除。

举例

<meta http-equiv="Set-Cookie" content="name, date"> //格式

<meta http-equiv="Set-Cookie" content="User=Lxxyx; path=/; expires=Sunday, 10-Jan-16 10:00:00 
GMT"> //具体范例

3. content属性

content 属性给出了与 http-equiv 或 name 属性相关的值。

4. charset属性

规定 HTML 文档的字符编码

在理论上,可以使用任何字符编码,但并不是所有浏览器都能够理解它们。某种字符编码使用的范围越广,浏览器就越有可能理解它。

5. scheme属性

scheme 属性规定用于翻译 content 属性的值的方案与格式。

举例:

<meta name="date" content="2009-01-02" scheme="YYYY-MM-DD">
<meta name="identifier" content="0-2345-6634-6" scheme="ISBN">

注意
HTML5 不支持 scheme 属性。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant