文章同步到githubhtml
之前沒怎麼太注意過meta標籤的做用,只是簡單瞭解一些經常使用屬性,如今結合我的瞭解的進行記錄與總結:html5
首先須要瞭解一下 元數據(metadata)元素的概念,用來構建HTML文檔的基本結構,以及就如何處理文檔向瀏覽器提供信息和指示,它們自己不是文檔內容,但提供了關於後面文檔內容的信息。——出自《html5權威指南》
如title、base、meta都是元數據元素。本文主要介紹<meta>。git
<meta> 元素可提供有關頁面的元信息(meta-information),好比針對搜索引擎和更新頻度的描述和關鍵詞。--W3schoolgithub
<meta>元素能夠定義文檔的各類元數據,提供各類文檔信息,通俗點說就是能夠理解爲提供了關於網站的各類信息。html文檔中能夠包含多個<meta>元素,每一個<meta>元素只能用於一種用途,若是想定義多個文檔信息,則須要在head標籤中添加多個meta元素。web
元素 | meta |
---|---|
父元素 | head |
屬性 | http-equiv、name、content、charset |
HTML5中的變化 | 1. charset爲HTML5中新增的,用來聲明字符編碼;2. http-equiv屬性在HTML4中有不少值,在HTML5中只有refresh、default-style、content-type可用 |
<meta>元素出去charset屬性外,都是http-equiv屬性或name屬性結合content來使用chrome
name屬性與content屬性結合使用, name用來表示元數據的類型,表示當前<meta>標籤的具體做用;content屬性用來提供值。segmentfault
<meta name="參數" content="具體描述信息">
例如:瀏覽器
<!DOCTYPE HTML> <html> <head> <title>demo</title> <meta name="keywords" content="電商,物流"> <meta name="author" content="張三"> <meta name="description" content="網站描述..."> </head> <body> <div>welcome</div> </body> </html>
元數據名稱(name的值) | 說明 |
---|---|
application name | 當前頁所屬Web應用系統的名稱 |
keywords | 描述網站內容的關鍵詞,以逗號隔開,用於SEO搜索 |
description | 當前頁的說明 |
author | 當前頁的做者名 |
copyright | 版權信息 |
renderer | renderer是爲雙核瀏覽器準備的,用於指定雙核瀏覽器默認以何種方式渲染頁面 |
viewreport | 它提供有關視口初始大小的提示,僅供移動設備使用 |
viewreport緩存
備註:圖片截取自MDN服務器
主要介紹一個當meta標籤的name屬性值爲viewreport時的視口的大小
1.mate標籤name屬性不設置viewreport
若是不設置name的值爲viewreport,默認視口寬度爲980
2.mate標籤name屬性設置viewreport
initail-scale = 屏幕寬度 / 視口寬度
<meta name="viewport" content="width=device-width, initial-scale=1.0">
renderer
<meta name="renderer" content="webkit"> //默認webkit內核 <meta name="renderer" content="ie-comp"> //默認IE兼容模式 <meta name="renderer" content="ie-stand"> //默認IE標準模式 <meta name="renderer" content="webkit|ie-comp|ie-stand">
charset屬性爲HTML5新增的屬性,用於聲明字符編碼,如下兩種寫法效果同樣
<meta charset="utf-8"> //HTML5
<meta http-equiv="content-Type" content="text/html;charset=utf-8"> //舊的HTML
http-equiv屬性與content屬性結合使用, http-equiv屬性爲指定所要模擬的標頭字段的名稱,content屬性用來提供值。
<meta http-equiv="參數" content="具體的描述">
content-Type 聲明網頁字符編碼:
<meta http-equiv="content-Type" content="text/html charset=UTF-8">
refresh 指定一個時間間隔(以秒爲單位),在此時間過去以後從服務器從新載入當前頁面,也能夠另外指定一個頁面.
<meta http-equiv="refresh" content="2;URL=http://www.baidu.com">//2秒後在當前頁跳轉到百度
X-UA-Compatible 瀏覽器採起何種版本渲染當前頁面
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> //指定IE和Chrome使用最新版本渲染當前頁面
expires 用於設定網頁的到期時間,過時後網頁必須到服務器上從新傳輸
<meta http-equiv="expires" content="Sunday 22 July 2016 16:30 GMT">
catch-control 用於指定全部緩存機制在整個請求/響應鏈中必須服從的指令
<meta http-equiv="cache-control" content="no-cache">//
content有如下值(百度百科):
content的值 | 說明 |
---|---|
public | 全部內容都將被緩存(客戶端和代理服務器均可緩存) |
private | 內容只緩存到私有緩存中(僅客戶端能夠緩存,代理服務器不可緩存) |
no-cache | 必須先與服務器確認返回的響應是否被更改,而後才能使用該響應來知足後續對同一個網址的請求。所以,若是存在合適的驗證令牌 (ETag),no-cache 會發起往返通訊來驗證緩存的響應,若是資源未被更改,能夠避免下載。 |
no-store | 全部內容都不會被緩存到緩存或 Internet 臨時文件中 |
must-revalidation/proxy-revalidation | 若是緩存的內容失效,請求必須發送到服務器/代理以進行從新驗證 |
max-age=xxx (xxx is numeric) | 緩存的內容將在 xxx 秒後失效, 這個選項只在HTTP 1.1可用, 並若是和Last-Modified一塊兒使用時, 優先級較高 |
因爲能力有限,結合demo總結以上<meta>元素的經常使用屬性及其功能,可能有些紕漏,還望你們多多包含和指正,文章參考了《HTML權威指南》及其餘相關博客,在我能力外沒有總結的可參考以上博客。後續有時間還會繼續學習和更新此文章,但願能對你們有所幫助
參考文檔: