當(dāng)前位置:首頁(yè)>>軟件教程>>網(wǎng)頁(yè)制作>>新聞內(nèi)容
利用CSS改善網(wǎng)站可訪(fǎng)問(wèn)性
作者:BUILDER.COM翻譯 發(fā)布時(shí)間:2004-3-19 12:50:02 文章來(lái)源:BUILDER

  最近,我不得不對(duì)我的一個(gè)客戶(hù)的舊網(wǎng)站進(jìn)行更新,使得它能夠達(dá)到可訪(fǎng)問(wèn)性的標(biāo)準(zhǔn)。對(duì)三四年前的舊代碼進(jìn)行挖掘的想法根本沒(méi)有吸引力,主要是因?yàn)槲以?jīng)使用的很多編程慣例已經(jīng)不再適用,特別是從可訪(fǎng)問(wèn)性上來(lái)講。我曾經(jīng)使用絕對(duì)的字體大小,固定的頁(yè)面寬度和表格來(lái)做版面設(shè)計(jì)和空間分配。  

  像那時(shí)建構(gòu)的很多網(wǎng)站一樣,我的客戶(hù)的網(wǎng)站使用了Cascading Style Sheets (CSS)來(lái)格式化文本。它沒(méi)有使用任何CSS的更加強(qiáng)有力的版面設(shè)計(jì)功能,也沒(méi)有允許HTML設(shè)備獨(dú)立,而這是CSS可訪(fǎng)問(wèn)性的主要優(yōu)點(diǎn)之一。

  問(wèn)題是如何出現(xiàn)的?

  在我概述使網(wǎng)站更加具有可訪(fǎng)問(wèn)性的方法之前,了解現(xiàn)今眾多的訪(fǎng)問(wèn)性問(wèn)題的起因也許是很有幫助的:

  對(duì)HTML膚淺的理解:在1990年代的互聯(lián)網(wǎng)大發(fā)展時(shí)期中,所有人都開(kāi)始建構(gòu)網(wǎng)站。WYSIWYG編輯器使得幾乎每個(gè)人都可以很容易地建構(gòu)一個(gè)網(wǎng)站,而不用費(fèi)心去學(xué)習(xí)HTML。但不幸的是,這種在使用上的便利帶來(lái)了一些蹩腳的代碼,對(duì)可訪(fǎng)問(wèn)性造成了妨礙。

  HTML在設(shè)計(jì)方面的局限性:開(kāi)發(fā)者和設(shè)計(jì)者經(jīng)常會(huì)故意錯(cuò)用HTML標(biāo)簽,特別是<table>標(biāo)簽,來(lái)克服HTML在版面和設(shè)計(jì)上的局限性。這種設(shè)計(jì)方式也會(huì)帶來(lái)妨礙可訪(fǎng)問(wèn)性的代碼。

  什么使得CSS更具有訪(fǎng)問(wèn)性?

  CSS在1996年出現(xiàn),用來(lái)解決上述的問(wèn)題。通過(guò)使用CSS,你可以將一個(gè)HTML文件的內(nèi)容與有關(guān)它的表現(xiàn)形式或風(fēng)格的信息分離開(kāi)來(lái)。這就使你可以應(yīng)用準(zhǔn)確的格式化并達(dá)到想要得到的版面設(shè)計(jì),而無(wú)需使用可能會(huì)讓屏幕閱讀器和專(zhuān)門(mén)的瀏覽器軟件產(chǎn)生困惑的HTML代碼。

  例如,雖然HTML表格是用來(lái)排列表格式數(shù)據(jù)的,但他們也經(jīng)常被用來(lái)排列對(duì)齊一個(gè)頁(yè)面上的元素的。但是閱讀器和例如語(yǔ)音合成器的軟件要求有效的HTML代碼。因此當(dāng)他們遇到一個(gè)頁(yè)面錯(cuò)誤地使用了諸如一個(gè)表格的元素,產(chǎn)生的結(jié)果就會(huì)讓使用者感到莫名其妙。

  CSS的另一個(gè)可訪(fǎng)問(wèn)性的優(yōu)點(diǎn)就是它允許使用者定義他們自己的風(fēng)格單,這個(gè)風(fēng)格單可以與網(wǎng)站的風(fēng)格單共同工作。因此,例如一個(gè)使用者可以設(shè)定,所有通過(guò)<p>標(biāo)簽定義的文本都應(yīng)該是1.5em Arial,即使這個(gè)網(wǎng)站的風(fēng)格單表示它應(yīng)該是18px Verdana Bold。

  要注意用戶(hù)定義的風(fēng)格只有在用戶(hù)的風(fēng)格名稱(chēng)與HTML頁(yè)面中的標(biāo)簽相符時(shí)才會(huì)起作用,這是很重要的。這就將確保兼容性的責(zé)任交到了開(kāi)發(fā)者的手中。例如,如果用戶(hù)的風(fēng)格單指定<p>標(biāo)簽應(yīng)顯示1.5em Arial文本,但是HTML頁(yè)面并不使用<p>標(biāo)簽來(lái)從風(fēng)格單中調(diào)用一個(gè)風(fēng)格(也許它使用<font class=”bodytext”>),用戶(hù)對(duì)于<p>標(biāo)簽定義的風(fēng)格將會(huì)被忽略。因此要確保你對(duì)你的標(biāo)題和段落使用標(biāo)準(zhǔn)的HTML標(biāo)簽,這將減少用戶(hù)定義的風(fēng)格單被忽略的機(jī)會(huì)。

  開(kāi)始

  如果你是從頭開(kāi)始建構(gòu)一個(gè)新的網(wǎng)站,那么通過(guò)CSS來(lái)改善可訪(fǎng)問(wèn)性就會(huì)很容易。但你仍然可以輕松地將現(xiàn)有的網(wǎng)站轉(zhuǎn)變?yōu)镃SS形式。

  步驟1:檢查現(xiàn)有代碼

  為了更好地說(shuō)明,我將用在表A中這個(gè)簡(jiǎn)單的HTML代碼來(lái)代表一個(gè)使用CSS的頁(yè)面。這個(gè)例子假設(shè)頁(yè)面還沒(méi)有使用CSS,不過(guò)你也可以使用相似的方法來(lái)評(píng)價(jià)一個(gè)基于CSS的站點(diǎn)。主要的不同點(diǎn)就是大多數(shù)的改變將發(fā)生在CSS文件中而不是HTML文件中。

  步驟2:從HTML中去掉所有特殊風(fēng)格標(biāo)簽

  要在這個(gè)頁(yè)面中加入CSS,我首先需要去掉所有要控制內(nèi)容表現(xiàn)的標(biāo)簽。樣本代碼使用了字體標(biāo)簽來(lái)定義字體外觀(guān),風(fēng)格和顏色。去掉這些元素使得樣本代碼如表B所示。

  步驟3:從HTML中去掉并替換任何錯(cuò)用的標(biāo)簽

  現(xiàn)在我要去掉任何錯(cuò)用的HTML標(biāo)簽。在樣本代碼之中,一個(gè)表格用來(lái)在頁(yè)面的內(nèi)容創(chuàng)建一個(gè)15象素的邊緣,代碼還使用<br>標(biāo)簽來(lái)創(chuàng)建段落。

  在我去掉表格和<br>標(biāo)簽之后,我將他們替換為適當(dāng)?shù)臉?biāo)簽。例如,我對(duì)頁(yè)面標(biāo)題使用<h2>標(biāo)簽,用<p>標(biāo)簽來(lái)顯示段落。使用這些標(biāo)準(zhǔn)HTML標(biāo)簽使得之后的CSS的應(yīng)用變得非常容易,而且與用戶(hù)定義的風(fēng)格單更加兼容,F(xiàn)在的樣本代碼如表C所示。

  步驟4:建構(gòu)一個(gè)CSS文件來(lái)覆蓋風(fēng)格信息

  現(xiàn)在我已經(jīng)從HTML文件中去掉了所有風(fēng)格信息,我需要將這些信息轉(zhuǎn)移至一個(gè)CSS文件中。CSS文件僅僅是一個(gè)存為.css擴(kuò)展名的文本文件,因此它可以在任何一個(gè)文本編輯器中進(jìn)行創(chuàng)建。我使用的是Dreamweaver MX。

  為了使在HTML中應(yīng)用CSS文件變得容易,我使用了名為p和h2的風(fēng)格來(lái)對(duì)應(yīng)標(biāo)準(zhǔn)HTML標(biāo)簽。我使用了可變的字體大小,使得用戶(hù)可以輕松地在瀏覽器中增大或縮小字體大小。使用絕對(duì)大小可以防止瀏覽器對(duì)字體進(jìn)行大小的調(diào)整(除了Netscape 6或以后的版本之外,它將不考慮絕對(duì)字體大。N疫在需要的地方指定了字體的種類(lèi),重量和顏色。

  要重新產(chǎn)生由HTML標(biāo)記代碼創(chuàng)建的版面,我需要將<p>和<h2>標(biāo)簽設(shè)置寬度為780象素。然而,由于我們的目的是將可訪(fǎng)問(wèn)性最大化,因此我將去掉寬度設(shè)置使得頁(yè)面能符合瀏覽器窗口的大小。而且我將讓HTML頁(yè)面使用瀏覽器的缺省邊緣,而不是用原始代碼的<table>標(biāo)簽來(lái)重新創(chuàng)建15象素的空白,這也使得其它例如打印機(jī)等的設(shè)備來(lái)使用它的缺省邊緣設(shè)置。

  表D顯示了我創(chuàng)建的CSS文件。我將它命名為Mystylesheet.css并將它放置在網(wǎng)站根目錄下的一個(gè)風(fēng)格文件夾之中。

  步驟5:在HTML文件上附加新的風(fēng)格單

  在創(chuàng)建了CSS文件之后,我在HTML文件中插入了它的風(fēng)格。因?yàn)镠TML文件已經(jīng)包括了所有在CSS文件中引用的標(biāo)簽(<h2>和<p>),所以我只需要連接到HTML文件頭部的風(fēng)格單上就可以了。HTML文件從CSS文件中獲得風(fēng)格并將他們應(yīng)用到<h2>和<p>標(biāo)簽當(dāng)中,如表E所示。

  步驟6:驗(yàn)證代碼

  整個(gè)過(guò)程的最后一個(gè)步驟就是驗(yàn)證HTML代碼的可訪(fǎng)問(wèn)性。如果你對(duì)于CSS來(lái)說(shuō)是個(gè)新手的話(huà),你最好對(duì)CSS代碼也進(jìn)行驗(yàn)證。有很多種的工具都可以幫你對(duì)二者進(jìn)行驗(yàn)證。

  我使用Dreamweaver MX來(lái)檢查我的樣本代碼的可訪(fǎng)問(wèn)性。你可以通過(guò)在文件菜單中選擇Check Page然后選擇Check Accessibility來(lái)實(shí)現(xiàn)。任何錯(cuò)誤或是警告都會(huì)顯示出來(lái),還包括出現(xiàn)位置的行號(hào)以及對(duì)問(wèn)題簡(jiǎn)要的解釋。你可以在Dreamweaver MX的Reference工具中找到更多關(guān)于這些錯(cuò)誤和警告的內(nèi)容。你只要從Dreamweaver的Windows菜單中選擇Reference然后從Book菜單中選擇UsableNet Accessibility Reference就可以了。

  此外,World Wide Web Consortium (W3C)提供了超過(guò)30個(gè)的可訪(fǎng)問(wèn)性評(píng)估工具的鏈接。W3C還提供了針對(duì)HTMLCSS的基于Web的免費(fèi)驗(yàn)證器。

  可訪(fǎng)問(wèn)性和簡(jiǎn)單的管理

  雖然這里給出的例子是很簡(jiǎn)單的,但它說(shuō)明了利用CSS使你的站點(diǎn)更加具有可訪(fǎng)問(wèn)性是非常容易的。而且,對(duì)于CSS的使用不止這一個(gè)優(yōu)點(diǎn)而已。

  基于CSS的網(wǎng)站要比僅僅只有HTML的網(wǎng)站要好管理得多。CSS文件中的風(fēng)格上的變化可以應(yīng)用到整個(gè)網(wǎng)站中而不需要改變網(wǎng)站中任何的HTML文件。而且CSS的使用縮小了每一個(gè)HTML文件的整體文件大小,因?yàn)樗械娘L(fēng)格信息都存儲(chǔ)在了CSS文件之中。

  因此如果你想要改善可訪(fǎng)問(wèn)性的話(huà),將其視為一個(gè)機(jī)會(huì),而不是一個(gè)障礙。要了解更多關(guān)于CSS和可訪(fǎng)問(wèn)性的內(nèi)容,你可以去看一看World Wide Web Consortium中的Web Accessibility Initiative (WAI)。


最新更新
·如何去掉ECShop2.7中的Powered by ECSh
·在IE7下生成高質(zhì)量CSS縮略圖
·解決Dreamweaver打開(kāi)和關(guān)閉時(shí)出現(xiàn)JavaS
·影響搜索引擎排名的因素2009版
·IE6/IE7/IE8/Firefox/Chrome/Safari的C
·Flash對(duì)聯(lián)廣告及關(guān)閉按鈕制作方法
·Discuz! 7中如果設(shè)置帖子中顯示圖片而不
·5種方法立刻寫(xiě)出更好的CSS代碼
·兼容IE和Firefox的按圖片寬度縮放的CSS
·兼容Firefox和IE瀏覽器的“加入收藏”代
相關(guān)信息
·IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容表
·5種方法立刻寫(xiě)出更好的CSS代碼
·兼容IE和Firefox的按圖片寬度縮放的CSS代碼
·XHTML+CSS兼容性解決方案小集
·讓CSS兼容IE和Firefox的技巧集合
·解決用CSS控制DIV居中失效的問(wèn)題
·讓PNG圖片在IE瀏覽器下顯示透明背景
·CSS在編寫(xiě)中最常見(jiàn)的10個(gè)錯(cuò)誤
·解決CSS樣式表失效的問(wèn)題
·用CSS和DIV實(shí)現(xiàn)圓角表格(矩形)
畫(huà)心
愚愛(ài)
偏愛(ài)
火苗
白狐
畫(huà)沙
犯錯(cuò)
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛(ài)
棉花糖
海豚音
我相信
甩蔥歌
這叫愛(ài)
shero
走天涯
琉璃月
Nobody
我愛(ài)他
套馬桿
愛(ài)是你我
最后一次
少女時(shí)代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂(lè)
星月神話(huà)
心痛2009
愛(ài)丫愛(ài)丫
半城煙沙
旗開(kāi)得勝
郎的誘惑
愛(ài)情買(mǎi)賣(mài)
2010等你來(lái)
我叫小沈陽(yáng)
i miss you
姑娘我愛(ài)你
我們都一樣
其實(shí)很寂寞
我愛(ài)雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個(gè)傳說(shuō)
丟了幸福的豬
找個(gè)人來(lái)愛(ài)我
要嫁就嫁灰太狼
如果這就是愛(ài)情
我們沒(méi)有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開(kāi)之前離開(kāi)
不是因?yàn)榧拍畔肽?/a>
愛(ài)上你等于愛(ài)上了錯(cuò)
在心里從此永遠(yuǎn)有個(gè)你
一個(gè)人的寂寞兩個(gè)人的錯(cuò)