HTML文檔頭部與元數據

HTML文檔頭部與元數據

在之前的文章中,我對 html 文檔的內容做了簡單的分割,這篇文章對其中的文檔標題—— head 部分進行一個簡單的總結~

如果沒有耐心看長篇大論,可以直接到本文末尾,將會有一個包含了本文大部分內容的 demo~

文檔頭部的作用

head 標籤本身並不攜帶任何信息,它主要是作爲盛放其它語義類標籤的容器。

head 大部分內容是不可見的,除了 title 和 圖標之外。head 中可以包含的標籤有 basetitlescriptstylelinkmeta

下面從簡到繁開始總結

base

base 標籤的作用是給頁面上的所有的相對路徑提供一個基礎URL

<base href="http://www.raaabbit.ink" target="_blank">

注意:

  • 一份 html 文檔最多隻有一個 base 標籤,多出的 base 都不會生效
  • 這個標籤存在一定的危險性,容易造成和 javascript 的配合問題

title

title 標籤的作用是給頁面賦予一個標題,並呈現在瀏覽器 tab 上,可以參考我的另一篇文章 -> html文檔標題

注意:
這個標籤要能夠儘量概括頁面的內容,因爲它可能還會作爲收藏夾中的標題,作爲搜索引擎的搜索結果,作爲社交平臺分享的標題等等,應當能夠起到概括內容的作用

script

script 是一段可執行腳本,一般來說都是 js 代碼

<script type="text/javascript" src="./javascript.js">

一般來說,爲了保證效率,script 會被放在 body 的末尾,具體原因請參考我的另外一篇文章 -> body末尾引入JS與JS異步加載

其他關於 script 標籤的細節將會在 js 基礎相關的 blog 裏面寫到

style

style 是直接寫入在頁面內部的樣式

<style>
    body{
        background:#fff;
    }
</style>

相比這種方式,使用 link 引入外部的 CSS 樣式表更容易維護

link

link 標籤相對於前面的幾個標籤來說要稍稍複雜一些

link 的作用是制定外部資源和當前文檔的關係,具有屬性href、ref、media、hreflan、type和sizes。其中 href、ref和media 更加常用。

使用 link 標籤的例子:

<!-- 引入外部 CSS 樣式表 -->
<link rel="stylesheet" href="./style.css">
<!-- 引入頁面小圖標 -->
<link rel="shortcut icon" href="ico.ico"/>   

其中 rel 說明引入的資源文件是樣式表,href 表示引用的文件位置是當前目錄下的 style.css

link的rel屬性

屬性值 作用
alternate 指示鏈接到該文檔的另一個版本
author 指示鏈接到當前文檔的作者主頁
help 指向一個跟網站或頁面相關的幫助文檔
icon 引入代表當前文檔的圖標,新的sized屬性與這個屬性結合使用,指定鏈接圖片的寬高
license 鏈接到當前的文檔的版權聲明
next 指示鏈接到文檔是一組文檔中的下一份
pingback 處理當前文檔被引用情況的服務器地址
prefetch 指明需要緩存的目標資源
prev 標明瞭上一個文檔
search 鏈接到可以用於搜索當前頁面和相關頁面的資源
sidebar 鏈接到可以作爲附屬上下文的文檔
stylesheet 引入樣式表
tag 創建應用於當前文檔的標籤

link的media屬性

這個屬性的主要作用是進行媒體查詢,按照媒體類型來決定是否引入這個資源文件:

屬性值 作用
screen 計算機屏幕
tty 終端
tv 電視
projection 投影儀
handheld 手持設備
print 打印的頁面
braille 盲文設備
aural 語音合成器
all 所有

當然按照媒體查詢的規則,也是可以直接按照尺寸進行查詢的,CSS中的媒體查詢請參考文章 -> CSS基本語法/幾個特別的規則語法

<link rel="stylesheet" media="(max-width: 800px)" href="example.css" />

meta

meta是本文的重頭戲,因爲這一部分在 head 中佔據的比重尤其之大,並且它也最爲複雜,那我們就按照類別進行簡單的梳理:

charset 聲明字符集(必要!!)

聲明頁面的字符集是必要的,並且要寫在最前面,否則有很大可能會導致亂碼

<meta charset="utf-8">

通常我們會聲明字符編碼爲 utf-8,這種編碼方式也被稱作“萬國碼”可以兼容很多語言。

具有name屬性的meta(基本)

具有 name 和 content 屬性的 meta 標籤是最基本的

name用來執行元數據的名,content用來執行元數據的值:

<meta name="keywords" content="Raaabbit 的 博客">

這個就表示頁面的 關鍵字Raaabbit 的 博客 這樣做會對 SEO 更加有利

注意: name 是一種相對更加自由的約定,http 標準規定了一些 name 作爲大家使用的共識,同時也鼓勵開發者發明自己的 name 使用。

下面是一些常見的name和content組合的總結:

name content 作用
keywords 字符串 設置網頁的關鍵詞有利於SEO
description 字符串 用一段文字描述網頁,有利於SEO
generator 字符串 說明使用的編輯器
author 字符串 說明作者信息
robots All/Index/Nofollow/Noindex/None 頁面可被搜索引擎搜索的情況
copyright 字符串 版權信息
application-name 字符串 應用名稱
viewport width,height,inital-scale,minimum-scale,maximum-scale,user-scalable 決定頁面的大小和縮放
referrer never/always/origin/default 跳轉策略,有助於安全性

注意: viewport 並不是 HTML 的標準定義,但是收到瀏覽器的支持併成爲事實標準

具有http-equiv屬性的meta

設置了http-equiv屬性的meta是一個編譯指令,即由服務器提供的來指示頁面應如何加載

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

比如上面的這段代碼就能夠讓 IE 瀏覽器以最高級的 Edge 模式進行渲染

下面也對常見的一些 http-equiv 進行一個總結

http-equiv content 作用
content-type text/html;Charset=UTF-8 指定http編碼方式
content-language zh-cn 指定內容的語言
set-cookies 模擬 http 請求頭set-cookie,設置cookie
default-style 指定默認樣式表
refresh 5;url=https://raaabbit.github.io/ 指定時間(5s)後刷新或者跳轉(如果沒有url就是刷新)
X-UA-Compatible 聲明 UA 兼容性
cache-control no-cache 清除緩存
Expires GMT 時間格式 設置網頁緩存到期時間
Pragma no-cache 設置瀏覽器禁止從本地緩存中調用
window-Target _top 強制頁面在當前窗口中以獨立頁面顯示,防止頁面被當作 frame
content-security-policy 聲明內容安全策略
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章