【HTML】meta 標(biāo)簽到底是做什么的

1. 起因
最近部門在推微前端,需要按功能拆分多個(gè)子應(yīng)用,主應(yīng)用在加載的過程中經(jīng)常出現(xiàn)加載失敗的問題。因?yàn)閔ttps地址中,如果加載了http資源,瀏覽器將認(rèn)為這是不安全的資源,將會(huì)默認(rèn)阻止。后來在文檔中添加了<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">完美解決。
此時(shí)我才發(fā)現(xiàn)自己對(duì)meta簡(jiǎn)直一無所知,本文主要介紹meta,順帶也會(huì)提一提head中的其它標(biāo)簽。如有不對(duì)請(qǐng)指出,最后歡迎點(diǎn)贊 + 收藏。
2. head 標(biāo)簽
head標(biāo)簽與html標(biāo)簽,body標(biāo)簽一樣是一個(gè)文檔必須的元素。
head標(biāo)簽用于定于文檔頭部信息,它是所有頭部元素的容器。head中的元素可以引用腳本、指示瀏覽器在哪里找到樣式表、提供元信息等等。
文檔的頭部描述了文檔的各種屬性和信息,包括文檔的標(biāo)題、在 Web 中的位置以及和其他文檔的關(guān)系等。絕大多數(shù)文檔頭部包含的數(shù)據(jù)都不會(huì)真正作為內(nèi)容顯示給讀者。
下面這些標(biāo)簽可用在 head 部分:base, link, meta, script, style, 以及 title。
注意:應(yīng)該把 head 標(biāo)簽放在文檔的開始處,緊跟在 html 后面,并處于 body 標(biāo)簽或 frameset 標(biāo)簽之前。
3. title 標(biāo)簽
title 定義文檔的標(biāo)題,它是 head 部分中唯一必需的元素。瀏覽器會(huì)以特殊的方式來使用標(biāo)題,設(shè)置的內(nèi)容不會(huì)顯示在頁(yè)面中,通常把它放置在瀏覽器窗口的標(biāo)題欄或狀態(tài)欄上,如設(shè)置為空標(biāo)題展示當(dāng)前頁(yè)面的地址信息。
當(dāng)把文檔加入用戶的鏈接列表或者收藏夾或書簽列表時(shí),標(biāo)題將成為該文檔鏈接的默認(rèn)名稱。
1. dir 屬性
規(guī)定元素中內(nèi)容的文本方向rtl、ltr。
2. lang 屬性
規(guī)定元素中內(nèi)容的語(yǔ)言代碼。
4. meta 標(biāo)簽
meta 元素往往不會(huì)引起用戶的注意,但是meta對(duì)整個(gè)網(wǎng)頁(yè)有影響,會(huì)對(duì)網(wǎng)頁(yè)能否被搜索引擎檢索,和在搜索中的排名起著關(guān)鍵性的作用。
meta有個(gè)必須的屬性content用于表示需要設(shè)置的項(xiàng)的值。
meta存在兩個(gè)非必須的屬性http-equiv和name, 用于表示要設(shè)置的項(xiàng)。
比如<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">,設(shè)置的項(xiàng)是Content-Security-Policy設(shè)置的值是upgrade-insecure-requests。
1. http-equiv 屬性
http-equiv一般設(shè)置的都是與http請(qǐng)求頭相關(guān)的信息,設(shè)置的值會(huì)關(guān)聯(lián)到http頭部。也就是說瀏覽器在請(qǐng)求服務(wù)器獲取html的時(shí)候,服務(wù)器會(huì)將html中設(shè)置的meta放在響應(yīng)頭中返回給瀏覽器。常見的類型比如content-type, expires, refresh, set-cookie, window-target, charset, pragma等等。
1. content-type
比如:<meta http-equiv="content-type" content="text/html charset=utf8">可以用來聲明文檔類型,設(shè)置字符集,content-type幾乎所有的屬性都可以在meta中進(jìn)行設(shè)置。
這樣設(shè)置瀏覽器的頭信息就會(huì)包含:
content-type: text/html charset=utf8
復(fù)制代碼
2. expires
用于設(shè)置瀏覽器的過期時(shí)間, 其實(shí)就是響應(yīng)頭中的expires屬性。
<meta http-equiv="expires" content="31 Dec 2021">
復(fù)制代碼
expires:31 Dec 2008
復(fù)制代碼
3. refresh
該種設(shè)定表示5秒自動(dòng)刷新并且跳轉(zhuǎn)到指定的網(wǎng)頁(yè)。如果不設(shè)置url的值那么瀏覽器則刷新本網(wǎng)頁(yè)。
<meta http-equiv="refresh" content="5 url=http://www.zhiqianduan.com">
復(fù)制代碼
4. window-target
強(qiáng)制頁(yè)面在當(dāng)前窗口以獨(dú)立頁(yè)面顯示, 可以防止別人在框架中調(diào)用自己的頁(yè)面。
<meta http-equiv="window-target" content="_top'>
復(fù)制代碼
5. pragma
禁止瀏覽器從本地計(jì)算機(jī)的緩存中訪問頁(yè)面的內(nèi)容
<meta http-equiv="pragma" content="no-cache">
復(fù)制代碼
2. name 屬性
name屬性主要用于描述網(wǎng)頁(yè),與對(duì)應(yīng)的content中的內(nèi)容主要是便于搜索引擎查找信息和分類信息用的, 用法與http-equiv相同,name設(shè)置屬性名,content設(shè)置屬性值。
1. author
author用來標(biāo)注網(wǎng)頁(yè)的作者
<meta name="author" content="[email protected]">
復(fù)制代碼
2. description
description用來告訴搜素引擎當(dāng)前網(wǎng)頁(yè)的主要內(nèi)容,是關(guān)于網(wǎng)站的一段描述信息。
<meta name="description" content="這是我的HTML">
復(fù)制代碼
3. keywords
keywords設(shè)置網(wǎng)頁(yè)的關(guān)鍵字,來告訴瀏覽器關(guān)鍵字是什么。是一個(gè)經(jīng)常被用到的名稱。它為文檔定義了一組關(guān)鍵字。某些搜索引擎在遇到這些關(guān)鍵字時(shí),會(huì)用這些關(guān)鍵字對(duì)文檔進(jìn)行分類。
<meta name="keywords" content="Hello world">
復(fù)制代碼
4. generator
表示當(dāng)前html是用什么工具編寫生成的,并沒有實(shí)際作用,一般是編輯器自動(dòng)創(chuàng)建的。
<meta name="generator" content="vscode">
復(fù)制代碼
5. revised
指定頁(yè)面的最新版本
<meta name="revised" content="V2,2015/10/1">
復(fù)制代碼
6. robots
告訴搜索引擎機(jī)器人抓取哪些頁(yè)面,all / none / index / noindex / follow / nofollow。
<meta name="robots" content="all">
復(fù)制代碼
all:文件將被檢索,且頁(yè)面上的鏈接可以被查詢;none:文件將不被檢索,且頁(yè)面上的鏈接不可以被查詢;index:文件將被檢索;follow:頁(yè)面上的鏈接可以被查詢;noindex:文件將不被檢索,但頁(yè)面上的鏈接可以被查詢;nofollow:文件將不被檢索,頁(yè)面上的鏈接可以被查詢。
3. scheme 屬性
scheme 屬性用于指定要用來翻譯屬性值的方案。此方案應(yīng)該在由 head 標(biāo)簽的 profile 屬性指定的概況文件中進(jìn)行了定義。html5不支持該屬性。
5. base 標(biāo)簽
base標(biāo)簽定義了文檔的基礎(chǔ)url地址,在文檔中所有的相對(duì)地址形式的url都是相對(duì)于這里定義的url而言的。為頁(yè)面上的鏈接規(guī)定默認(rèn)地址或目標(biāo)。
<base href="http://www.w3school.com.cn/i/" target="_blank" />
復(fù)制代碼
base標(biāo)簽包含的屬性。
1. href
href是必選屬性,指定了文檔的基礎(chǔ)url地址。例如,如果希望將文檔的基礎(chǔ)URL定義為https://www.abc.com,則可以使用如下語(yǔ)句:<base >如果文檔的超鏈接指向welcom.html,則它實(shí)際上指向的是如下url地址:https://www.abc.com/welocme.html。
2. target
定義了當(dāng)文檔中的鏈接點(diǎn)擊后的打開方式_blank,_self,_parrent,_top。
6. link 標(biāo)簽
link用于引入外部樣式表,在html的頭部可以包含任意數(shù)量的link,link標(biāo)簽有以下常用屬性。
<link type="text/css" rel="stylesheet" href="github-markdown.css">
復(fù)制代碼
1. type
定義包含的文檔類型,例如text/css
2. rel
定義html文檔和所要包含資源之間的鏈接關(guān)系,可能的值有很多,最為常用的是stylesheet,用于包含一個(gè)固定首選樣式的表單。
3. href
表示指向被包含資源的url地址。
7. style 標(biāo)簽
編寫內(nèi)部樣式表的標(biāo)簽。
<style>
body {
background: #f3f5f9;
}
</style>
復(fù)制代碼
8. script 標(biāo)簽
加載javascript腳本的標(biāo)簽。加載的腳本會(huì)被默認(rèn)執(zhí)行。默認(rèn)情況下當(dāng)瀏覽器解析到script標(biāo)簽的時(shí)候會(huì)停止html的解析而開始加載script代碼并且執(zhí)行。
<script src="script.js"></script>
復(fù)制代碼
1. type
指示腳本的MIME類型。
<script type="text/javascript">
復(fù)制代碼
2. async
規(guī)定異步執(zhí)行腳本,僅適用于通過src引入的外部腳本。設(shè)置的async屬性的script加載不會(huì)影響后面html的解析,加載是與文檔解析同時(shí)發(fā)生的。加載完成后立即執(zhí)行。執(zhí)行過程會(huì)停止html文檔解析。
<script async src="script.js"></script>
復(fù)制代碼
3. charset
規(guī)定在外部腳本文件中使用的字符編碼。
<script type="text/javascript" src="script.js" charset="UTF-8"></script>
復(fù)制代碼
4. defer
規(guī)定是否對(duì)腳本執(zhí)行進(jìn)行延遲,直到頁(yè)面加載為止。設(shè)置了defer屬性的script不會(huì)阻止后面html的解析,加載與解析是共同進(jìn)行的,但是script的執(zhí)行要在所有元素解析完成之后,DOMContentLoaded事件觸發(fā)之前完成。
<script defer src="script.js"></script>
復(fù)制代碼
5. language
規(guī)定腳本語(yǔ)言,與``type```功能類似,不建議使用該字段。
6. src
外部腳本的地址。
<script src="script.js"></script>
復(fù)制代碼
9. bgsound
網(wǎng)站背景音樂。
<bgsound src="music.mp4" autostart="true" loop="5">
復(fù)制代碼
1. src
表示背景音樂的url值。
2. autostart
是否自動(dòng)播放ture自動(dòng)播放,false不播放,默認(rèn)為false。
3. loop
是否重復(fù)播放,值為數(shù)字或者infinite,表示重復(fù)具體次或無限次。
參考來源
[1] w3chool head[1] www.w3school.com.cn/tags/tag\_he…[2] "w3c" [2] head標(biāo)簽及子標(biāo)簽[3] blog.csdn.net/qq\_46580571…[4] "Wangkiwa
關(guān)于本文
來源:隱冬
https://juejin.cn/post/6987919006468407309

回復(fù)“加群”與大佬們一起交流學(xué)習(xí)~
點(diǎn)擊“閱讀原文”查看 120+ 篇原創(chuàng)文章
