【每日一题】说说你对HTML里的meta元素的理解

前端印记

共 7870字,需浏览 16分钟

 ·

2021-10-01 11:39

人生苦短,总需要一点仪式感。比如学前端~

目录:

  • 元数据

  • meta 元素

    • meta 元素包含四大属性:

  • 用途

    • name 指定名/值对定义的元数据

    • charset声明字符编码

    • http-equiv模拟 http 标头字段

  • 常用的 meta 属性


元数据

元数据(metadata):用来构建 HTML 文档的基本结构以及向浏览器提供“如何处理文档”的信息和指示,它们本身不是文档内容,但提供了关于后面文档内容的信息,如 titlebasemeta等都是元数据元素。

meta 元素

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

meta 元素可以定义文档的各种元数据,提供各种文档信息,通俗点就是可以理解为提供了关于网站的各种信息。html 文档中可以包含多个 meta 元素,每个 meta 元素只能用作一种用途,如果想定义多个文档信息,则需要在 head 标签中添加多个 meta 元素。

meta 元素包含四大属性:

charsetcontenthttp-equivname

charset:

该属性声明了页面的字符编码。
常用的值:UTF-8(Unicode字符编码)、ISO-8859-1(拉丁字母表的字符编码)。

content:

这个属性通常配合namehttp-equiv使用,能够给这两个属性提供一个值。

http-equiv:

这个属性可以用做http头部的某些作用,通过定义该属性可以改变服务器和用户代理的行为。

name:

用于定义页面的元数据。他不能与http-equivcharset共存。通常是content配合使用。

用途

meta 元素除了 charset 属性外,都是 http-equiv 属性或 name 属性结合 content 来使用。

name 指定名/值对定义的元数据

<meta name="参数" content="具体描述信息" /> 

name 属性与 content 属性结合使用。
name 用来表示元素数据类型,表示当前 meta 标签的具体作用;content 属性用来提供值。

示例代码:

<head>
  <title>示例</title>
  <meta
    name="keywords"
    content="描述网站内容的关键词,以逗号隔开,用于SEO搜索"
  />

  <meta name="application name" content="当前页所属Web应用系统的名称" />
  <meta name="description" content="当前页的说明" />
  <meta name="author" content="当前页的作者名" />
  <meta name="copyright" content="版权信息" />
  <meta
    name="renderer"
    content="renderer是为双核浏览器准备的,用于指定双核浏览器默认以何种方式渲染页面"
  />

  <meta
    name="viewreport"
    content="它提供有关视口初始大小的提示,仅供移动设备使用"
  />

</head>

charset声明字符编码

charset 属性作为 HTML5 新增的属性,用于声明字符编码,有两种写法:

<!-- HTML5 推荐方式 -->
<meta charset="utf-8" />
<!-- 旧的HTML -->
<meta http-equiv="content-Type" content="text/html;charset=utf-8" />

理论上,可以使用任何字符编码,但是并不是所有浏览器都能够理解它们。

http-equiv模拟 http 标头字段

http-equiv 属性与 content 属性结合使用,http-equiv 属性为指定所要模拟的标头字段的名称,content 属性用来提供值。

<meta http-equiv="参数" content="具体的描述" />
<!-- content-Type 声明网页字符编码 -->
<meta http-equiv="content-Type" content="text/html charset=UTF-8" />
<!-- refresh 指定一个时间间隔(以秒为单位),在此时间过去之后从服务器重新载入当前页面,也可以另外指定一个页面. -->
<!-- 2秒后在当前页跳转到百度 -->
<meta http-equiv="refresh" content="2;URL=http://www.baidu.com" />
<!-- X-UA-Compatible 浏览器采取何种版本渲染当前页面 -->
<!-- 指定IE和Chrome使用最新版本渲染当前页面 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- catch-control 用于指定所有缓存机制在整个请求/响应链中必须服从的指令 -->
<meta http-equiv="cache-control" content="no-cache" />

常用的 meta 属性

<!-- 声明文档使用的字符编码 -->
  <meta charset='utf-8'>
  <!-- 优先使用 IE 最新版本和 Chrome -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
  <!-- 页面描述 -->
  <meta name="description" content="不超过150个字符"/>
  <!-- 页面关键词 -->
  <meta name="keywords" content=""/>
  <!-- 网页作者 -->
  <meta name="author" content="name, email@gmail.com"/>
  <!-- 搜索引擎抓取 -->
  <meta name="robots" content="index,follow"/>
  <!-- 为移动设备添加 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 -->

  <!-- iOS 设备 begin -->
  <meta name="apple-mobile-web-app-title" content="标题">
  <!-- 添加到主屏后的标题(iOS 6 新增) -->
  <meta name="apple-mobile-web-app-capable" content="yes"/>
  <!-- 是否启用 WebApp 全屏模式,删除苹果默认的工具栏和菜单栏 -->

  <meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
  <!-- 添加智能 App 广告条 Smart App Banner(iOS 6+ Safari) -->
  <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
  <!-- 设置苹果工具栏颜色 -->
  <meta name="format-detection" content="telphone=no, email=no"/>
  <!-- 忽略页面中的数字识别为电话,忽略email识别 -->
  <!-- 启用360浏览器的极速模式(webkit) -->
  <meta name="renderer" content="webkit">
  <!-- 避免IE使用兼容模式 -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <!-- 不让百度转码 -->
  <meta http-equiv="Cache-Control" content="no-siteapp" />
  <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
  <meta name="HandheldFriendly" content="true">
  <!-- 微软的老式浏览器 -->
  <meta name="MobileOptimized" content="320">
  <!-- uc强制竖屏 -->
  <meta name="screen-orientation" content="portrait">
  <!-- QQ强制竖屏 -->
  <meta name="x5-orientation" content="portrait">
  <!-- UC强制全屏 -->
  <meta name="full-screen" content="yes">
  <!-- QQ强制全屏 -->
  <meta name="x5-fullscreen" content="true">
  <!-- UC应用模式 -->
  <meta name="browsermode" content="application">
  <!-- QQ应用模式 -->
  <meta name="x5-page-mode" content="app">
  <!-- windows phone 点击无高光 -->
  <meta name="msapplication-tap-highlight" content="no">
    <!-- iOS 设备 end -->
  <meta name="msapplication-TileColor" content="#000"/>
  <!-- Windows 8 磁贴颜色 -->
  <meta name="msapplication-TileImage" content="icon.png"/>
  <!-- Windows 8 磁贴图标 -->

  <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml"/>
  <!-- 添加 RSS 订阅 -->
  <link rel="shortcut icon" type="image/ico" href="/favicon.ico"/>
  <!-- 添加 favicon icon -->

  <!-- sns 社交标签 begin -->
  <!-- 参考微博API -->
  <meta property="og:type" content="类型" />
  <meta property="og:url" content="URL地址" />
  <meta property="og:title" content="标题" />
  <meta property="og:image" content="图片" />
  <meta property="og:description" content="描述" />
  <!-- sns 社交标签 end -->


所有《每日一题》的 知识大纲索引脑图 整理在此:

https://www.yuque.com/dfe_evernote/interview/everyday
你也可以点击文末的 “阅读原文” 快速跳转


END
愿你历尽千帆,归来仍是少年。

让我们一起携手同走前端路!

关注公众号回复【加群】即可

浏览 47
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报