作为前端,你必须要知道的meta标签知识

前言

前几天面试baidu的时候,面试官问:你都知道什么meta标签?用处是什么?尽可能多的说出来。我:嗯…… 嗯…… 我一般都自动生成… 面试官:……

后来俺找资料好好学了下,再看了taobao和头条的网页才知道:meta标签用处可大得很呐!今天就来浅浅总结一下。

顺便感叹一下字节这块适配做的是真的蛮好

概览

meta标签一般放在整个html页面的head部分,在MDN中对他这样定义:

meta是文档级元数据元素,用来表示那些不能由其它 HTML 元相关元素(<base><link>, <script><style><title>)之一表示的任何元数据。

是不是感觉看起来很抽象?说白了就是为了传达信息。

先看看meta 元素定义的元数据的类型:

  • 如果设置了 name属性,meta 元素提供的是文档级别的元数据,应用于整个页面。

  • 如果设置了 http-equiv属性,meta 元素则是编译指令,提供的信息与类似命名的 HTTP 头部相同。

  • 如果设置了 charset属性,meta 元素是一个字符集声明,告诉文档使用哪种字符编码。

  • 如果设置了 itemprop 属性,meta 元素提供用户定义的元数据。

name属性

namecontent一起使用,前者表示要表示的元数据的名称,后者是元数据的

author

用来表示网页的作者的名字,例如某个组织或者机构。

<meta name="author" content="aaa@mail.abc.com">
复制代码

description

是一段简短而精确的、对页面内容的描述。以头条和taobao的description标签为例:

86cad4f289af6b1bc5efec0de4be1f7e.png 60bd7b09e9bed188515a112b6ed8aaa1.png

keywords

与页面内容相关的关键词,使用逗号分隔。某些搜索引擎在遇到这些关键字时,会用这些关键字对文档进行分类。还是以头条和taobao为例

ef62606581ce79f2273c56e2980472e4.png 948bbf641740c4e3f62d5d1bf3d69a6e.png

viewpoint

为 viewport(视口)的初始大小提供指示。目前仅用于移动设备。

可能你也发现了,我们在vscode中自动生成html的代码片段时,会自动生成:

<meta name="viewport" content="width=device-width, initial-scale=1.0">
复制代码

width用来设置 viewport 的宽度为设备宽度;

initial-scale为设备宽度与 viewport 大小之间的缩放比例。

247bfd6f5ab577087a281d4525ce6c11.png

robots

表示爬虫对此页面的处理行为,或者说,应当遵守的规则,是用来做搜索引擎抓取的。

它的content可以为:

  1. all:搜索引擎将索引此网页,并继续通过此网页的链接索引文件将被检索

  2. none:搜索引擎讲忽略此网页

  3. index:搜索引擎索引此网页

  4. follow:搜索引擎继续通过此网页的链接索引搜索其它的网页

renderer

用来指定双核浏览器的渲染方式,比如360浏览器,我们可以通过这个设置来指定360浏览器的渲染方式

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

http-equiv

http-equiv也是和content一起使用,前者表示要表示的元数据的名称,后者是元数据的

http-equiv 所有允许的值都是特定 HTTP 头部的名称,

X-UA-Compatible

我们最常见的http-equiv值可能就是X-UA-Compatible了,它常常长这个样子:

384eb5f7c23351996e7254d525065b79.png

它是用来是做IE浏览器适配的。

IE=edge告诉浏览器,以当前浏览器支持的最新版本来渲染,IE9就以IE9版本来渲染。

chrome=1告诉浏览器,如果当前IE浏览器安装了Google Chrome Frame插件,就以chrome内核来渲染页面。

像上图这种两者都存在的情况:如果有chrome插件,就以chrome内核渲染,如果没有,就以当前浏览器支持的最高版本渲染。

另外,这个属性支持的范围是IE8-IE11

你可能注意到了,如果在我们的http头部中也设置了这个属性,并且和meta中设置的有冲突,那么哪一个优先呢?答案是:开发者偏好(meta元素)优先于Web服务器设置(HTTP头)。

content-type

用来声明文档类型和字符集

b282fbbbd663e8b4a24083d64993469c.png

x-dns-prefetch-control

一般来说,HTML页面中的a标签会自动启用DNS提前解析来提升网站性能,但是在使用https协议的网站中失效了,我们可以设置:

4bda4b977864d3536acf2066daa94bec.png

来打开dns对a标签的提前解析

cache-control、Pragma、Expires

和缓存相关的设置,但是遗憾的是这些往往不生效,我们一般都通过http headers来设置缓存策略

总结

常用了就是这些啦~实际使用时还有很多新的需要学习,这就需要俺们平时多看看其他网站是怎么设置meta的~ 一起加油叭

关于本文

作者:花椰菜菜

https://juejin.cn/post/7089271039842058253

最后

欢迎关注【前端瓶子君】✿✿ヽ(°▽°)ノ✿

回复「算法」,加入前端编程源码算法群!领取最新最热的前端算法小书、面试小书以及海量简历模板,期待与你共进步!

回复「交流」,吹吹水、聊聊技术、吐吐槽!

回复「阅读」,每日刷刷高质量好文!

如果这篇文章对你有帮助,「在看」是最大的支持

 》》面试官也在看的算法资料《《

“在看和转发”就是最大的支持

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值