長期以來,格式化網(wǎng)站頁面時(shí)基本HTML元素的選擇都取決于它們的顯示的樣式。若需要一個(gè)帶有縮進(jìn)的段落,你可能會選擇用<blockquote>標(biāo)簽將這段文字包圍起來,讓段落兩端顯示出一些空白。但顧名思義,blockquote元素表示其中包含的內(nèi)容是一段引用自其他來源的文字。如果我們僅僅是為了讓某一段文字以縮進(jìn)形式顯示而使用blockquote元素,而這段文字卻并非引用自其他來源的話,那么就意味著我們錯(cuò)誤地使用了HTML標(biāo)簽——HTML標(biāo)簽是用來表示文檔結(jié)構(gòu)的。對于文檔的顯示樣式(例如某一元素的縮進(jìn)),應(yīng)該使用CSS來實(shí)現(xiàn)。
結(jié)構(gòu)化HTML文檔主要體現(xiàn)在對HTML標(biāo)簽正確、合理地使用中。選擇HTML標(biāo)簽時(shí)要根據(jù)其語義,而不是其樣式進(jìn)行。
既然現(xiàn)在CSS設(shè)計(jì)已經(jīng)是可用的了,那么就應(yīng)該把所有的格式化和設(shè)計(jì)相關(guān)的實(shí)現(xiàn)放在CSS文件中,讓HTML只用來表示文檔結(jié)構(gòu)。作為一門用來設(shè)計(jì)表現(xiàn)樣式的語言,CSS建立于HTML的文檔結(jié)構(gòu)之上并為其應(yīng)用可視化樣式,而HTML則只用來表示文檔的結(jié)構(gòu),不再用于頁面樣式的設(shè)計(jì)中。
那么正確、合理的文檔結(jié)構(gòu)能夠帶來什么好處呢?我們所提到的“結(jié)構(gòu)”到底又是什么東西呢?
帶有語義的標(biāo)記
為表現(xiàn)樣式編碼和為實(shí)現(xiàn)正確的語義編碼,二者在基本原理上的差別比較微妙。這里給出了一段示例代碼來幫助我們更好地區(qū)別。下面這一段HTML就是為了實(shí)現(xiàn)某種表現(xiàn)樣式而編寫的:
<br><br>
<b><font size="2">Our Family</font></b>
<br><br>
<font size="1">Pictured are Matt and Jeremy.As
usual,Matt is msking a funny face. We don't have many hotos
where he isn't.</font>
下面這一段HTML是為了達(dá)到正確的語義而編寫的:
<div id="family">
<h3>Our Family</h3>
<p>Pictured are Matt and Jeremy. As usual, Matt is
making a funny face. We don?t have many photos where he
isn?t.</p>
</div>
在第一個(gè)代碼片斷中,所有的HTML標(biāo)簽都是用來表現(xiàn)樣式的。 <br>標(biāo)簽用來換行,<b>標(biāo)簽用來給文本加粗,<font>標(biāo)簽則指定了文本顯示的大小。
而在第二個(gè)代碼片斷中,卻一點(diǎn)都沒有對頁面顯示樣式的說明——h3和p元素僅僅用來描述頁面中某一段內(nèi)容的功能。p元素中包含了一個(gè)自然段的文字,而h3元素則表示其內(nèi)容是頁面中的第三級標(biāo)題。
關(guān)鍵之處就在于,第二個(gè)代碼片段并沒有考慮這些元素將要以何種樣式呈現(xiàn)出來,因?yàn)樵氐某尸F(xiàn)樣式將由CSS控制。之所以選擇這些標(biāo)簽,是因?yàn)樗鼈兦∪缙浞值孛枋隽似渲械膬?nèi)容。這也正是HTML中語義的概念:選擇何種HTML標(biāo)簽取決于標(biāo)簽本身的語義,而不是其默認(rèn)顯示出的樣式。
針對語義編寫HTML所帶來的巨大優(yōu)勢將在本章稍后部分介紹?,F(xiàn)在我們只要記住,使用CSS進(jìn)行設(shè)計(jì)時(shí)的主要任務(wù)之一,就是從編寫合法的、帶有良好結(jié)構(gòu)并擁有語義的HTML文檔開始。完成了這一步之后,我們才能在這個(gè)堅(jiān)實(shí)牢固的基礎(chǔ)之上應(yīng)用各種CSS樣式。
創(chuàng)建良好的標(biāo)記
每個(gè)頁面都在結(jié)構(gòu)上有自己不同的需求,所以對于創(chuàng)建HTML來說,很難找到一個(gè)完美的一攬子解決方案。但我們卻能夠總結(jié)出一些通用的指導(dǎo)方針,將這些要點(diǎn)爛熟于胸,一定會對編寫HTML大有裨益。
?選擇DOCTYPE
在HTML的最開始部分聲明DOCTYPE(Document Type的簡寫)可以讓瀏覽器或其他用戶代理知道你要使用的HTML語言的類型。無論你打算選擇何種類型的HTML語言,DOCTYPE都是一個(gè)健壯的文檔所必需的,也是你在編寫HTML時(shí)要做的第一件事情。
“<p>標(biāo)簽”和“p元素”之間到底有什么區(qū)別?大多數(shù)時(shí)候它們表示的是同一個(gè)東西,但仍有一些細(xì)微的區(qū)別?!皹?biāo)簽”指簡單的HTML分隔符,例如<p>、<div>和</body>等。而“元素”則是由一對開始結(jié)束“標(biāo)簽”構(gòu)成的,用來包含某一些內(nèi)容——這里有一個(gè)值得注意的例外,即<br/>本身既是開始標(biāo)簽又是結(jié)束標(biāo)簽,其中不包含任何內(nèi)容。
一般地,“元素”用來表示某一段明確的結(jié)構(gòu),而“標(biāo)簽”則僅僅是用來創(chuàng)建文檔結(jié)構(gòu)的語法而已。
示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
?指定語言和字符集
與聲明DOCTYPE同樣重要的是將HTML文檔指定為某一種人類的語言。如果你曾偶然闖入某個(gè)看似亂碼的網(wǎng)頁,而實(shí)際上其文字卻是日語、希臘語、斯瓦希里語或者其他什么語言,你就會知道頁面編寫者忘記設(shè)置頁面編碼所造成的后果了。因?yàn)镚oogle和其他搜索引擎會根據(jù)搜索請求的語言來過濾搜索結(jié)果,所以如果你不想放棄搜索引擎帶來的流量的話,那么正確地設(shè)置頁面的編碼將顯得極為重要。本章稍后將詳細(xì)介紹字符編碼的相關(guān)內(nèi)容。
示例:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
設(shè)置文檔的XML語言。這里設(shè)置為英語的ISO代碼en。
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
設(shè)置文檔的字符集。這里為UTF-8。
?指定標(biāo)題
每個(gè)HTML頁面都需要一個(gè)用來描述頁面內(nèi)容的<title>元素。在訪客將頁面保存至收藏夾時(shí),<title>元素中的內(nèi)容將作為鏈接的描述同樣被保存在訪客的瀏覽器中。搜索引擎也對<title>元素中包含的關(guān)鍵字格外感興趣,因此好的<title>可以明顯地提高頁面在搜索引擎中的排名。網(wǎng)站中的每個(gè)頁面都應(yīng)該盡可能地有一個(gè)唯一的標(biāo)題,標(biāo)題應(yīng)該極具描述性地概括該頁面的內(nèi)容,而不是泛泛地介紹整個(gè)站點(diǎn)。
?選用恰當(dāng)?shù)脑?/p>
我們在前面已經(jīng)分析了這個(gè)問題,但還是有必要在這里重復(fù)一遍:根據(jù)文檔內(nèi)容的結(jié)構(gòu)而選擇HTML元素,而不是根據(jù)HTML元素的樣式。例如,用p元素包含文字段落,而不是為了換行;用blockquote包含被引用的文字,而不是為了得到縮進(jìn)等。
當(dāng)然,并不是所有的HTML元素都可以在XHTML 1.0 Strict標(biāo)準(zhǔn)中使用的。事實(shí)上,雖然XHTML 1.0 Strict標(biāo)準(zhǔn)(以及XHTML 1.1標(biāo)準(zhǔn))中可使用的HTML元素較少,但這些元素卻有著更加明確的意義。若你在創(chuàng)建文檔時(shí)找不到合適的、可以恰當(dāng)描述其結(jié)構(gòu)的標(biāo)簽,那么可以考慮使用通用的div或span元素。當(dāng)然,這也是一個(gè)警告……接下來將會介紹。
示例:
<h3>The Road to Enlightenment</h3>
而不要使用這樣的HTML:
<code style="font-size: 1.5em;">The Road to Enlightenment</code>
?避免過度使用div和span
設(shè)計(jì)HTML時(shí)一個(gè)常見的錯(cuò)誤就是過度使用div和span。少量、必要地合理使用可以明顯增強(qiáng)文檔的結(jié)構(gòu)性。但若是文檔中使用了太多的div和span,那么你就應(yīng)該考慮一下是不是還有更加合適的HTML元素供選擇了。例如,若是h3更能表示內(nèi)容的含義,那么就不應(yīng)該使用div,span也不應(yīng)該替代label的作用。
但這并不意味著應(yīng)避免使用div和span。文檔中合適位置的少量div元素可以使文檔更易于應(yīng)用樣式,且在邏輯段落上也顯得更加清晰。我們可以將div看作一個(gè)可以被重用的容器:將內(nèi)容深深隱藏于太多的容器中并不是一個(gè)好主意,但是幾個(gè)合理位置中的div卻可以讓文檔顯得井井有條。
示例:
<div id="pageHeader">
<h1>css Zen Garden</h1>
<h2>The Beauty of <acronym title="Cascading Style
Sheets"> CSS</acronym> Design</h2>
</div>
?盡可能少使用標(biāo)簽
前面兩個(gè)提示所隱藏的含義就是,HTML標(biāo)簽使用得越少越好——事實(shí)上也確實(shí)如此。若想創(chuàng)建出良好的文檔結(jié)構(gòu),那么盡可能少使用標(biāo)簽應(yīng)該是一個(gè)自始至終都要考慮的問題。僅僅使用必要的標(biāo)簽,將其他不必要的都刪掉。這樣做的好處不僅在于能夠讓文件保持小巧(也就意味著用戶下載速度的提高),也可以讓瀏覽器能夠很快完成文檔的解析,即得到更快的呈現(xiàn)速度。
示例:
<p>The Zen Garden aims to excite, inspire, and encourage participation.</p>
而不要這樣:
<div>
<p><span class="text">The Zen Garden aims to excite,
inspire, and encourage participation.</span></p>
</div>
?適當(dāng)?shù)厥褂胏lass和id
為元素添加起標(biāo)示作用的屬性可以讓你在稍后很容易將該元素與CSS或JavaScript關(guān)聯(lián)起來。class是一類可重用的屬性,能夠被重復(fù)應(yīng)用到頁面中的任何元素上;而id則是獨(dú)一無二的,同一個(gè)id在每個(gè)頁面上只能出現(xiàn)一次。
一個(gè)元素可以應(yīng)用多個(gè)class,一個(gè)class也可以應(yīng)用在多個(gè)頁面元素上。我們也可以為同一個(gè)元素同時(shí)應(yīng)用class和id,但要記?。涸谕粋€(gè)頁面上不能為多個(gè)元素指定相同的id。class和id可以選用字母或數(shù)字(a~z、A~Z、0~9)命名1,但必須以字母開頭。雖然有些瀏覽器對class和id名稱的大小寫不敏感,但為了今后便于調(diào)試,還是小心為妙。
注釋:1 下劃線“_”也可以使用?!g者注
三個(gè)合法的標(biāo)識符:
<body class="homepage">
<p id="introduction">
<div id="section5" class="top corner solid">
兩個(gè)不合法的標(biāo)識符:
<span class="15pxhigh">
<div id="footer"><div id="footer">
3.時(shí)間的檢驗(yàn)
若曾編寫過在未來相當(dāng)長的一段時(shí)間內(nèi)都要保持不變的文檔,你就會發(fā)現(xiàn)在編寫的過程中必須處處小心,讓文檔盡可能完美。
以出版行業(yè)為例,為了保證語言流暢簡潔和內(nèi)容的正確性,這本書曾被很多人修改編輯過。原因很明顯:與網(wǎng)頁在瀏覽器緩存中存在的時(shí)間相比,書籍在書架中停留的時(shí)間要長得多。所有這些預(yù)先的檢查工作都是為了確保書籍在出版時(shí)的正確性(但愿出版后好運(yùn)相伴)。
但是在同樣的問題上,網(wǎng)站卻沒有此類的限制。每次用戶來訪,Web站點(diǎn)都從服務(wù)器將內(nèi)容發(fā)送給訪客。這樣就意味著,即使在網(wǎng)站發(fā)布之后,你仍舊可以修改頁面的內(nèi)容或重新設(shè)計(jì)頁面的樣式,每個(gè)再次訪問的用戶都能夠立即看到這些變化,而并不需要像圖書這樣,只有重印或再版的時(shí)候才有機(jī)會修改。自然,網(wǎng)站的不斷改進(jìn)會讓人非常高興,但這也會讓那些簽了固定合同的設(shè)計(jì)師感到些許郁悶。
雖然禪意花園也是一個(gè)網(wǎng)站,但在編寫HTML的過程中卻遇到了一些獨(dú)特的挑戰(zhàn),讓這個(gè)過程更像是寫書而不是網(wǎng)站。若是在用戶已經(jīng)提交了設(shè)計(jì)之后再修改頁面的HTML,那么就有可能破壞掉從前的設(shè)計(jì),這也與禪意花園的最初目標(biāo)相悖。即使修改的僅僅是頁面中的文本,也會對文檔以及文檔中某塊內(nèi)容的大小造成影響,并有可能無法預(yù)知地改變某些作品的布局。這樣看來,一旦發(fā)布之后再對禪意花園的HTML進(jìn)行任何結(jié)構(gòu)或內(nèi)容的修改都可能是有害且不可接受的,所以在編寫HTML時(shí)就需要盡可能小心準(zhǔn)確。
當(dāng)前文章標(biāo)題:在網(wǎng)站設(shè)計(jì)中正確運(yùn)用HTML標(biāo)簽
當(dāng)前URL:http://51zuanshi.com.cn/news/wzzz/correct-use-html-tag.html
下一篇:什么是在線字體