国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > WEB開發(fā) > 正文

伴隨著Web標(biāo)準(zhǔn)發(fā)展_網(wǎng)站重構(gòu)教程

2024-04-27 13:53:38
字體:
供稿:網(wǎng)友
原文作者:Roger Johansson, 456 Berea Street
中文翻譯:x5, x5studio 本文由x5授權(quán)發(fā)布,翻譯版權(quán)歸x5所有,轉(zhuǎn)載發(fā)布請(qǐng)聯(lián)系x5
Last updated 2004-11-23

There is also an English vision English.
T?m?dokumentti on saatavilla my?s suomeksi.
Consultez l'article en version fran?aise.
Dit document is ook beschikbaar in het Nederlands.
Detta dokument finns ?ven p?svenska.

內(nèi)容

  1. 簡(jiǎn)介
  2. 歷史
  3. Web標(biāo)準(zhǔn)
  4. 結(jié)構(gòu)和表現(xiàn)
  5. (X)HTML(可擴(kuò)展超文本置標(biāo)語(yǔ)言)
  6. CSS(層疊式樣式表)
  7. 可訪問性
  8. URLs(頁(yè)面地址)
  9. 參考資料
  10. 專業(yè)詞匯

1. 簡(jiǎn)介

本文闡述了Web標(biāo)準(zhǔn)是如何使一個(gè)開發(fā)者建設(shè)網(wǎng)站更加的節(jié)省時(shí)間與金錢,如何使瀏覽者獲得更好的瀏覽經(jīng)歷,以及他們的原因。同時(shí),討論中還涉及到一些方法,準(zhǔn)則和好的實(shí)例用來幫助您建設(shè)一個(gè)對(duì)盡可能多的人都布滿親和力的高質(zhì)量的網(wǎng)站。

2. 歷史

在90年代后期,當(dāng)互聯(lián)網(wǎng)和web逐漸成為主流時(shí),Web瀏覽器的開發(fā)商還沒有完全的支持CSS(層疊式樣式表,對(duì)于Web開發(fā)人員來說,他們可以用CSS來控制Html文檔的表現(xiàn))??紤]到CSS1是在1996年制定的,而CSS2是在1998年才制定的,所以這種對(duì)CSS支持的不足也是可以理解的。

由于瀏覽器對(duì)CSS的支持不夠,再加上一些平面設(shè)計(jì)師的要求(這些要求與他們經(jīng)常與印刷品打交道有關(guān))導(dǎo)致他們?yōu)榱丝刂凭W(wǎng)頁(yè)的視覺表現(xiàn)而濫用HTML。一個(gè)典型的例子就是,當(dāng)設(shè)計(jì)師可以用 border="0"來隱藏表格的邊框時(shí),用隱藏表格來控制布局的方法同樣被使用。另一個(gè)例子是對(duì)“transparent”(透明)的使用,同樣是不可見,他們卻使用空白的GIF圖片來控制布局。

由于HTML從來就沒被用來控制一個(gè)文檔的表現(xiàn),導(dǎo)致大量的亂碼、非法代碼、瀏覽器的專用代碼和屬性就被隨意的使用了。“校驗(yàn)”這個(gè)詞也很少被人問津。對(duì)于這些代碼來說,標(biāo)簽湯(tag soup)是一個(gè)很形象的名字。

新版本的web瀏覽器的發(fā)布,使得對(duì)CSS的支持得到了加強(qiáng)與擴(kuò)展,但是并沒有達(dá)到它應(yīng)有的水平。盡管瀏覽器的開發(fā)商對(duì)CSS支持的步伐很緩慢,但是現(xiàn)在已經(jīng)有許多瀏覽器選擇了支持CSS,此時(shí),應(yīng)該再有任何理由再像以前那樣使用HTML了,應(yīng)該讓它恢復(fù)本來的面貌:去描述文檔的結(jié)構(gòu) ,而不是它的表現(xiàn)。 正因?yàn)榇耍覀儸F(xiàn)在才能夠用CSS來達(dá)到其本來的目的了。

3. Web標(biāo)準(zhǔn)

什么是web標(biāo)準(zhǔn)?

Web標(biāo)準(zhǔn)是一些規(guī)范的集合,是由W3C和其他的標(biāo)準(zhǔn)化組織共同制定的,以用它來創(chuàng)建和解釋網(wǎng)頁(yè)的基本內(nèi)容。這些規(guī)范是專門為了那些在網(wǎng)上發(fā)布的可向后兼容的文檔所設(shè)計(jì),使其能夠被大多數(shù)人所訪問。

結(jié)構(gòu)化語(yǔ)言

表現(xiàn)類語(yǔ)言

對(duì)象模型

腳本語(yǔ)言

本文關(guān)注的是XHTML 1.0 Strict(代表結(jié)構(gòu))、CSS Level 1和Level 2(代表表現(xiàn))、ECMAScript 262(代表腳本--并不是指那些腳本的例子)。

當(dāng)一個(gè)文檔被認(rèn)為離Web標(biāo)準(zhǔn)不遠(yuǎn)了的時(shí)候,那就意味著,除了具有上面所提到的技術(shù),還應(yīng)當(dāng):

  • 由符合標(biāo)準(zhǔn)的XHTML組成
  • 用CSS來布局而不是表格
  • 使用結(jié)構(gòu)化、語(yǔ)義化的標(biāo)記
  • 能夠在任何瀏覽器中顯示

注重,“能夠在任何瀏覽器中顯示”并不意味著“在任何一個(gè)瀏覽器中顯示的效果相同”。使一個(gè)文檔在不同的瀏覽器和平臺(tái)上都有相同的顯示效果是不可能的,除非您僅僅使用圖片,因?yàn)榘l(fā)布在網(wǎng)上的文檔將被不同的操作系統(tǒng)上的不同的瀏覽器軟件所顯示,并顯示在不同大小與質(zhì)量的顯示器上(或者顯示在非顯示器上),瀏覽者也可能改變了瀏覽器的默認(rèn)字體或者其他喜好。希望這些能使您減少了一些挫折感。每一個(gè)做網(wǎng)頁(yè)的人都應(yīng)該了解,一些技術(shù)上的先決條件我們不得不考慮,就像那些出書、拍電影、拍電視的人一樣,他們也有一些其他方面的前提必須要考慮。

為什么要使用Web標(biāo)準(zhǔn)?

一些Web開發(fā)人員和Web設(shè)計(jì)師對(duì)使用Web標(biāo)準(zhǔn)持抵觸態(tài)度。普遍的看法是它太難了,不管它是怎么運(yùn)作,我使用的那些軟件總會(huì)創(chuàng)建出一些不規(guī)范的代碼。.

學(xué)習(xí)新的技術(shù)并放棄您所熟知的技術(shù),這很輕易引起情緒上的反感,并產(chǎn)生抵觸的情緒。然而,假如您很理智的觀察一下現(xiàn)在的形勢(shì),將會(huì)發(fā)現(xiàn),通過學(xué)習(xí)和使用Web標(biāo)準(zhǔn)會(huì)得到許多好處。舉幾個(gè)例子:

  • 更簡(jiǎn)易的開發(fā)與維護(hù):使用更具有語(yǔ)義和結(jié)構(gòu)化的HTML,將讓您更加輕易、快速的理解他人編寫的代碼。
  • 與未來瀏覽器的兼容:當(dāng)您使用已定義的標(biāo)準(zhǔn)和規(guī)范的代碼,那么您這個(gè)向后兼容的文本就消除了不能被未來的瀏覽器識(shí)別的后患。
  • 更快的網(wǎng)頁(yè)下載、讀取速度:更少的HTML代碼帶來的將是更小的文件和更快的下載速度。如今的瀏覽器當(dāng)處于標(biāo)準(zhǔn)模式下將比它在以前的兼容模式下?lián)碛懈斓木W(wǎng)頁(yè)讀取速度。
  • 更好的可訪問性:語(yǔ)義化的HTML(結(jié)構(gòu)和表現(xiàn)相分離)將讓使用瀏覽器以及不同的瀏覽設(shè)備的讀者都能很輕易的看到內(nèi)容。
  • 更高的搜索引擎排名:內(nèi)容和表現(xiàn)的分離使內(nèi)容成為了一個(gè)文本的主體。與語(yǔ)義化的標(biāo)記結(jié)合會(huì)提高您在搜索引擎中的排名。
  • 更好的適應(yīng)性:一個(gè)用語(yǔ)義化標(biāo)記的文檔可以很好的適應(yīng)于打印和其他的顯示設(shè)備(像掌上電腦和智能電話),這一切僅僅是通過鏈接不同的CSS文件就可以完成。你同樣可以僅僅通過編輯單獨(dú)的一個(gè)文件就完成跨站點(diǎn)般的表現(xiàn)上的轉(zhuǎn)換。

Web標(biāo)準(zhǔn)可以為網(wǎng)站的創(chuàng)建者節(jié)省時(shí)間與金錢,還可以為網(wǎng)站的瀏覽者提供一個(gè)更好的經(jīng)歷。此外,Web標(biāo)準(zhǔn)是未來的。假如你還沒有使用We b標(biāo)準(zhǔn),那么現(xiàn)在應(yīng)該開始動(dòng)手了,否則你會(huì)落伍的。

相關(guān)文章:

校驗(yàn)

校驗(yàn)是一個(gè)控制的過程,在這個(gè)過程中,文檔必須遵守語(yǔ)言的規(guī)則。你可以通過對(duì)比,檢查出文本中的拼寫或語(yǔ)法錯(cuò)誤。

規(guī)范是網(wǎng)頁(yè)開發(fā)中的一個(gè)重要部分。許多很難被發(fā)現(xiàn)的錯(cuò)誤可以在驗(yàn)證中發(fā)現(xiàn)。錯(cuò)誤可能是一個(gè)微不足道的打字錯(cuò)誤,也可能是嚴(yán)重的元素和屬性的不規(guī)范錯(cuò)誤。

不幸的是,許多人并不驗(yàn)證他們的文檔。一些人或許根本不知道驗(yàn)證這回事,還有一些人想不起來去驗(yàn)證,甚至還有一些人故意的逃避驗(yàn)證。這種情況的出現(xiàn),大部分的責(zé)任要?dú)w咎于Web瀏覽器的開發(fā)商。大多數(shù)的瀏覽器都會(huì)去盡全力的去解釋不規(guī)范的HTML代碼,并努力的去猜測(cè)作者的意圖,以此來避免顯示錯(cuò)誤的信息。這種行為就導(dǎo)致了如今混亂代碼的泛濫。這種標(biāo)記的問題是,它帶來了一些不可猜測(cè)的結(jié)果,因?yàn)樗揽康氖荳eb瀏覽器錯(cuò)誤的處理。

沒有任何原因不去驗(yàn)證您的HTML和CSS。相反,它還會(huì)給您帶來許多好處。

Why we won’t help you 是Mark寫的一篇闡述驗(yàn)證優(yōu)點(diǎn)的文章,十分的棒。里面還解釋了為什么假如您在驗(yàn)證您的網(wǎng)站之前去求助,那么想從論壇和郵件列表中的人取得幫助會(huì)非常的困難。

一些HTML編輯器(像BBEditHomesite)都嵌入了校驗(yàn)工具。假如你的開發(fā)工具里沒有嵌入校驗(yàn)的話,你可以使用W3C的校驗(yàn)服務(wù),可在線使用:

理解校驗(yàn)顯示的錯(cuò)誤提示可能有一些困難。一個(gè)位于文檔前面的錯(cuò)誤可能會(huì)導(dǎo)致另外幾個(gè)額外的錯(cuò)誤。改了第一個(gè)錯(cuò)誤后,通常你就會(huì)減少一定數(shù)量的錯(cuò)誤了。下面這個(gè)網(wǎng)址,將有一些常見錯(cuò)誤提示的說明: Common XHTML Validation Errors

確保你的代碼是完全規(guī)范的,總是一件好事,但是當(dāng)一些校驗(yàn)的錯(cuò)誤很難避免時(shí),就會(huì)有一些非凡的情況。其中最常見的的例子就是在一篇文檔中嵌入FLASH或者一些其他需要插件的內(nèi)容。下面是關(guān)于這個(gè)問題的相關(guān)文章 Flash Satay: Embedding Flash While Supporting StandardsEmbedding flash without <embed>.

4. 結(jié)構(gòu)和表現(xiàn)

當(dāng)討論Web標(biāo)準(zhǔn)時(shí),一些事情總是被提及,那就是結(jié)構(gòu)和表現(xiàn)分離的重要性。剛開始的時(shí)候理解結(jié)構(gòu)和表現(xiàn)的不同之處可能很困難,非凡是假如你不習(xí)慣于思考文檔的語(yǔ)義結(jié)構(gòu)時(shí)。然而,理解這點(diǎn)是很重要的,因?yàn)?,?dāng)結(jié)構(gòu)和表現(xiàn)分離后,用CSS文檔來控制表現(xiàn)就是很輕易的一件事了。

結(jié)構(gòu)是由文檔中的主體部分,再加上語(yǔ)義化、結(jié)構(gòu)化的標(biāo)記。

表現(xiàn)是你賦予內(nèi)容的一種樣式。在大多數(shù)情況下,表現(xiàn)就是文檔看起來的樣子,但是它同樣可以影響一個(gè)文檔“聽”起來的樣子----究竟不是每個(gè)人使用的都是圖像化的瀏覽器。

盡可能的把結(jié)構(gòu)和表現(xiàn)相分離。理論上講,你應(yīng)該用一個(gè)HTML文檔來保存內(nèi)容與結(jié)構(gòu),用一個(gè)CSS文檔來控制整個(gè)文檔的表現(xiàn)。

如今表現(xiàn)與結(jié)構(gòu)的分離在網(wǎng)上還不是很普遍。大多數(shù)網(wǎng)站上的HTML代碼既缺少語(yǔ)義也缺少結(jié)構(gòu)。

用表格布局

為了使表現(xiàn)和結(jié)構(gòu)相分離,你必須用CSS來代替表格去控制一個(gè)文檔的表現(xiàn)。當(dāng)你習(xí)慣于用表格來布局的時(shí)候,這將使你感覺很希奇很不適應(yīng),但是,這并不像它看上去的那么困難。你可以在網(wǎng)上找到許多可用的幫助,它的好處太多了,所以它確實(shí)值得您去花時(shí)間去轉(zhuǎn)變一下思想,這點(diǎn)很重要。

相關(guān)文章:

語(yǔ)義化的HTML

分離結(jié)構(gòu)與表現(xiàn)的另一個(gè)重要方面是使用語(yǔ)義化的標(biāo)記來構(gòu)造文檔內(nèi)容。一個(gè)XHTML元素的存在就意味被標(biāo)記內(nèi)容的那部分有相應(yīng)的結(jié)構(gòu)化的意義,沒有理由使用其他的標(biāo)記。換句話說,要讓CSS使一個(gè)HTML元素看起來就像另一個(gè)HTML元素,比如用<s pan>來代替<h1>標(biāo)記標(biāo)題。

通過使用語(yǔ)義化的HTML,你將會(huì)使文檔中的不同部分對(duì)于任何瀏覽器都變得有意義,無論瀏覽器是現(xiàn)今PC上的最新的圖象化瀏覽器,還是不支持CSS的老瀏覽器,或者還是Unix shell中的文本瀏覽器。

標(biāo)題

為了給標(biāo)題做標(biāo)記, 要用<h1><h2>、 <h3>、<h4>、<h5>或者 <h6>,這完全取決于標(biāo)題的等級(jí)。<h1>是最高的等級(jí)。

例如:
<h1>文檔標(biāo)題</h1><h2>次級(jí)標(biāo)題</h2>

文檔標(biāo)題

次級(jí)標(biāo)題

段落

<p>來標(biāo)記段落。不要使用 <br /> 來生成段落間的空行。用CSS來控制段落間的空隙(Margins),這個(gè)空隙可以確保段落標(biāo)記的正確無誤。

例如:
<p>浪奔浪流,萬(wàn)里滔滔江水永不休,淘盡了世間事,混作滔滔一片潮流,是喜是愁,浪里分不清歡笑悲憂,成功失敗,浪里看不出有未有。愛你恨你問君知否,似大江一發(fā)不收,轉(zhuǎn)千灣轉(zhuǎn)千灘,也未平復(fù)此中爭(zhēng)斗,又有喜又有愁,就算分不清歡笑悲憂,仍愿翻百千浪,在我心中起伏夠。</p>

浪奔浪流,萬(wàn)里滔滔江水永不休,淘盡了世間事,混作滔滔一片潮流,是喜是愁,浪里分不清歡笑悲憂,成功失敗,浪里看不出有未有。愛你恨你問君知否,似大江一發(fā)不收,轉(zhuǎn)千灣轉(zhuǎn)千灘,也未平復(fù)此中爭(zhēng)斗,又有喜又有愁,就算分不清歡笑悲憂,仍愿翻百千浪,在我心中起伏夠。

列表

一些事物的羅列應(yīng)使用列表來顯示。在XHTML中有三種列表的方法:無序、有序和自定義。

無序列表, 就是我們所熟知的圓圈列表, 以 <ul>開始,以</ul>結(jié)束。每一個(gè)列表項(xiàng)都包含在<li>之中。

有序列表,以<ol>開始,以 </ol>結(jié)束。

自定義列表有一些不同,可以用來標(biāo)記一些列表項(xiàng)和描述,以<dl>開始,以 </dl>結(jié)束。每一個(gè)被描述的項(xiàng)目,要包含在<dt>中,而描述的內(nèi)容要包含在<dd>中。

例如:
<ul>    <li>項(xiàng)目一</li>    <li>項(xiàng)目二</li>    <li>項(xiàng)目三</li></ul>
  • 項(xiàng)目一
  • 項(xiàng)目二
  • 項(xiàng)目三
<ol>    <li>項(xiàng)目一</li>    <li>項(xiàng)目二</li>    <li>項(xiàng)目三</li></ol>
  1. 項(xiàng)目一
  2. 項(xiàng)目二
  3. 項(xiàng)目三
<dl>    <dt>上海灘</dt>    <dd>這部拍攝于1980年的《上海灘》堪稱是香港電視史上最成功、最經(jīng)典的劇集。    當(dāng)年在香港播出以后,產(chǎn)生了巨大的轟動(dòng)效應(yīng)。</dd>    <dt>周潤(rùn)發(fā)</dt>    <dd>和所有偉大的影星一樣,周潤(rùn)發(fā)印證了一個(gè)時(shí)代,一個(gè)香港電影的黃金時(shí)代。 風(fēng)衣墨鏡、冷血雙槍、陽(yáng)光微笑,都封存膠片之中,當(dāng)我們回首尋望的時(shí)候,發(fā)哥已被刻為一個(gè)時(shí)代的坐標(biāo)。</dd></dl>
上海灘
這部拍攝于1980年的《上海灘》堪稱是香港電視史上最成功、最經(jīng)典的劇集。 當(dāng)年在香港播出以后,產(chǎn)生了巨大的轟動(dòng)效應(yīng)。
周潤(rùn)發(fā)
和所有偉大的影星一樣,周潤(rùn)發(fā)印證了一個(gè)時(shí)代,一個(gè)香港電影的黃金時(shí)代。 風(fēng)衣墨鏡、冷血雙槍、陽(yáng)光微笑,都封存膠片之中,當(dāng)我們回首尋望的時(shí)候,發(fā)哥已被刻為一個(gè)時(shí)代的坐標(biāo)

CSS使你不想用傳統(tǒng)列表來呈現(xiàn)內(nèi)容成為可能。導(dǎo)航欄(一個(gè)鏈接的列表)就是一個(gè)很好的例子。使用列表作為菜單的好處是當(dāng)一個(gè)瀏覽器不支持CSS時(shí),這個(gè)菜單仍然起作用。

引用

<q>來標(biāo)記簡(jiǎn)短的單行引用。Web瀏覽器會(huì)自動(dòng)識(shí)別在<q> 之間的內(nèi)容。不幸的是,IE不能識(shí)別,并且有些時(shí)候, <q>會(huì)引起一些可訪問性的問題。正因?yàn)槿绱耍恍┤私ㄗh盡量不要使用 <q>,手動(dòng)的插入引用標(biāo)記。在一個(gè)包含適當(dāng)?shù)念惖?<span>中加入單行的引用內(nèi)容,那么就可以用CSS來給引用設(shè)計(jì)樣式了,但是這個(gè)沒有語(yǔ)義上的意義。 您可以讀讀Mark Pilgrim寫的The Q tag 關(guān)于處理<q>相關(guān)問題的看法。

對(duì)于那些一段或者好幾段的長(zhǎng)篇引用,就應(yīng)當(dāng)使用 <blockquote>了。CSS可以用來定義引用的樣式。注重,一段文章是不可以直接放在 <blockquote>中的,引用的內(nèi)容還必須包含在一個(gè)元素中,通常是<p>。

屬性cite既可以與<q> 一起用,也可以與<blockquote>一起用,用來提供引用內(nèi)容的來源地址。需要注重的是,假如你使用 <span>來代替 <q>標(biāo)記引用內(nèi)容,那么你就不能使用 cite屬性了。

例如:
<p>我的座佑名<q cite="http://www.x5.com.cn/">別人的高標(biāo)準(zhǔn),是我的基本要求。</q>.</p>

我的座佑名別人的高標(biāo)準(zhǔn),是我的基本要求。.

<p>我的座佑名<span class="quote">&#8220;別人的高標(biāo)準(zhǔn),是我的基本要求。&#8221;</span>.</p>

我的座佑名“別人的高標(biāo)準(zhǔn),是我的基本要求?!?/SPAN>.

<blockquote cite="http://www.w3cn.org/">    <p>&#8220;我們大部分人都有深刻體驗(yàn),每當(dāng)主流瀏覽器版本的升級(jí),我們剛建立的網(wǎng)站就可能變得過時(shí), 我們就需要升級(jí)或者重新建造一遍網(wǎng)站。例如1996-1999年典型的"瀏覽器大戰(zhàn)", 為了兼容Netscape和IE,網(wǎng)站不得不為這兩種瀏覽器寫不同的代碼。同樣的, 每當(dāng)新的網(wǎng)絡(luò)技術(shù)和交互設(shè)備的出現(xiàn),我們也需要制作一個(gè)新版本來支持這種新技術(shù)或新設(shè)備, 例如支持手機(jī)上網(wǎng)的WAP技術(shù)。類似的問題舉不勝舉:網(wǎng)站代碼臃腫、繁雜浪費(fèi)了我們大量的帶寬; 針對(duì)某種瀏覽器的DHTML特效,屏蔽了部分潛在的客戶;不易用的代碼,殘障人士無法瀏覽網(wǎng)站等等。 這是一種惡性循環(huán),是一種巨大的浪費(fèi)。&#8221;</p></blockquote>

“我們大部分人都有深刻體驗(yàn),每當(dāng)主流瀏覽器版本的升級(jí),我們剛建立的網(wǎng)站就可能變得過時(shí),我們就需要升級(jí)或者重新建造一遍網(wǎng)站。例如1996-1999年典型的"瀏覽器大戰(zhàn)",為了兼容Netscape和IE,網(wǎng)站不得不為這兩種瀏覽器寫不同的代碼。同樣的,每當(dāng)新的網(wǎng)絡(luò)技術(shù)和交互設(shè)備的出現(xiàn),我們也需要制作一個(gè)新版本來支持這種新技術(shù)或新設(shè)備,例如支持手機(jī)上網(wǎng)的WAP技術(shù)。類似的問題舉不勝舉:網(wǎng)站代碼臃腫、繁雜浪費(fèi)了我們大量的帶寬;針對(duì)某種瀏覽器的DHTML特效,屏蔽了部分潛在的客戶;不易用的代碼,殘障人士無法瀏覽網(wǎng)站等等。這是一種惡性循環(huán),是一種巨大的浪費(fèi)。 ”

強(qiáng)調(diào)

<em> 是用作強(qiáng)調(diào)的,<strong>是用作重點(diǎn)強(qiáng)調(diào)的。 大部分瀏覽器用斜體顯示強(qiáng)調(diào)的內(nèi)容,用粗體來顯示重點(diǎn)強(qiáng)調(diào)的內(nèi)容,然而,這是沒有必要的,假如是為了確定強(qiáng)調(diào)內(nèi)容的顯示方式,最好的方法就是使用CSS來定義他們的表現(xiàn)。當(dāng)你想要的只是視覺上的效果時(shí),就不要使用強(qiáng)調(diào)了。

例如:
<p><em>強(qiáng)調(diào)</em> 的文本通常用斜體顯示,然而, <strong>非凡強(qiáng)調(diào)</strong> 的文本通常以粗體顯示。</p>

強(qiáng)調(diào) 的文本通常用斜體顯示, 然而, 非凡強(qiáng)調(diào)的文本通常以粗體顯示。

表格

XHTML中的表格不應(yīng)用來布局。然而假如是為了標(biāo)記列表的數(shù)據(jù),就應(yīng)該使用表格了。為了使數(shù)據(jù)表格有更強(qiáng)的訪問性,了解和使用各種構(gòu)造表格的組件就很重要了。比如表格標(biāo)題 (<th>)、摘要(summary 屬性)和首部說明 ( <caption>標(biāo)簽).

例如:
<table class="舉例" summary="1999年到2003年,列表顯示中國(guó)的平均人口增長(zhǎng)率。">    <caption>中國(guó)的年均人口的增長(zhǎng), 1999-2003</caption>    <thead>        <tr>            <td>&#160;</td>            <th scope="col">1999</th>            <th scope="col">2000</th>            <th scope="col">2001</th>            <th scope="col">2002</th>            <th scope="col">2003</th>        </tr>    </thead>    <tbody>        <tr>            <th>人口</th>            <td scope="row">8 861 426</td>            <td scope="row">8 882 792</td>            <td scope="row">8 909 128</td>            <td scope="row">8 940 788</td>            <td scope="row">8 975 670</td>        </tr>        <tr>            <th>增長(zhǎng)</th>            <td scope="row">7 104</td>            <td scope="row">21 366</td>            <td scope="row">26 368</td>            <td scope="row">31 884</td>            <td scope="row">34 882</td>        </tr>    </tbody></table>
中國(guó)的年均人口的增長(zhǎng), 1999-2003
19992000200120022003
人口8 861 4268 882 7928 909 1288 940 7888 975 670
增長(zhǎng)7 10421 36626 36831 88434 882

想了解更多的關(guān)于表格及其使用的細(xì)節(jié), 請(qǐng)參閱Tables in HTML documentsHTML Techniques for Web Content Accessibility Guidelines 1.0.

相關(guān)文章:
  • SimpleQuiz

    一個(gè)很好的資源,告訴您如何用語(yǔ)義化的方法來標(biāo)記。

5. (X)HTML

使用HTML4.01是可以制作出現(xiàn)代的、結(jié)構(gòu)化的、兼容標(biāo)準(zhǔn)的站點(diǎn)的。然而,為了做到向整潔的語(yǔ)義化的代碼的轉(zhuǎn)變,并且為XML和未來的其他標(biāo)記語(yǔ)言做好預(yù)備,建議大家使用XHTML1.0 Strict來創(chuàng)建新的站點(diǎn),本文中的例子用的就是XHTML1.0 Strict。

XHTML 1.0 是以XML 1.0對(duì)HTML 4的改進(jìn),它的發(fā)展,以用來代替HTML。XHTML 1.0 Strict(這是我一直所倡導(dǎo)的)不支持表現(xiàn)類的標(biāo)記(HTML 4.01其實(shí)也不支持,但是現(xiàn)在我們討論的是XHTML)。正因?yàn)榇?,XHTML1.0 Strict 就促使了表現(xiàn)與結(jié)構(gòu)的分離。

XHTML 1.1(XHTML的最新版)從技術(shù)上說,使用起來有一些復(fù)雜。因?yàn)橐?guī)定中聲明XHTML 1.1的文檔應(yīng)當(dāng)使用MIME類型 application/xhtml xml, 不應(yīng)當(dāng)被看作text/html。 并不是嚴(yán)格的禁止使用text/html, 只是不建議使用。 另外一方面,XHTML 1.0 (應(yīng)當(dāng)使用 application/xhtml xml)同樣可以使用MIME類型 text/html, 假如它是可兼容的HTML。W3C的注解XHTML Media Types 中包括了MIME類型(W3C推薦使用的類型)的概要。

不幸的是,一些老的瀏覽器包括IE不能識(shí)別MIME類型 application/xhtml xml, 并且會(huì)終止顯示源代碼,甚至?xí)纱嗑芙^顯示整個(gè)文檔。

假如你想使用application/xhtml xml, 你應(yīng)當(dāng)讓服務(wù)器檢驗(yàn)一下讀取文檔的瀏覽器是否支持MIME類型,假如能,就使用它,假如不能,就使用text/html

假如你使用的是PHP作為服務(wù)器端的腳本,那么下面的這段腳本能夠讓你的文檔針對(duì)不同的瀏覽器使用不同的MIME類型。

<?phpif (stristr($_SERVER[HTTP_ACCEPT], "application/xhtml xml") || stristr($_SERVER["HTTP_USER_AGENT"],"W3C_Validator")) {    header("Content-Type: application/xhtml xml; charset=iso-8859-1");    header("Vary: Accept");    echo("<?xml version=/"1.0/" encoding=/"iso-8859-1/"?>/n");    }else {    header("Content-Type: text/html; charset=iso-8859-1");    header("Vary: Accept");    }?>

這個(gè)腳本是檢測(cè)是否用戶代理發(fā)送了一個(gè)包含“application/xhtml xml”的Accept HTTP頭,或者假如用戶代理是W3C HTML校驗(yàn)器(不會(huì)發(fā)送合適的Accept HTTP頭的,但是它依然支持 application/xhtml xml)。假如上面檢測(cè)的回答是肯定的,文本將被看作 application/xhtml xml。那些瀏覽器也會(huì)收到一個(gè)XML的聲明。對(duì)于另外的一些瀏覽器(包括IE的是所有版本),文檔都將被看做 text/html。在文檔中也沒有添加額外的XML聲明,因?yàn)榧偃缣砑拥脑?,?huì)使IE/WIN轉(zhuǎn)化到我們所不希望的Quirks模式。

在Content-Type頭部之后,一個(gè)被更改過的頭部,將被發(fā)送到中間的緩存中(比如一些代理服務(wù)器),用來告訴他們文檔的內(nèi)容類型隨著客戶端對(duì)文檔的請(qǐng)求而改變。

假如想了解更多的PHP檢測(cè)腳本, 請(qǐng)參考Serving up XHTML with the correct MIME type. 那個(gè)腳本對(duì)請(qǐng)求客戶端的q-rating(它聲明了更夠很好的支持某種MIME類型)進(jìn)行了考慮,在發(fā)送text/html 文檔給不支持 application/xhtml xml的客戶端之前,把XHTML轉(zhuǎn)化成HTML 4。

下面的是一個(gè)相似的腳本,針對(duì)ASP(VBSscript):

<%If InStr(Request.ServerVariables("HTTP_ACCEPT"), "application/xhtml xml") > 0 Or InStr(Request.ServerVariables("HTTP_USER_AGENT"), "W3C_Validator") > 0 Then    Response.ContentType = "application/xhtml xml"    Response.Write("<?xml version=""1.0"" encoding=""iso-8859-1""?>" & VBCrLf);Else    Response.ContentType = "text/html"End IfResponse.Charset = "iso-8859-1"%>

值得注重的是,當(dāng)一個(gè)文檔的MIME type是application/xhtml xml時(shí),一些瀏覽器(像Mozilla)是不會(huì)顯示包含錯(cuò)誤的文檔的。這在開發(fā)過程中是一件好事,但是對(duì)于那些剛剛更新完站點(diǎn)且不是XHTML專家的人來說,就會(huì)出現(xiàn)一些問題,除非您能確保所有的代碼都是規(guī)范的。假如出現(xiàn)了這種問題,您可以考慮使用HTML 4.01 Strict來代替XHTML。

下面列出了一些在使用XHTML 1.0 Strict中需要非凡注重的地方:

  • 永遠(yuǎn)使用小寫字母,讓引號(hào)伴隨者屬性: 所有元素和屬性的名字都必須使用小寫,所有屬性值必須使用雙引號(hào)。

    錯(cuò)誤: <A HREF="index.html" CLASS=internal>
    正確: <a href="index.html" class="internal">

  • 關(guān)閉所有的元素:在HTML中一些元素沒有必要被關(guān)閉。當(dāng)下一個(gè)元素開始的時(shí)候,上一個(gè)元素就自動(dòng)被關(guān)閉。XHTML中是不答應(yīng)這樣的。所有元素都必須被關(guān)閉,即使其中沒有內(nèi)容(如 <img>

    錯(cuò)誤: <li>Item 1
    正確: <li>Item 1</li>

    錯(cuò)誤: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    正確: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>

    錯(cuò)誤: <br>
    正確: <br />

    錯(cuò)誤: <img src="image.jpg" alt="">
    正確: <img src="image.jpg" alt="" />

  • 屬性不能被縮減: 在HTML里,一些屬性可以被縮減。而XHTML則不答應(yīng)這樣做。

    錯(cuò)誤: <input type="checkbox" id="checkbox1" name="checkbox1" checked>
    正確: <input type="checkbox" id="checkbox1" name="checkbox1" checked="checked" />

  • 不要使用被排斥的元素: 一些元素和屬性在HTML 4.01 Transitional和XHTML 1.0 Transitional是被答應(yīng)的,而在XHTML 1.0 Strict下則不被支持(還有in HTML 4.01 Strict)。比如<font>、<center>alink、align、widthheight (對(duì)于某些元素)和 background

相關(guān)文章:

Doctype(文檔類型)

現(xiàn)在只有很少的HTML文檔有一個(gè)正確而完整的doctype或者DTD (文檔類型聲明)。它現(xiàn)在更多的是在起裝飾作用而沒有什么功能作用,但是就在幾年前剛開始的時(shí)候,一個(gè)doctype的定義,對(duì)瀏覽器解釋這個(gè)文檔起到很大的作用。

所有的HTML和XHTML文檔都必須使它的doctype聲明合法化。 doctype可以告訴我們?cè)谖臋n中使用的是什么版本的HTML和XHMTL,也決定了校驗(yàn)器以何種方式校驗(yàn),瀏覽器以何種模式解釋。假如文檔中有一個(gè)正確而完整的doctype,許多瀏覽器將會(huì)轉(zhuǎn)換到標(biāo)準(zhǔn)模式,那就意味著與CSS的規(guī)范更加接近了。因?yàn)闉g覽器不必再把時(shí)間用在彌補(bǔ)、解釋不規(guī)范的HTML上了,所以文檔的顯示速度也加快了。這同樣也會(huì)減少在不同瀏覽器上顯示的差異性。

下面的doctype聲明是針對(duì)XHTML 1.0 Strict的,它將會(huì)促使擁有“文檔類型轉(zhuǎn)換器”的瀏覽器使用他們的標(biāo)準(zhǔn)模式。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
相關(guān)文章:

字符編碼

所有的XHTML文檔都應(yīng)當(dāng)定義他們的字符編碼。

最好的網(wǎng)頁(yè)編碼方法是配置你的網(wǎng)絡(luò)服務(wù)器,使其發(fā)送帶有字符編碼的HTTP content-type頭部。關(guān)于如何使用去做的具體細(xì)節(jié),請(qǐng)參閱你所使服務(wù)器軟件的說明。

假如你使用的是Apache,你可以通過在你的.htaccess文件中添加一兩條規(guī)則來定義字符編碼。例如,你的所有文件使用的都是utf-8, 添加下面的語(yǔ)句:

AddDefaultCharset utf-8

定義具有相同擴(kuò)展名的文件的字符編碼,則使用下面的代碼:

AddCharset utf-8 .html

假如你的服務(wù)器答應(yīng)你用PHP腳本時(shí),你可以使用以下的代碼來定義字符編碼。

<?php    header("Content-Type: application/xhtml xml; charset=utf-8");?>

假如你的頁(yè)面是HTML, 請(qǐng)把application/xhtml xml換成 text/html。不管是什么原因,假如你不能配置你的服務(wù)器使其定義為你所使用的字符編碼,你可以在<head>中使用<meta> 。即使你的服務(wù)器配置正確了,這也是個(gè)定義字符編碼的好方法。

例如, 下面的<meta>告訴瀏覽器這是一個(gè)使用ISO-8859-1字符編碼的文檔:

<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
相關(guān)文章:

6. CSS

CSS過去經(jīng)常被用來定義字體的屬性,而現(xiàn)在可以用它來控制整個(gè)文檔的布局。然而,為了有效的用CSS來控制布局,需要做一些不同的處理,這種不同是跟用表格布局相對(duì)比的。

為了CSS可以高效的控制布局,結(jié)構(gòu)化、語(yǔ)義化的XHTML是必不可少的。

瀏覽器的支持

正如前面所提到的,在過去幾年,瀏覽器對(duì)CSS的支持程度已經(jīng)改進(jìn)了很多。不幸的是,瀏覽器的開發(fā)商好象對(duì)實(shí)施開放的標(biāo)準(zhǔn)并不感愛好,所以不同瀏覽器對(duì)CSS的支持程度也大相徑庭。就算是支持程度最好的瀏覽器,在軟件中仍然有一些bug,使得瀏覽器以錯(cuò)誤的方式運(yùn)行。

現(xiàn)在(2004), 對(duì)CSS支持比較好的瀏覽器有Mozilla (還有以Gecko為內(nèi)核的: Firefox, Camino, Netscape 6 ), OperaSafari (還有以 WebCore為內(nèi)核的: OmniWeb 4.5 and later)。 Internet Explorer 6/Win并沒有如此好的CSS支持程度,但是它將讓你為其做出大量的基礎(chǔ)工作。Internet Explorer 5/Mac對(duì)CSS 1的支持很出色, 但是卻不支持CSS 2。 IE 5.* for Windows的支持性也很好, 但是仍然有一些問題值得你去注重。早期版本的IE以及Netscape 6以前的版本就沒有必要提及了。

因?yàn)楝F(xiàn)在大多數(shù)人都使用IE/WIN,所以你將不得不讓它成為非凡分子。這并不是說,你不能或者不應(yīng)該使用有更好支持CSS能力的瀏覽器來提高他們的設(shè)計(jì)能力。

現(xiàn)在在用的瀏覽器中,并不是所有的瀏覽器都有很好的CSS支持能力,使其能夠具有解釋用CSS布局的優(yōu)秀圖形化站點(diǎn)的能力。幸運(yùn)的是,對(duì)于大多數(shù)網(wǎng)站,只有很小比例的訪問者還在使用不能解釋CSS的老瀏覽器。

值得注重的是,這些人并不會(huì)被排斥在外的。在90年代,瀏覽器檢驗(yàn)?zāi)_本是一個(gè)很流行的方法,它告訴那些使用“錯(cuò)誤”瀏覽器的使用者一個(gè)新的網(wǎng)址,那個(gè)網(wǎng)址告訴他們?nèi)ド?jí)瀏覽器,好重新連接到那個(gè)網(wǎng)站。

現(xiàn)在,你可以以一種更好的辦法應(yīng)付不被支持的瀏覽器。使用邏輯化、語(yǔ)義化的一個(gè)最大的好處就是它使文檔在沒有CSS時(shí),仍然可以使用和訪問。表現(xiàn)(就是文檔看上去的樣子)在一個(gè)支持性好的瀏覽器中也將呈現(xiàn)的不一樣,但是它的內(nèi)容將永遠(yuǎn)不變,大多數(shù)情況,對(duì)于訪問網(wǎng)站的人來說,內(nèi)容實(shí)際上比表現(xiàn)的方式更加重要。這就是為什么給那些支持性不好的瀏覽器發(fā)送一個(gè)沒有樣式的頁(yè)面,要比把他們排斥在外要好的原因。

有好幾種方式去解決這個(gè)問題:一種最常見的方法是使用 @import來鏈接相應(yīng)的的CSS文件。Netscape 4和老的瀏覽器不支持@import所以將不會(huì)導(dǎo)入CSS文件。還有許多方法來向?yàn)g覽器隱藏CSS。大多數(shù)隱藏CSS的方法是利用了瀏覽器對(duì)CSS解釋時(shí)的漏洞。這意味著總會(huì)存在瀏覽器通過升級(jí)彌補(bǔ)漏洞的危險(xiǎn)。所以越少的依靠CSS hacks(CSS漏洞)越好。

很明顯的,你可以使用服務(wù)器端技術(shù)去做一個(gè)瀏覽器檢測(cè),然后針對(duì)不同的瀏覽器,發(fā)送不同的CSS文件。假如你這么做了,你必須要確保檢測(cè)腳本是通用的,以避免因?yàn)闉g覽器的升級(jí)或者新的瀏覽器發(fā)布導(dǎo)致發(fā)送錯(cuò)誤的CSS文件。

相關(guān)文章:

用不同的方法應(yīng)用CSS

有以下幾種方法使一個(gè)HTML文檔中的元素應(yīng)用CSS。

外鏈?zhǔn)?/H4>

把所有的CSS規(guī)則都寫在一個(gè)或幾個(gè)單獨(dú)的文件中,這種做法有許多優(yōu)點(diǎn)。HTML文檔會(huì)變得非常的小,CSS文件被存在瀏覽器的緩存中,僅僅需要下載一次即可,并且你只需要修改一個(gè)文件就可以改變整個(gè)網(wǎng)站的樣式。一個(gè)外鏈?zhǔn)降腃SS文件,見如下:

h1 {    font-weight:bold;}

注重:在外鏈的CSS中沒有<style>標(biāo)簽。

你可以使用 <link>標(biāo)簽來把一個(gè)CSS鏈接到HTML文檔中:

<link rel="stylesheet" type="text/css" href="styles.css" />

或者在<style>中使用一個(gè)@import標(biāo)簽 :

<style type="text/css">@import url("styles.css");</style>

直線式

通過使用style屬性,你可以直接的在HTML中應(yīng)用CSS:

<h1 style="font-weight:bold;">Rubrik</h1>

這種情況,應(yīng)盡量的避免,因?yàn)樗呀Y(jié)構(gòu)和表現(xiàn)混在一起了。

內(nèi)嵌式

內(nèi)嵌式CSS是寫在<style>標(biāo)簽中,也是寫在文檔的<head>中:

<style type="text/css">h1 {    font-weight:bold;}</style>

這種情況也應(yīng)該盡量避免,最好還是把HTML和CSS用單獨(dú)的文件存放。

相關(guān)文章:
  • At-Rules

    關(guān)于CSS導(dǎo)入和media類型的說明。

CSS的語(yǔ)法

一條CSS的規(guī)則是由一個(gè)選擇器和一個(gè)或多個(gè)聲明組成。選擇器決定了CSS規(guī)則可作用于文檔中的哪個(gè)或哪些元素。一個(gè)屬性和一個(gè)值組成了一個(gè)聲明,聲明要用大括號(hào)({})括起來,并且每個(gè)聲明要用分號(hào)(;)結(jié)束。

一個(gè)簡(jiǎn)單的CSS規(guī)則如下:

p {    color:#0f0;    font-weight:bold;}

這個(gè)例子中, p就是選擇器,表示這條規(guī)則將作用于文檔中的所有被<p>包圍的內(nèi)容。這個(gè)規(guī)則中,有兩條聲明,它們共同作用,使 <p>中的內(nèi)容所有字體為綠色并且加粗。

想了解更具體的CSS規(guī)則,可以參閱 CSS Beginner’s Guide, CSS from the Ground Up或者一個(gè)CSS手冊(cè)。

相關(guān)文章:

多余的元素和類

當(dāng)我們剛開始學(xué)CSS時(shí),很容犯一些錯(cuò)誤:使用不必要的XHTML元素、多余的類和額外的 <div>。并不是說這些代碼是不規(guī)范的,而是它與一些原則(如結(jié)構(gòu)與表現(xiàn)相分離,使用簡(jiǎn)單的整潔的標(biāo)記)相矛盾。

下面是一個(gè)使用不必要XHTML元素的例子:

<h3><em>Headline</em></h3>

假如你想使標(biāo)題行變成斜體,可以使用CSS來重新定義 <h3>元素:

h3 {    font-style:italic;}

下面是一個(gè)使用多余的類的例子:

<div id="main">    <div class="maincontent">        <p class="maincontenttext">            CSS的用法的奧秘很多        </p>    </div></div>

下面這么寫可能更好:

<div id="main">    <div>        <p>            CSS的用法的奧秘很多        </p>    </div></div>

為了控制div#main中的元素,你可以在CSS代碼中使用相關(guān)的的選擇器,例如:

div#main p {    /* rules */}

多數(shù)情況下,CSS答應(yīng)你把想要的樣式來定義XHTML,而不用增加額外的的標(biāo)記。但是有的時(shí)候,增加一些額外的代碼也是必要的。

CSS小竅門

很明顯,一旦你去很認(rèn)真的學(xué)習(xí)使用CSS,你一定會(huì)發(fā)現(xiàn)某些問題,這些問題可能是由誤解造成的,可能是由對(duì)規(guī)則的不了解或者瀏覽器的漏洞造成的。CSS Crib Sheet就是一個(gè)好建議的薈萃,有Dave Shea整理,下面還將有一些重要的而且是Dave沒有提及的小竅門。

  • 先校驗(yàn):在調(diào)試的時(shí)候,先由校驗(yàn)開始吧,HTML和CSS都要進(jìn)行校驗(yàn)。許多問題都是由不規(guī)范代碼引起的。

  • 先在最先進(jìn)的瀏覽器中調(diào)試,然后才輪到其他的瀏覽器: 假如你剛開始就用對(duì)CSS支持不好的瀏覽器調(diào)試,那么你所編的CSS將會(huì)逐漸適應(yīng)這種錯(cuò)誤的處理。當(dāng)你繼續(xù)在更先進(jìn)的瀏覽器中測(cè)試,一些你所不希望的內(nèi)容就會(huì)出現(xiàn)了。最好還是首先在一個(gè)有很好標(biāo)準(zhǔn)兼容性的瀏覽器中運(yùn)行,然后再把代碼拿到老一點(diǎn)的瀏覽器中去測(cè)試。

  • 理解CSS的盒模型:為了獲得一個(gè)元素的實(shí)際的寬度和高度,你需要用paddingborder來增加它的 width或者height。在Internet Explorer 5.*/Win中, paddingborder是被包括在已知的widthheight

    假設(shè)你有如下的CSS代碼:

    div.box {    width:300px;    padding:20px;    border:10px solid;}

    所以這個(gè)div的總寬度是360px.

    10px   20px   300px   20px   10px = 360px

    在Internet Explorer 5.*/Win中,實(shí)際上總寬度為300px, 內(nèi)容的寬度為240px.

    300px - 10px - 20px - 20px - 10px = 240px

    為了繞過這個(gè)問題, 你同樣可以使用CSS hack來給不同的瀏覽器提供不同的值,或者你盡量避免在同一個(gè)元素中同時(shí)定義width padding或者widthborder。

    想了解關(guān)于CSS盒模型的更具體內(nèi)容,請(qǐng)參閱 Box model。

  • 為非零的數(shù)值加上單位:CSS要求一些屬性值(如widthheight、font-size)必須要有單位。當(dāng)屬性值為0時(shí)是可以例外的。在那種情況下,沒有單位也是必須的,因?yàn)?就是0,什么單位也都無所謂了。

  • 理解漂浮物:盡管漂浮物這個(gè)概念很難理解,但是它很重要,因?yàn)镃SS中會(huì)頻繁的使用它來布局。有一些關(guān)于漂浮物的好文章,如Containing FloatsFloatutorialFloat: The Theory

  • “LoVe/HAte?” 按照如下順序?yàn)殒溄佣x偽類:Link, Visited, Hover, Active.

  • “TRouBLed?”當(dāng)使用簡(jiǎn)寫來定義marginpaddingborder時(shí), 他們的順序是從上開始的順時(shí)針方向: 上、右、下、左。

  • 以其功能給CLASS和ID命名,而不是它的表現(xiàn): 假如你有一個(gè)CLASS名為.smallblue, 過后你決定用它來定位文本,使其為大號(hào)、紅色,那么CLASS的名字就會(huì)被弄混淆的。最好能用名字來描述功能和結(jié)構(gòu),如.copyright.im portant

  • CSS是個(gè)敏感的東西:當(dāng)HTML屬性中的 classid與CSS一起使用時(shí),那可就要小心了。 (參見CSS2 syntax and basic data types).

  • 檢查你的ID:文檔中一個(gè)元素只能使用一個(gè)id,且id必須唯一,而class可以被多個(gè)元素所共享。

  • 使用合法的字符為classid命名: Classid的名字只能由數(shù)字、字母和連字符組成,數(shù)字和連字符是不可以開頭的。(參見 CSS2 syntax and basic data types).

  • 正確的注釋:CSS的注釋是以/*開頭,以*/結(jié)尾的:

    /* This is a comment */

CSS布局

有很多例子和階梯教程指導(dǎo)您如何使用CSS布局。建議您從簡(jiǎn)單的例子開始,學(xué)習(xí)它的原理,然后再去學(xué)習(xí)復(fù)雜的布局。

相關(guān)文章:

7. 可訪問性

可訪問性并不是單單針對(duì)殘疾人,盡管這是這是一個(gè)創(chuàng)建具有可訪問性站點(diǎn)的一個(gè)主要原因。一個(gè)具有親和力的站點(diǎn)對(duì)任何人來說,顯示效果都同樣出色,無論他是不是殘疾人。它可以被更多使用不同瀏覽器或?yàn)g覽設(shè)備的人所訪問。

有一種對(duì)可訪問性站點(diǎn)的常見誤解,認(rèn)為它與眾不同,或者不如那些不具有可訪問性的站點(diǎn)具有視覺吸引力。

這有一個(gè)例子將告訴您可訪問性是如何給每一個(gè)人造福的:一個(gè)網(wǎng)站有一個(gè)表單,用它來進(jìn)行注冊(cè)參加一個(gè)研討會(huì),表單中,你可以選擇去參加三個(gè)城市中的一個(gè)城市的研討會(huì)。每一個(gè)城市名字旁邊都有一個(gè)單選按扭。假如表單的創(chuàng)建者沒有可訪問性的意識(shí),那么使用圖像瀏覽器的人就不得不把鼠標(biāo)放到很小的單選按扭上,然后點(diǎn)擊它來選擇城市。假如開發(fā)者了解可訪問性,并且在每個(gè)按扭旁邊用 <label>標(biāo)記說明,那么您就可以點(diǎn)擊城市的名字來選擇地點(diǎn)了。那么,您認(rèn)為哪種方法使表單使用更簡(jiǎn)便呢?

使用語(yǔ)義化、結(jié)構(gòu)化的XHTML將使你走向可訪問性站點(diǎn)之路。要對(duì)可訪問性的文檔有一個(gè)基礎(chǔ)的概念,嘗試使用一個(gè)文字化的瀏覽器(如:< a >Lynx)看看內(nèi)容是否依然起作用。雖然這離通過可訪問性的驗(yàn)證(這是你必須去做的)還差很遠(yuǎn),但是這是一個(gè)好的開始。

框架

許多網(wǎng)頁(yè)設(shè)計(jì)師喜歡使用框架把瀏覽窗口分割成幾個(gè)獨(dú)立的部分,每部分都是由獨(dú)立的HTML文檔組成,這樣做對(duì)某些程序(比如一個(gè)區(qū)域網(wǎng)的應(yīng)用程序)可能很好,但是在公眾網(wǎng)上,使用框架將存在許多缺點(diǎn):

  • 你會(huì)令瀏覽者迷惑。做網(wǎng)頁(yè)的一個(gè)基本原則是每一個(gè)頁(yè)面用一個(gè)唯一的URL表示。打破這個(gè)原則,你將使瀏覽者很難明了網(wǎng)站的結(jié)構(gòu)。
  • 框架帶來了搜索引擎的問題。一個(gè)搜索引擎要把一個(gè)框架編入索引中,你就必須提供指向所有頁(yè)面的鏈接。從搜索引擎搜到你網(wǎng)站的瀏覽者也會(huì)碰到一些問題,他們很可能訪問的是缺少了某些重要信息(導(dǎo)航鏈接)的文檔。一些框架結(jié)構(gòu)的網(wǎng)站試圖通過 robots.txt文件告訴搜索引擎不要把次級(jí)頁(yè)面編到索引中,以此來解決上面的問題。其他的一些網(wǎng)站則用javascript把通過搜索引擎過來的訪問者送到首頁(yè)。假如你的目標(biāo)就是獲得少量的瀏覽者,這兩種方法都是可行的。
  • 框架破壞了書簽。大多數(shù)瀏覽器不能在一個(gè)框架網(wǎng)站的頁(yè)面上使用書簽。當(dāng)你打開書簽后,你將打開的是框架設(shè)置的默認(rèn)地址,往往去的都是這個(gè)網(wǎng)站的首頁(yè)。
  • 打印變得愈加的困難。許多瀏覽者在打印文檔的時(shí)候,同樣會(huì)碰到問題。大多數(shù)的瀏覽器都會(huì)要求你解開這個(gè)框架,否則不能打印。
  • 通過E-mail傳送鏈接變得更加的困難。框架很有效的消除了往一個(gè)網(wǎng)站中的頁(yè)面發(fā)送鏈接的可能性。本質(zhì)沒有變,只是提高了網(wǎng)站的復(fù)雜性。
  • 使網(wǎng)站具有可訪問性變得更加的困難。這會(huì)讓那些不使用圖形化瀏覽器(它支持框架)的人碰到問題的。也正因?yàn)榇?,可訪問性準(zhǔn)則不建議大家使用框架。

此外,你這是在給自己找麻煩??蚣軐⑹挂粋€(gè)網(wǎng)站在技術(shù)上更復(fù)雜。

表格

把“不要使用表格布局”解釋成“不要使用表格”對(duì)一些人來說沒什么區(qū)別。這個(gè)并不是如何去解釋的問題。假如你想標(biāo)記一個(gè)列表數(shù)據(jù),理所當(dāng)然應(yīng)該使用表格,這才是表格應(yīng)當(dāng)起的作用。然而,有一點(diǎn)很重要:當(dāng)你建立數(shù)據(jù)表格時(shí),有許多方法可使他們更具有邏輯性和可訪問性。

相關(guān)文章:

表單

表單通常是沒必要去使用的,而且使用起來很困難,部分的原因是因?yàn)樗麄兪怯貌缓线壿嫷姆椒ń⒌?,部分是因?yàn)榛镜腍TML代碼并沒有使用標(biāo)簽(標(biāo)簽可以使表單更具有可訪問性,更輕易使用)。一些相關(guān)的標(biāo)簽(如<label>、<fieldset>和 <legend>)是存在的,而且是應(yīng)該被使用的。

