當(dāng)頁面加載完成的時(shí)候,標(biāo)簽head里的內(nèi)容,是不會(huì)在頁面中呈現(xiàn)出來的。它包含了像頁面的<title>(標(biāo)題),引入CSS(如果你想用CSS來美化頁面內(nèi)容),圖標(biāo)和其他的元數(shù)據(jù)(比如 作者,關(guān)鍵詞,摘要)。在本文中,我們將覆蓋所有上述的事情,為您提供一個(gè)良好的基礎(chǔ),在head標(biāo)簽中,處理標(biāo)記和其他代碼。
前提: | 基本熟悉HTML,可以從 HTML入門了解。 |
---|---|
目的: | 學(xué)習(xí)head標(biāo)簽,它的目的是什么,包含哪些元素以及它對頁面有什么影響。 |
讓我們簡單的回顧下上一章提到的HTML:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>My test page</title> </head> <body> <p>This is my page</p> </body></html>
head 標(biāo)簽是 <head> 元素的內(nèi)容。不像 <body> 元素的內(nèi)容可以顯示在瀏覽器中,head 的內(nèi)容不會(huì)在瀏覽器中顯示,它的作用是包含一些頁面的元數(shù)據(jù)。在下面的例子中,head 的內(nèi)容很少。
<head> <meta charset="utf-8"> <title>My test page</title></head>
當(dāng)然,在大型的頁面中,head 會(huì)包含很多的元數(shù)據(jù)。你可以用 developer tools 去查看你喜歡的網(wǎng)頁的 head 的內(nèi)容。在這里,我們會(huì)告訴你怎么將必須的內(nèi)容包含在 head 里,而不是將所有能夠包含在 head 里的內(nèi)容都告訴你。讓我們開始吧。
我們之前已經(jīng)看到<title>
,它可以用來給 html 文檔添加一個(gè)標(biāo)題。你可能會(huì)將它和給 body 添加標(biāo)題的<h1>
元素混淆,有些時(shí)候 h1 也會(huì)被稱作網(wǎng)頁標(biāo)題。但是它們是不同的。
現(xiàn)在很明顯的可以看到 <h1> 出現(xiàn)的地方,和 <title> 出現(xiàn)的地方!
3.你應(yīng)該嘗試著在你的代碼編輯器中打開這些代碼,編輯這些元素的內(nèi)容,然后在你的瀏覽器中刷新頁面。祝你玩得開心。
元素 <title> 也被以其他的方式使用著。比如說,如果你嘗試為某個(gè)頁面添加書簽,(Bookmarks > Bookmark This Page, 在火狐瀏覽器中),你會(huì)看到 <title> 的內(nèi)容被作為建議的書簽名。
元素 <title> 的內(nèi)容也被用在搜索的結(jié)果中,正如你下面看到的那樣。
元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),而HTML有一個(gè)“官方的”方式來為一個(gè)文檔添加元數(shù)據(jù)——<meta>
元素。當(dāng)然,我們在本文中討論的其他東西也可以被認(rèn)為是元數(shù)據(jù)。有很多不同類型的<meta>
元素可以包含在你的頁面的<head>元素里,但是現(xiàn)在我們還不會(huì)嘗試去解釋它們,這只會(huì)引起混亂。我們會(huì)解釋一些你會(huì)經(jīng)常看到的東西,會(huì)給你一個(gè)想法。
在上面的例子中,我們看到了這一行:
<meta charset="utf-8">
這個(gè)元素簡單的指定了文檔的字符編碼——在這個(gè)文檔中被允許使用的字符集。utf-8
是一個(gè)通用的字符集,它包含了任何人類語言中的大部分的字符。這意味著你的web頁面可以顯示任意的語言;所以對于你的每一個(gè)頁面,使用這個(gè)設(shè)置是很好的!比如說,你的頁面可以很好的處理英語和日語:
比如說,如果你將你的字符集設(shè)置為ISO-8859-1(拉丁字母的字符集),那么你的頁面會(huì)是亂碼的:
為了進(jìn)行這個(gè)練習(xí),重新到你在前面<title>章節(jié)中獲取的HTML模板 ( title-example.html page),試著改變其字符集的值為ISO-8859-1,然后將日語添加到頁面中。這就是我們使用的代碼:
<p>Japanese example: ご飯が熱い。</p>
許多<meta>
元素包括 name
和content
特性:
name
特性指定了meta 元素的類型;說明該元素包含了什么類型的信息。content
指定了實(shí)際的元數(shù)據(jù)內(nèi)容。 這兩個(gè)meta元素對于定義你的頁面的作者和提供頁面的內(nèi)容描述是很有用的。讓我們看一個(gè)例子:
<meta name="author" content="Chris Mills"><meta name="description" content="The MDN Learning Area aims to providecomplete beginners to the Web with all they need to know to getstarted with developing web sites and applications.">
指定作者在以下幾個(gè)方面是有用的:如果你需要聯(lián)系頁面的作者,問一些關(guān)于頁面內(nèi)容的問題。一些內(nèi)容管理系統(tǒng)能夠自動(dòng)獲取頁面作者的信息,然后用于某種目的。
指定包含關(guān)于頁面內(nèi)容的關(guān)鍵字的頁面內(nèi)容的描述是很有用的,因?yàn)樗赡芑蜃屇愕捻撁嬖谒阉饕娴南嚓P(guān)的搜索出現(xiàn)得更多(這些行為術(shù)語上被稱為 Search Engine Optimization,即SEO。)
description也被使用在搜索引擎顯示的結(jié)果頁中。下面通過一個(gè)例子來說明:
<meta name="description" content="The Mozilla Developer Network (MDN) providesinformation about Open Web technologies including HTML, CSS, and APIs for bothWeb sites and HTML5 Apps. It also documents Mozilla products, like Firefox OS.">
注意:在Google搜索中,在主頁面鏈接下面,你將看到一些相關(guān)子頁面 — 這些是站點(diǎn)鏈接,可以在 Google's webmaster tools 配置:一種可以使你的站點(diǎn)對搜索引擎更友好的方式。
注意:許多<meta>
特性已經(jīng)不再使用。例如, keyword <meta> 元素——提供關(guān)鍵詞給搜索引擎,根據(jù)不同的搜索詞,查找到相關(guān)的網(wǎng)站——被搜索引擎忽略了。因?yàn)樽鞅渍咛畛淞舜罅筷P(guān)鍵詞到keyword,引導(dǎo)搜索結(jié)果。
當(dāng)你在網(wǎng)絡(luò)上漫游時(shí),你也會(huì)發(fā)現(xiàn)其他類型的元數(shù)據(jù)。你在網(wǎng)站上看到的許多功能都是專有創(chuàng)作,旨在向某些網(wǎng)站(例如社交網(wǎng)站)提供他們可以使用的特定信息。
例如, Open Graph Data 是Facebook發(fā)明的元數(shù)據(jù)協(xié)議,用于為網(wǎng)站提供更豐富的元數(shù)據(jù)。在MDN源代碼中,你會(huì)發(fā)現(xiàn):
<meta property="og:image" content="https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png"><meta property="og:description" content="The Mozilla Developer Network (MDN) providesinformation about Open Web technologies including HTML, CSS, and APIs for both Web sitesand HTML5 Apps. It also documents Mozilla products, like Firefox OS."><meta property="og:title" content="Mozilla Developer Network">
上面代碼展現(xiàn)的一個(gè)效果是,當(dāng)你在Facebook上鏈接到MDN時(shí),該鏈接會(huì)顯示一個(gè)圖像和描述:為用戶提供更豐富的體驗(yàn)。
Twitter也有自己的類似的專有元數(shù)據(jù),當(dāng)網(wǎng)站的URL顯示在twitter.com上時(shí),會(huì)產(chǎn)生類似的效果。例如:
<meta name="twitter:title" content="Mozilla Developer Network">
為了進(jìn)一步豐富你的網(wǎng)站設(shè)計(jì),你可以在元數(shù)據(jù)中添加對自定義圖標(biāo)的引用,這些引用將在特定上下文中顯示。
favicon這個(gè)不起眼的圖標(biāo)已經(jīng)存在很多很多年了,16 x 16 像素是這種圖標(biāo)的第一種類型。你可以看見這些圖標(biāo)出現(xiàn)在瀏覽器每一個(gè)打開的頁面的標(biāo)簽頁中,以及在書簽面板的書簽頁面中。
頁面添加圖標(biāo)的方式有:
.ico
格式保存(大多數(shù)瀏覽器將支持更通用的格式,如.gif
或.png
,但使用ICO格式將確保它能在如Internet Explorer 6一樣久遠(yuǎn)的瀏覽器顯示)。<head>
中以引用它: <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
現(xiàn)代瀏覽器在各種地方使用favicons,例如在打開的頁面標(biāo)簽頁和書簽面板中的書簽頁面。下面是一個(gè)favicon出現(xiàn)在書簽面板中的例子:
還有很多其他的圖標(biāo)類型可以考慮。例如,你可以在MDN首頁的源代碼中找到:
<!-- third-generation iPad with high-resolution Retina display: --><link rel="apple-touch-icon-precomposed" sizes="144x144" rel="external nofollow" target="_blank" ><!-- iPhone with high-resolution Retina display: --><link rel="apple-touch-icon-precomposed" sizes="114x114" rel="external nofollow" target="_blank" ><!-- first- and second-generation iPad: --><link rel="apple-touch-icon-precomposed" sizes="72x72" rel="external nofollow" target="_blank" ><!-- non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --><link rel="apple-touch-icon-precomposed" rel="external nofollow" target="_blank" ><!-- basic favicon --><link rel="shortcut icon" rel="external nofollow" target="_blank" >
這些注釋解釋了每個(gè)圖標(biāo)的用途 - 這些元素涵蓋的東西提供一個(gè)高分辨率圖標(biāo),這些高分辨率圖標(biāo)在網(wǎng)站保存到iPad的主屏幕時(shí)使用。
不用急于現(xiàn)在去實(shí)現(xiàn)所有這些類型的圖標(biāo) - 這是一個(gè)相當(dāng)高級的功能,你無需在此課程中進(jìn)一步學(xué)習(xí)這些知識(shí)。這里的主要目的是讓你提前了解有這一樣?xùn)|西以防當(dāng)你瀏覽其他網(wǎng)站的源代碼時(shí)不理解源代碼的含義。
如今,幾乎你使用的所有網(wǎng)站都會(huì)使用 CSS 讓網(wǎng)頁更加炫酷,使用 JavaScript 讓網(wǎng)頁有交互功能,比如視頻播放器,地圖,游戲等。這些應(yīng)用在網(wǎng)頁中很常見,他們分別使用<link>
元素和<script>
元素。
<link>
元素始終位于文檔的開頭。這需要兩個(gè)屬性,rel ="stylesheet",表明這是文檔的樣式表,而href包含樣式表文件的路徑:
<link rel="stylesheet" href="my-css-file.css">
<script>
部分沒必要非要放在文檔頭部;實(shí)際上,把它放在文檔的尾部(在</body>
標(biāo)簽之前)是一個(gè)更好的選擇,這樣可以確保在加載腳本之前瀏覽器已經(jīng)解析了HTML內(nèi)容(如果腳本加載某個(gè)不存在的元素,瀏覽器會(huì)報(bào)錯(cuò))。
<script src="my-js-file.js"></script>
注意:<script>
元素可能看起來像一個(gè)空元素,但它不是,因此需要一個(gè)結(jié)束標(biāo)記。 你也可以選擇將腳本放在<script>
元素中,而不是指向外部腳本文件。
<link>
和<script>
部分到你的HTML文件中,這樣你的HTML就可以應(yīng)用CSS和JavaScript了。 如果按照上述步驟正確地執(zhí)行,當(dāng)你保存HTML文件并重新刷新瀏覽器時(shí),你會(huì)發(fā)現(xiàn)頁面已經(jīng)變樣了:
注意:如果你在本練習(xí)中遇到困難,無法正常應(yīng)用的CSS和JavaScript,嘗試查看一下我們的css-and-js.html示例頁面。
最后,值得一提的是,你可以(而且確實(shí)應(yīng)該)為你的站點(diǎn)設(shè)定語言。這個(gè)可以通過添加 lang屬性到HTML開始標(biāo)簽中來實(shí)現(xiàn)(參考 meta-example.html ),如下所示:
<html lang="en-US">
這在許多方面是有用的。如果你的HTML文檔的語言設(shè)置好了,那么你的HTML文檔就會(huì)被搜索引擎更有效的索引(例如,允許它在特定于語言的結(jié)果中顯示正確),對于那些使用屏幕閱讀器的視覺障礙人士很有用(例如,法語和英語中都有“six”這個(gè)單詞,但發(fā)音卻完全不同。)
你還可以將文檔的分段設(shè)置為不同的語言。例如,我們可以把日語部分設(shè)置為日語,如下所示:
<p>Japanese example: <span lang="jp">ご飯が熱い。</span>.</p>
這些代碼由 ISO 639-1 標(biāo)準(zhǔn)定義。有關(guān)詳情,請參閱 HTML和XML中的語言標(biāo)記。
已經(jīng)到了我們快速學(xué)習(xí)HTML head標(biāo)簽的尾聲 — 你還能學(xué)到更多相關(guān)的,但是現(xiàn)階段詳盡的講的太多會(huì)無聊且迷惑,我們只希望你現(xiàn)在在這學(xué)到最基本的概念!下一篇我們將要學(xué)習(xí)HTML 文本基礎(chǔ)。
更多建議: