meta 标签大全
Posted 最骚的就是你
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了meta 标签大全相关的知识,希望对你有一定的参考价值。
相信在html5之前,很少人会关注html页面上head里标签元素的定义和应用场景,可能记得住的只有"title"、"keyword"和"description"这些meta在逐渐了解使用html新标准后,特别是移动页面的开发普及,可以看到html中这一块内容越来越重要为大家所认识,初次见到这些标签基本是摸不着头脑,今天就来梳理这些标签的定义(以html5标准展开);
先来一个页面概括,head标签不分排序先后:
<!DOCTYPE html> <html> <head>
<meta charset="UTF-8">
<title>Title</title>
<meta content="keyword" name="keywords">
<meta content="description" name="description">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta name="author" content="author,email address">
<meta name="robots" content="index,follow">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="format-detection" content="telephone=no,email=no" />
<link rel="apple-touch-icon-precomposed" href="/apple-touch-icon.png" />
<meta name="HandheldFriendly" content="true">
<meta name="screen-orientation" content="portrait">
<meat name="x5-orientation" content="portrait">
<meta name="full-screen" content="yes">
<meta name="x5-fullscreen" content="true">
<meta name="browsermode" content="application">
<meta name="x5-page-mode" content="app">
<meta name="msapplication-tap-highlight" content="no">
<link rel="icon" type="image/ico" href="/favicon.ico" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml" />
......
</heda> <bady> some content </bady> </html>
最近收集有这些head标签,其实另外还有许多,要么是没想起来,要么是我也不知道具体什么含义==,不过一般网页上也就这么多,很多网站是去自定义一些内容的,如这样的:
额,这些就不去理会吧,采用合适的标签,达到预设的目的就行了,个人感觉这里还是不要放很多吧,毕竟这些设定需要浏览器去解析执行的,还是会消耗点资源的;下面就逐个展开一下;
<meta charset="UTF-8">:设定网页字符编码,常用的有utf-8和gb2312;
<title>Title</title>:页面title,不解释;
<meta content="keyword" name="keywords">:keyword关键词,以逗号区分开,不解释;
<meta content="description" name="description">:description描述不解释;
<meta name="renderer" content="webkit">:优先使用chrome内核渲染页面;
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">:优先使用最新版ie和chrome浏览器;
<meta http-equiv="Cache-Control" content="no-siteapp" />:通过手机百毒打开网页时,百毒可能会对你的网页进行转码,只展现页面内容,头底部会被替换并且一般会加点广告==尿性不改;
<meta name="author" content="author,email address">:定义页面作者,这个很少见人用貌似,当然也有很多人不认识,之前一个项目交付给老板后他看到这段不认识说我们在他们网站放木马==论多读书多识字的重要性;
<meta name="robots" content="index,follow">:定义网页搜索引擎索引方式,robotterms 是一组使用英文逗号「,」分割的值,通常有如下几种取值:none,noindex,nofollow,all,index和follow;
<meta name="viewport" content="width=device-width, initial-scale=1.0">:这个应用的就比较多了,为移动设备设定,viewport也可作为宽度单位,一些参数设定,width viewport 宽度(数值/device-width),height viewport 高度(数值/device-height),initial-scale 初始缩放比例,user-scalable 是否允许用户缩放(yes/no),一般移动网页上都是设定设备宽度,默认不可缩放的;
<meta name="apple-mobile-web-app-capable" content="yes" />:有个apple,没错,这是苹果设备转用的,这个是是否启用 WebApp 全屏模式;苹果的设备可以说单成一家,有很多特定的设置,有兴趣的小伙伴可以到官方文档说明查看详细,来戳传送门
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />:设置状态栏的背景颜色,只有在 "apple-mobile-web-app-capable" content="yes" 时生效;
<meta name="format-detection" content="telephone=no,email=no" />:不自动识别页面中的 电话和邮箱,就是点击数字或邮箱样的字符不会做其他操作;
<link rel="apple-touch-icon-precomposed" href="/apple-touch-icon.png" />:又是大苹果,没错这个是设置ios图标的,并且可以设置多个尺寸的,苹果可以设定启动页面,有兴趣继续戳官网文档;
<meta name="HandheldFriendly" content="true">:恩,如果你单词量多一些,可以看出来这个是什么意思,友好优化手持设备,貌似是针对不认识viewport的设备(苹果都成街机了,谁闲的没事用塞班看网页?),反正我没用过,所以可以认为没什么卵用;
<meta name="screen-orientation" content="portrait">:uc强制竖屏;
<meta name="x5-orientation" content="portrait">:QQ强制竖屏;
<meta name="full-screen" content="yes">:UC强制全屏;
<meta name="x5-fullscreen" content="true">:QQ强制全屏
<meta name="browsermode" content="application">:UC应用模式
<meta name="x5-page-mode" content="app">:QQ应用模式;
<link rel="icon" type="image/ico" href="/favicon.ico" />:网页ico图标设置;
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml" />:rss订阅;
......
看一下内容还是不少的,而且很多是为移动端设定的,pc端相对简洁了很多,果然多设备多浏览器的维护成本就是高啊,所以在许多讨论场景中我一直反对pc和移动设备使用一个页面,也就是适应所有设备的页面==,虽然有些前端框架是支持这个的,感觉还没有分开设计方便省力;ok今天先写到这里吧,查漏补缺,有新的发现继续更;
HTML的头部内容特别多,有针对SEO的头部信息,也有针对移动设备的头部信息。而且各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,有很多差异性。移动端的工作已经越来越成为前端工作的重要内容,除了平常的项目开发,HTML 头部标签功能,特别是meta,link等标签的功能属性显得非常重要。这里整理了一份 <head>
部分的清单,让大家了解每个标签及相应属性的意义,写出满足自己需求的 <head>
头部标签,可以很有效的增强页面的可用性。
注:去年整理过移动前端不得不了解的html5 head 头标签,随着时间和浏览器厂商的升级,现在看起来似乎有些过时了。所以重新整理了一下。增加了新的内容,及过时的一些提示,同时增加了部分桌面端浏览器的一些说明。
HTML基本的头部标签
下面是HTML基本的头部元素:
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <!--移动端的页面这个可以忽略,具体可以查看本文Internet Explorer浏览器部分-->
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <!--具体可以查看本文 为移动设备添加 viewport 部分-->
- <!-- 以上 3 个 meta 标签 *必须* 放在 head 的最前面;其他任何的 head 内容必须在这些标签的 *后面* -->
- <title>页面标题</title>
- ...
- </head>
其中
- <meta http-equiv="x-ua-compatible" content="ie=edge">
在桌面开发的时候可以让IE浏览器以最新的模式渲染页面,具体可以查看本文Internet Explorer浏览器部分。
如果你的页面确定只在桌面浏览器中运行,那么
- <meta name="viewport" content="width=device-width, initial-scale=1">
也可以省略。
DOCTYPE
DOCTYPE(Document Type),该声明位于文档中最前面的位置,处于 html
标签之前,此标签告知浏览器文档使用哪种 HTML 或者 XHTML 规范。
使用 HTML5 doctype,不区分大小写。
- <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 -->
charset
声明文档使用的字符编码,
- <meta charset="utf-8">
html5 之前网页中会这样写:
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
这两个是等效的,具体可移步阅读:<meta charset=\'utf-8\'>
vs <meta http-equiv=\'Content-Type\'>
,所以建议使用较短的,易于记忆。
lang属性
更加标准的 lang 属性写法 http://zhi.hu/XyIa
简体中文
- <html lang="zh-cmn-Hans"> <!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa -->
繁体中文
- <html lang="zh-cmn-Hant"> <!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa -->
很少情况才需要加地区代码,通常是为了强调不同地区汉语使用差异,例如:
- <p lang="zh-cmn-Hans">
- <strong lang="zh-cmn-Hans-CN">菠萝</strong>和<strong lang="zh-cmn-Hant-TW">鳳梨</strong>其实是同一种水果。只是大陆和台湾称谓不同,且新加坡、马来西亚一带的称谓也是不同的,称之为<strong lang="zh-cmn-Hans-SG">黄梨</strong>。
- </p>
为什么 lang="zh-cmn-Hans"
而不是我们通常写的 lang="zh-CN"
呢,请移步阅读: 页头部的声明应该是用 lang=”zh” 还是 lang=”zh-cn”。
Meta 标签
meta标签是HTML中head头部的一个辅助性标签,它位于HTML文档头部的 <head>
和 <title>
标记之间,它提供用户不可见的信息。虽然这部分信息用户不可见,但是其作用非常强大,特别是当今的前端开发工作中,设置合适的meta标签可以大大提升网站页面的可用性。
桌面端开发中,meta标签通常用来为搜索引擎优化(SEO)及 robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以根据你定义的时间间隔刷新自己,以及设置RASC内容等级,等等。
移动端开发中,meta标签除了桌面端中的功能设置外,还包括,比如viewport设置,添加到主屏幕图标,标签页颜色等等实用设置。具体可以看后面详细的介绍。
meta标签分类
meta标签根据属性的不同,可分为两大部分:http-equiv 和 name 属性。
http-equiv:相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助浏览器正确地显示网页内容。
name属性:主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于浏览器,搜索引擎等机器人识别,等等。
推荐使用的meta标签
- <!-- 设置文档的字符编码 -->
- <meta charset="utf-8">
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <!-- 以上 3 个 meta 标签 *必须* 放在 head 的最前面;其他任何的 head 内容必须在这些标签的 *后面* -->
- <!-- 允许控制资源的过度加载 -->
- <meta http-equiv="Content-Security-Policy" content="default-src \'self\'">
- <!-- 尽早地放置在文档中 -->
- <!-- 仅应用于该标签下的内容 -->
- <!-- Web 应用的名称(仅当网站被用作为一个应用时才使用)-->
- <meta name="application-name" content="应用名称">
- <!-- 针对页面的简短描述(限制 150 字符)-->
- <!-- 在*某些*情况下,该描述是被用作搜索结果展示片段的一部分 -->
- <meta name="description" content="一个页面描述">
- <!-- 控制搜索引擎的抓取和索引行为 -->
- <meta name="robots" content="index,follow,noodp"><!-- 所有的搜索引擎 -->
- <meta name="googlebot" content="index,follow"><!-- 仅对 Google 有效 -->
- <!-- 告诉 Google 不显示网站链接的搜索框 -->
- <meta name="google" content="nositelinkssearchbox">
- <!-- 告诉 Google 不提供此页面的翻译 -->
- <meta name="google" content="notranslate">
- <!-- 验证 Google 搜索控制台的所有权 -->
- <meta name="google-site-verification" content="verification_token">
- <!-- 用来命名软件或用于构建网页(如 - WordPress、Dreamweaver)-->
- <meta name="generator" content="program">
- <!-- 关于你的网站主题的简短描述 -->
- <meta name="subject" content="你的网站主题">
- <!-- 非常简短(少于 10 个字)的描述。主要用于学术论文。-->
- <meta name="abstract" content="">
- <!-- 完整的域名或网址 -->
- <meta name="url" content="https://example.com/">
- <meta name="directory" content="submission">
- <!-- 基于网站内容给出一般的年龄分级 -->
- <meta name="rating" content="General">
- <!-- 允许控制 referrer 信息如何传递 -->
- <meta name="referrer" content="never">
- <!-- 禁用自动检测和格式化可能的电话号码 -->
- <meta name="format-detection" content="telephone=no">
- <!-- 通过设置为 “off” 完全退出 DNS 预取 -->
- <meta http-equiv="x-dns-prefetch-control" content="off">
- <!-- 在客户端存储 cookie,web 浏览器的客户端识别 -->
- <meta http-equiv="set-cookie" content="name=value; expires=date; path=url">
- <!-- 指定要显示在一个特定框架中的页面 -->
- <meta http-equiv="Window-Target" content="_value">
- <!-- 地理标签 -->
- <meta name="ICBM" content="latitude, longitude">
- <meta name="geo.position" content="latitude;longitude">
- <!-- 国家代码 (ISO 3166-1): 强制性, 州代码 (ISO 3166-2): 可选; 如 content="US" / content="US-NY" -->
- <meta name="geo.region" content="country[-state]">
- <!-- 如 content="New York City" -->
- <meta name="geo.placename" content="city/town">
相关的详细说明请查看:
为移动设备添加 viewport
viewport
可以让布局在移动浏览器上显示的更好。 通常会写
- <meta name ="viewport" content ="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no"> <!-- `width=device-width` 会导致 iPhone 5 添加到主屏后以 WebApp 全屏模式打开页面时出现黑边 http://bigc.at/ios-webapp-viewport-meta.orz -->
width=device-width
会导致 iPhone 5 添加到主屏后以 WebApp 全屏模式打开页面时出现黑边(http://bigc.at/ios-webapp-viewport-meta.orz)
content 参数:
- width viewport 宽度(数值/device-width)
- height viewport 高度(数值/device-height)
- initial-scale 初始缩放比例
- maximum-scale 最大缩放比例
- minimum-scale 最小缩放比例
- user-scalable 是否允许用户缩放(yes/no)
- minimal-ui iOS 7.1 beta 2 中新增属性(注意:iOS8 中已经删除),可以在页面加载时最小化上下状态栏。这是一个布尔值,可以直接这样写:
- <meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui">
而如果你的网站不是响应式的,请不要使用 initial-scale 或者禁用缩放。
- <meta name="viewport" content="width=device-width,user-scalable=yes">
相关链接:非响应式设计的viewport
适配 iPhone 6 和 iPhone 6plus 则需要写:
- <meta name="viewport" content="width=375">
- <meta name="viewport" content="width=414">
大部分 4.7~5 寸的安卓设备的 viewport 宽设为 360px,iPhone 6 上却是 375px,大部分 5.5 寸安卓机器(比如说三星 Note)的 viewport 宽为 400,iPhone 6 plus 上是 414px。
SEO 优化部分
- 页面标题
<title>
标签(head 头部必须)- <title>your title</title>
- 页面关键词 keywords
- <meta name="keywords" content="your keywords">
- 页面描述内容 description
- <meta name="description" content="your description">
- 定义网页作者 author
- <meta name="author" content="author,email address">
- 定义网页搜索引擎索引方式,robotterms 是一组使用英文逗号「,」分割的值,通常有如下几种取值:none,noindex,nofollow,all,index和follow。
- <meta name="robots" content="index,follow">
相关链接:WEB1038 – 标记包含无效的值
百度禁止转码
通过百度手机打开网页时,百度可能会对你的网页进行转码,脱下你的衣服,往你的身上贴狗皮膏药的广告,为此可在 head 内添加
- <meta http-equiv="Cache-Control" content="no-siteapp" />
相关链接:SiteApp 转码声明
不推荐的 meta 属性
下面是不推荐使用的 meta 属性,因为它们采用率低,或已弃用:
- <!-- 用于声明文档语言,但支持得不是很好。最好使用 <html lang=""> -->
- <meta name="language" content="en">
- <!-- Google 无视 & Bing 认为垃圾的指示器 -->
- <meta name="keywords" content="你,关键字,在这里,不使用空格,而用逗号进行分隔">
- <!-- 目前没有在任何搜索引擎中使用过的声明 -->
- <meta name="revised" content="Sunday, July 18th, 2010, 5:15 pm">
- <!-- 为垃圾邮件机器人收获 email 地址提供了一种简单的方式 -->
- <meta name="reply-to" content="email@example.com">
- <!-- 最好使用 <link rel="author"> 或 humans.txt 文件 -->
- <meta name="author" content="name, email@example.com">
- <meta name="designer" content="">
- <meta name="owner" content="">
- <!-- 告诉搜索机器人一段时间后重新访问该网页。这不支持,因为大多数搜索引擎使用随机时间间隔来重新抓取网页 -->
- <meta name="revisit-after" content="7 days">
- <!-- 在一段时间后将用户重定向到新的 URL -->
- <!-- W3C 建议不要使用该标签。Google 建议使用服务器端的 301 重定向。-->
- <meta http-equiv="refresh" content="300; url=https://example.com/">
- <!-- 描述网站的主题 -->
- <meta name="topic" content="">
- <!-- 公司概要或网站目的 -->
- <meta name="summary" content="">
- <!-- 一个已废弃的标签,和关键词 meta 标签的作用相同 -->
- <meta name="classification" content="business">
- <!-- 是否是相同的 URL,年代久远且不支持 -->
- <meta name="identifier-URL" content="https://example.com/">
- <!-- 和关键词标签类似的功能 -->
- <meta name="category" content="">
- <!-- 确保你的网站在所有国家和语言中都能显示 -->
- <meta name="coverage" content="Worldwide">
- <!-- 和 coverage 标签相同 -->
- <meta name="distribution" content="Global">
- <!-- 控制在互联网上哪些用户可以访问 -->
- <meta http-equiv="Pics-label" content="value">
- <!-- 缓存控制 -->
- <!-- 最好在服务器端配置缓存控制 -->
- <meta http-equiv="Expires" content="0">
- <meta http-equiv="Pragma" content="no-cache">
- <meta http-equiv="Cache-Control" content="no-cache">
link 标签
说到 link 标签,估计大家的第一反应和我一样,就是引入外部CSS样式文件的,不错,这是 link 标签最最常用的功能。不过它还有很多别的用处,比如这是浏览器 favicon 图标,touch图标等等。
- <!-- 有助于防止出现内容重复的问题 -->
- <link rel="canonical" href="https://example.com/2010/06/9-things-to-do-before-entering-social-media.html">
- <!-- 之前用于包含 icon 链接,但已被废弃并不再使用 -->
- <link rel="shortlink" href="https://example.com/?p=42">
- <!-- 链接到当前文档的一个 AMP HTML 版本 -->
- <link rel="amphtml" href="https://example.com/path/to/amp-version.html">
- <!-- 表明一个 CSS 样式表 -->
- <link rel="stylesheet" href="https://example.com/styles.css">
- <!-- 链接到一个指定 Web 应用程序“安装”证书的 JSON 文件 -->
- <link rel="manifest" href="manifest.json">
- <!-- 链接到文档的作者 -->
- <link rel="author" href="humans.txt">
- <!-- 指向一个适用于链接内容的版权申明 -->
- <link rel="copyright" href="copyright.html">
- <!-- 给出可能的你的另一种语言的文档位置参考 -->
- <link rel="alternate" href="https://es.example.com/" hreflang="es">
- <!-- 提供了关于作者或其他人的信息 -->
- <link rel="me" href="https://google.com/profiles/thenextweb" type="text/html">
- <link rel="me" href="mailto:name@example.com">
- <link rel="me" href="sms:+15035550125">
- <!-- 链接到一个文档,包含当前文档的一个归档链接 -->
- <link rel="archives" href="https://example.com/2003/05/" title="May 2003">
- <!-- 链接到层次结构中的顶级资源 -->
- <link rel="index" href="https://example.com/" title="DeWitt Clinton">
- <!-- 给出该文档的起点 -->
- <link rel="start" href="https://example.com/photos/pattern_recognition_1_about/" title="Pattern Recognition 1">
- <!-- 引导当前文档的前述资源序列 -->
- <link rel="prev" href="https://example.com/opensearch/opensearch-and-openid-a-sure-way-to-get-my-attention/" title="OpenSearch and OpenID? A sure way to get my attention.">
- <!-- 给出一个自我参考 - 当文档有多个可能的参考时非常有用 -->
- <link rel="self" type="application/atom+xml" href="https://example.com/atomFeed.php?page=3">
- <!-- 分别是在一系列文件中的第一个、下一个、上一个和最后一个 -->
- <link rel="first" href="https://example.com/atomFeed.php">
- <link rel="next" href="https://example.com/atomFeed.php?page=4">
- <link rel="previous" href="https://example.com/atomFeed.php?page=2">
- <link rel="last" href="https://example.com/atomFeed.php?page=147">
- <!-- 当使用第三方服务来维护 blog 时使用 -->
- <link rel="EditURI" href="https://example.com/xmlrpc.php?rsd" type="application/rsd+xml" title="RSD">
- <!-- 当另一个 WordPress 博客链接到你的 WordPress 博客或文章时形成一个自动化的评论 -->
- <link rel="pingback" href="https://example.com/xmlrpc.php">
- <!-- 当你在自己的页面上链接到一个 url 时通知它 -->
- <link rel="webmention" href="https://example.com/webmention">
- <!-- 加载一个外部的 HTML 文件到当前 HTML 文件中 -->
- <link rel="import" href="component.html">
- <!-- 打开搜索 -->
- <link rel="search" href="/open-search.xml" type="application/opensearchdescription+xml" title="Search Title">
- <!-- Feeds -->
- <link rel="alternate" href="https://feeds.feedburner.com/example" type="application/rss+xml" title="RSS">
- <link rel="alternate" href="https://example.com/feed.atom" type="application/atom+xml" title="Atom 0.3">
- <!-- 预取,预载,预浏览 -->
- <link rel="dns-prefetch" href="//example.com/">
- <link rel="preconnect" href="https://www.example.com/">
- <link rel="prefetch" href="https://www.example.com/">
- <link rel="prerender" href="https://example.com/">
- <link rel="preload" href="image.png" as="image">
- <!-- 更多信息:https://css-tricks.com/prefetching-preloading-prebrowsing/ -->
具体说明查看:https://css-tricks.com/prefetching-preloading-prebrowsing/
rss订阅
- <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml" /> <!-- 添加 RSS 订阅 -->
不推荐的link标签
以下是不推荐使用的链接关系:
- <link rel="shortcut icon" href="path/to/favicon.ico">
- <!-- 没有用的, 专有的和错误的, 详见 https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/Y_2eFRh9BOs/gULYapoRBwAJ -->
- <link rel="subresource" href="styles.css">
以上是关于meta 标签大全的主要内容,如果未能解决你的问题,请参考以下文章
WebApp 里Meta标签大全,webappmeta标签大全