一個(gè)普遍的問題是用什么給表單布局。一些人說,可以把一個(gè)表單看作一個(gè)列表數(shù)據(jù),可以用表格來構(gòu)造,然而還有一些人提議用CSS來布局。兩種方法都是可用的,但是假如你用的是表格,請(qǐng)確保這個(gè)表格是有意義的,而且要保證當(dāng)一個(gè)包含表單的表格被線性后是可用的。

相關(guān)文章:

JavaScript和cookies

不要依靠JavaScript。許多人(包括你自己)可能都會(huì)認(rèn)為假如把JavaScript從他們的瀏覽器中移除,就可以更加安全或者可以避免彈出窗口。他們也可能正在使用的瀏覽器壓根就不支持JavaScript。根據(jù)TheCounter.com的調(diào)查,6%的Web用戶不使用JavaScript, 而根據(jù)W3Schools.com的調(diào)查,這個(gè)百分比為8%。

大多數(shù)情況,使用JavaScript的地方,對(duì)訪問者都沒什么好處。當(dāng)然有一些例子顯示Javascript能夠給訪問者提供更好的體驗(yàn)。一個(gè)例子就是校驗(yàn)表單的輸入。

值得注重的是這并不是說您不應(yīng)該使用JavaScript。而是說你不應(yīng)該創(chuàng)建一個(gè)依靠JavaScript運(yùn)行的網(wǎng)站

同樣的事也適用于cookies。假如瀏覽者不接受他們的網(wǎng)站就拒絕運(yùn)行,那么你的cookie就使用錯(cuò)了。

8. URLs(頁(yè)面地址)

這部分跟Web標(biāo)準(zhǔn)和可訪問性無關(guān),但是把它放在這是因?yàn)橐粋€(gè)URL的創(chuàng)建方式將對(duì)搜索引擎如何把站點(diǎn)編入索引以及它對(duì)訪問者的可用程度都有很大的影響。

一些搜索引擎機(jī)器人不能跟蹤以字符串結(jié)尾的地址。這種地址通常出現(xiàn)在一些把內(nèi)容動(dòng)態(tài)的存在數(shù)據(jù)庫(kù)的網(wǎng)站里,看起來就像下面這樣:

http://yourdomain.com/products.asp?item=34627393474632&id=4344

最簡(jiǎn)單的創(chuàng)建對(duì)搜索引擎機(jī)器人和人們都有易的URL的方法是改變它看起來的樣子,使URL看起來就像直接的某個(gè)目錄,上面的URL應(yīng)該改變成:

http://yourdomain.com/products/item/34627393474632/id/4344/

Web服務(wù)器將會(huì)解釋新的URL,并在內(nèi)部把它轉(zhuǎn)換成原始的URL,最終以字符串結(jié)束。這部分的結(jié)尾是一些站點(diǎn)的網(wǎng)址,上面將會(huì)有更多的相關(guān)信息。

一個(gè)更好的改變URL的方法(多少有一些麻煩)是徹底的把看到的URLS改寫成人們易讀的方式:

http://yourdomain.com/products/flowers/tulips/

這種URLs的好處是搜索引擎機(jī)器人將把你的站點(diǎn)更好的收入到索引中,對(duì)于大家來說,它的可讀性也更強(qiáng),并使你避免了泄漏你所使用的服務(wù)器方技術(shù)。因?yàn)樵赨RLS中,并沒有顯示服務(wù)器專有文件的擴(kuò)展名,如 .asp、.cf、.cgi 和 .jsp,這會(huì)使你更輕易的更改服務(wù)器器方的技術(shù),所以這種URLs顯得十分的必要。

假如你選擇使用包含字符串的URLs,把&編譯成HTML的實(shí)體&amp;是很重要的。假如你不這么做,一些瀏覽器會(huì)替你完成這個(gè)工作,好象這是他們應(yīng)該做的。當(dāng)他們碰到&amp;,就把它看作一個(gè)實(shí)體的開始。假如緊接著&amp;后的文本符合HTML中的一個(gè)實(shí)體,瀏覽器就會(huì)轉(zhuǎn)變這個(gè)URL,大多數(shù)情況,這將會(huì)破壞URL中的字符串。

還有一件事值得一提,對(duì)于大多數(shù)站點(diǎn),使用 www這個(gè)次級(jí)域名是不必要的。應(yīng)該用 http://yourdomain.com/來代替 http://www.yourdomain.com/。更多的內(nèi)容請(qǐng)參閱no-www.org。無論你使不使用www,配置你的服務(wù)器地址,使其指向http://www.yourdo main.com/, http://yourdomain.com/也是同樣的道理。

相關(guān)文章:

9. 參考資料

精選的一些可供參考的書籍、站點(diǎn)和郵件列表。

書籍

CSS

Web發(fā)展概況

  • A List Apart

    一個(gè)在線周刊,探討設(shè)計(jì)、發(fā)展、和WEB內(nèi)容的含義同時(shí)還關(guān)注著標(biāo)準(zhǔn)化設(shè)計(jì)的相關(guān)技術(shù),以及給我們帶來的好處。

  • webdesign-L

    一個(gè)熱忠于開發(fā)網(wǎng)絡(luò)的郵件列表。大多數(shù)與Web設(shè)計(jì)和Web開發(fā)相關(guān)內(nèi)容列表里都有討論。

HTML

可訪問性

Web標(biāo)準(zhǔn)

XHTML

10. 專業(yè)詞匯

Accessibility
一個(gè)具有可訪問性的站點(diǎn)對(duì)于每個(gè)人都是可訪問的、可用的, 無論他們使用的是什么硬件和軟件, 無論使用什么作為站點(diǎn)的導(dǎo)航。
CSS (Cascading Style Sheets)
一種描述站點(diǎn)表現(xiàn)樣式的規(guī)則。
HTML (HyperText Markup Language)
用它來標(biāo)記文檔的結(jié)構(gòu)。
Presentation
一個(gè)站點(diǎn)看(聽)起來的樣子。
Structure
一個(gè)文檔的主體,再加上對(duì)內(nèi)容的邏輯化的標(biāo)識(shí)。
Markup
通過標(biāo)記一個(gè)文檔,你可以賦予這篇文檔及其內(nèi)容以結(jié)構(gòu)與意義。在網(wǎng)上,用HTML和XHTM作標(biāo)記。
Validation
校驗(yàn)是一個(gè)控制過程,在過程中使文檔遵守語(yǔ)言的規(guī)范。你可以通過對(duì)比,檢查出文本中的拼寫和語(yǔ)法錯(cuò)誤。
W3C (World Wide Web Consortium)
一個(gè)組織,由他們來制定Web規(guī)范、準(zhǔn)則和開發(fā)一些Web工具。
Web standards
這個(gè)就不用多說了,詳情請(qǐng)看 W3C
XHTML (Extensible HyperText Markup Language)
根據(jù)XML對(duì)HTML的重新改造。
XML (Extensible Markup Language)
一個(gè)標(biāo)記語(yǔ)言,看起來就像HTML,但是它答應(yīng)作者根據(jù)描述的內(nèi)容來自定義相應(yīng)的元素。

全文下載

伴隨著Web標(biāo)準(zhǔn)發(fā)展(25k RAR格式)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 津市市| 确山县| 兴山县| 稻城县| 铜山县| 南投县| 英超| 图片| 吐鲁番市| 聂荣县| 盐山县| 萝北县| 盐池县| 阜南县| 晴隆县| 永善县| 山丹县| 左贡县| 宿迁市| 昭通市| 平泉县| 保德县| 九龙坡区| 茂名市| 乐东| 锦州市| 金堂县| 莱州市| 修文县| 洛南县| 两当县| 平远县| 恩平市| 灵山县| 新兴县| 双流县| 钟山县| 雅江县| 伊宁县| 长白| 左贡县|