DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> XHTML+CSS制作樣式風格切換的WEB站點
XHTML+CSS制作樣式風格切換的WEB站點
編輯:CSS詳解     
隨著XHTML的逐漸推廣流行,HTML 在許多場合已經顯得過時。World Wide Web Consortium (W3C) 於 2000 年 6 月 26 日發布了 XHTML 的第一個版本作為推薦標准。XHTML 標准的目標是取代 html。按照 W3C 的說法,“XHTML 是 Html 的繼承者”(http://www.w3.org/MarkUp/)。  

XHtml具有兩大目標: 

在文檔結構和表示形式之間創建更明顯的分離。 
將 Html 重新表示為 XML 的應用程序。 
使用XHTML標准的好處是:只需設計頁面一次,即可讓該頁以完全相同的方式在任何現代的浏覽器中顯示和工作。例如,在按照標准生成以後,頁面在Internet Explorer、Mozilla Firefox、Netscape Navigator、Opera、Camino 和 Safari)中以相同的方式顯示,而無需完成任何額外的工作。並且XHtml標准可以使 Web 站點更易於為智能手機、殘疾人電腦等設備訪問。 

由於XHTML標准要求在在文檔結構和表示形式之間創建更明顯的分離。因此使用CSS樣式表是必不可少的。CSS在網頁中占著極重要的地位,它的使用一直是熱門討論的話題。CSS是Cascading Style Sheet的簡寫,譯為“層疊樣式表單”。 在1997年W3C頒布Html4標准的同時也公布了有關樣式表的第一個標准CSS1, 自CSS1的版本之後,又在1998年5月發布了CSS2版本。 

CSS 的發明者的目的是除去表示性元素,即應該根據內容所表示的東西來標記內容,而樣式表應該用於美化內容。而這一點與XHTML分離文檔結構和表示形式的目標是一致,(在XHTML 2.0將除去b 、 i 和 img 標記(以及 big 、 small 和 tt ),甚至不贊成使用 br ,准備從將來的發行版中除去它。原因在於大多數標記都是表示性的。它們的唯一目的就是給予浏覽器指令,規定有關其內容應該如何顯示,但卻完全未提供有關其內容是什麼的信息。) 因此它們成了最好的合作伙伴。更多關於XHtml2.0的資料,請參見:http://www-128.ibm.com/developerworks/cn/XML/x-wa-xhtml/index.Html  

CSS過去經常被用來定義字體的屬性,而現在新標准中我們將用它來控制整個頁面的顯示。然而,我們必須需要做一些不同於以往的處理來適應這種新的變化,如:使用div來布局而不是表格,使用結構化、語義化的標記等等。由於采用新的處理方式,我們現在可以輕松地設計出可重用的CSS(同一個樣式文件多個WEB站點中使用)以及可換膚的WEB站點(一個站點使用多種不同風格的樣式)。 

示例請見四川省建設廳信息門戶,界面切換在右上方,如圖1所示。由於時間原因,並未通過XHtml和CSS校驗,但原理是一樣的。 
圖1:界面樣式切換 

1、重新設計站點的Html 
首先我們要去掉網頁中有關外觀的標簽。在以前的代碼中,我們常用一個表格用來在頁面的內容中創建一個有邊框的區塊,我們還使用〈b〉來加粗文本。用<font color=red>來改變字體顏色等等。用<br>標簽來創建段落等。 

而要做出能適應XHtml標准和能隨意換膚的網站,我們須要避免在頁面中使用有關外觀的標簽。使文檔結構和表示形式分離的一個最大的好處就是它使文檔在沒有CSS時,仍然可以使用和訪問。表現(就是文檔看上去的樣子)在一個支持性好的浏覽器中也將呈現的不一樣,但是它的內容將永遠不變,大多數情況,對於訪問網站的人來說,內容實際上比表現的方式更加重要。這就是為什麼給那些支持性不好的浏覽器發送一個沒有樣式的頁面,要比把他們排斥在外要好的原因。 

現在比較流行的做法是使用DIV、SPAN等標簽來布局整個頁面,而TABLE,UL,PRE,CODE等標簽來顯示數據,用UL是用來顯示無序的列表信息,而OL顯示有序的列表信息。這將比用TABLE來顯示一個列表更有語義上的意義,同時UL和OL在浏覽器中比TABLE標簽更快有下載速度,並且相對於TABLE,CSS對UL和OL的外觀控制更加靈活。當然對於復雜的數據,比如報表,用TABLE來顯示仍然是不二的選擇。 

2、建立基本的通用樣式
由於所有的XHTML文件都是由各種各樣的HTML標簽和標簽內的文字組成,而一些基本的標簽在每個XHTML文件都存在的,如:body、table、td、div、h1—h6、ul、li、input等等,如果我們定義好了這些標簽的CSS樣式,如:字體,字號,行距,背景色,背景圖等等,我們就有了一個基本的樣式風格,就如同在Word或PowerPoint中的主題,每個主題就是一套風格樣式。 因此,我們可以根據基本的Html標簽定義出一個通用的樣式來,例如建立一個siteComm.CSS文件,定義如下: 

/*文中的樣式表語法中的"("及""為示例所用,因為blog每次保存花括號都出現錯誤。請在使用時改為正確的符號*/ 
BODY 

    background: url(images/bg_page.jpg); 
    font: 10pt verdana,arial,; 
    margin-top: 0px; 
    margin-left: 0px; 
    margin-right: 0px; 
    margin-bottom: 0px; 

H1, H2, H3, H4, H5, H6 

    border-bottom: solid 1px #ccc; 
    margin: 1em 0; 

TD 

    font: 10pt; 

A:link 

    color: #057AE0; 
    text-decoration: none; 

A:visited 

    color: #057AE0; 
    text-decoration: none; 

A:hover 

    color: #009900; 

A:active 

    color: #009900; 


這樣的一個樣式文件,可以適用於任何一個網頁,只要添加引用我們都可以立刻看見效果。 

由於樣式表的繼承規則是外部的標簽樣式會保留下來繼承給這個標簽所包含的其他標簽。事實上,所有在標簽中嵌套的標簽都會繼承外層標簽指定的屬性值,有時會把很多層標簽的樣式疊加在一起,例如在body標簽中定義了字體大小,那麼div、p等標簽也會繼承一樣的字體大小,如果在P標簽中又定義了字體顏色,那麼P標簽中的文字既具有body標簽的字體大小又有P標簽的字體顏色。需要注意的是,table標簽不會繼承body的字體大小設定,所以在上面的樣式表中,我們單獨來定義td的樣式。 

3、定義好頁面的結構布局
很多時候,我們在制作網頁時總是從視覺出發,先用Photoshop或者Fireworks畫出來、思考頁面的配色,做一些很炫的效果,很精美的圖片,再切割成小圖。然後通過編輯Html將所有設計變成頁面。 

然而,有視覺的缺陷的人,不能理解這些顏色或者效果。PDA、移動電話和屏幕閱讀機上也無法解析這些效果。 

因此外觀並不是最重要的。一個結構良好的XHTML可以通過CSS的不同定義,顯示成任何外觀,顯示在任何支持XHtml的網絡設備上。 

通過分析我們可以發現,對於大多數WEB網站來說,頁面都是由一些類似的內容區塊所組成,如: 

站點標題區 
站點導航(主菜單,次及菜單) 
功能區(例如搜索框、用戶登陸區) 
內容區(文章正文或者文章、產品列表) 
頁腳(版權和有關法律聲明) 
然後我們用DIV標簽來將這些區塊包含起來,類似這樣:

<div class="pageHeader">站點標題 
</div> 
<div class="pageNav">站點導航 
</div> 
<div class="catalogNav">欄目導航 
</div> 
<div class="pageContent">文章正文或列表等等 
</div> 
<div class="pageSearch">查詢 
</div> 
<div class="pageBottom">頁腳 
</div> 
通過CSS的定義,我們可以將這些DIV標簽包含的區塊放在頁面上任何位置,再指定這些塊的顏色、字體、邊框、背景以及對齊屬性等等。如:我們再建立siteLayout.CSS文件,定義如下:

.pageHeader 
( 
    padding: 10px; 
    border: 1px solid #666; 
    height: 100px; 
    height: 70px; 
) 
.pageNav 
( 
    padding: 10px; 
    border: 1px solid #666; 
    height: 100px; 
    height: 30px; 
) 
.catalogNav 
( 
    float: left; 
    top: 130px; 
    padding: 10px; 
    border: 1px solid #666; 
    width: 20%; 
) 
.pageSearch 
( 
    float: left; 
    top: 130px; 
    padding: 10px; 
    border: 1px solid #666; 
    width: 20%; 
) 
.pageContent 
( 
    float: left; 
    padding: 10px; 
    border: 1px solid #666; 
    height: 400px; 
    width: 60%; 
) 
.pageBottom 
( 
    clear: both; 
    padding: 10px; 
    border: 1px solid #666; 
    height: 100px; 
    height: 70px; 
) 
如此,我們定義了一個三列的頁面布局:頂部自適應頁面寬度。中間三列自適應頁面。底部自適應頁面寬度,當然您也可以將頁面定義為中間只有兩列等等,您只需要調整layout.CSS文件即可,這樣您可以靈活的修改頁面的布局,讓頁面外觀發生根本的變化,而不必動到Html源文件,這一點對於服務器端生成代碼的程序尤為重要。 更多關於CSS布局的資料,請參見:http://www.w3cn.org/article/layout/2004/55.Html  

4、定義站點獨有的樣式 
經過以上兩步之後,我們已經有了一個大概的頁面主題外觀,接下來我們要設計站點的細節,比如,對站點導航條我們想使用與普通超鏈接不一樣的樣式,如:藍色、加粗、字體更大、再加上有立體效果的背景圖:

. pageNav a:link, . pageNav a:hover, . pageNav a:visted (Color:#36c;  
font-weight:bold; font-size:120%; background: url(images/bg_siteMenu.jpg) #36c;  

 對於欄目導航,我們想給每個欄目連接加上背景色,並且有鼠標滑過和移出的效果。 欄目導航區的Html代碼為: 

<div class="catalogNav"> 
        <ul> 
            <li> 
                <A href="1">欄目1</A> 
            <li> 
                <A href="2">欄目2</A> 
            <li> 
                <A href="3">欄目3</A> 
            <li> 
                <A href="4">欄目4</A> 
            <li> 
                <A href="5">欄目5</A> 
            <li> 
                <A href="6">欄目6</A> 
            </li> 
        </ul> 
    </div> 
欄目導航區對應的CSS代碼為: 

.catalogNav ul 

    margin-left: -30px; 
    list-style: none; 

.catalogNav li 

    float: left; 
    background: #CCC; 
    line-height: 30px; 
    border: solid 1px #black; 

.catalogNav a 

    width: 100%; 
    text-align: center; 
    height: 30px; 

.catalogNav a:link 

    color: #666; 
    background: url(arrow_off.gif) #CCC no-repeat 5px 12px; 
    text-decoration: none; 

.catalogNav a:visited 

    color: #666; 
    text-decoration: underline; 

.catalogNav a:hover 

    color: #FFF; 
    font-weight: bold; 
    text-decoration: none; 
    background: url(arrow_on.gif) #F00 no-repeat 5px 12px; 

接下來我們還需要定義其他的站點獨有的樣式,如欄目標題、文章列表、文章正文、時間、注釋、提示、錯誤等等各種樣式,而且這些樣式多以類和id來作為選擇符。這些樣式都是針對某個站點的,不適用於其他的站點,然後我們將這些樣式保存為siteStyle.CSS文件。 

這樣我們就有了3個CSS文件。 SiteComm.CSS:任何站點都可以使用的樣式文件,定義了常用的Html標簽樣式。 SiteLayout.css:站點的布局文件,能適用於大多數的網站結構,具體細節需要調整。 siteStyle.CSS:站點獨有的樣式文件,能顯示出本站點獨特的風格和適應於站點的內容。 

然後我們采用外部調用法:將這些樣式表與頁面關聯起來。 

<LINK rev="stylesheet" media="all" href="css/SiteComm.css" type="text/CSS" rel="stylesheet"> 
<LINK rev="stylesheet" media="all" href="css/SiteLayout.css" type="text/CSS" rel="stylesheet"> 
<LINK rev="stylesheet" media="all" href="css/siteStyle.css" type="text/CSS" rel="stylesheet"> 
在符合XHTML標准的設計中,我們使用外部調用法,好處不言而喻,Html文檔會變得非常的小,CSS文件被存在浏覽器的緩存中,僅僅需要下載一次即可,並且你只需要修改一個文件就可以改變整個網站的樣式。 

並且這樣我們才能通過客戶端腳本,或者服務器端代碼方便地改變樣式表的連接地址,而快捷地實現換膚功能。 

5、根據用戶設置換膚
網站樣式切換在網上已有很多現成的Javascript換膚代碼,一般使用cookIE來保存用戶設置,在請求頁面時,改變頁面的CSS文件連接即可。 

而服務器端的換膚做法是根據用戶請求,動態地生成CSS文件連接,用戶設置一般保存在數據庫或者cookIE中。 

由於我們使用了3個不同功能CSS樣式文件來顯示網站,所以我們可以設計出更加靈活的換膚方案和組合,如只切換主題而保留布局,和切換布局和主題,以及各種細節等等。 

使用3個CSS樣式文件額外的好處是,每當我們設計一個新的系統,它的樣式風格特性幾乎都可以大部分應用到以前的系統上(因為我們采用大致相同的頁面結構模型,雖然顯示千差萬別,但主要的框架是一樣的),這樣我們就可以積累出相當數量和相當風豐富的界面樣式庫來。 

6、通過校驗
整個過程的最後一個步驟就是對XHtml\CSS代碼進行驗證。有很多種的工具都可以幫你對二者進行驗證。 

例如Dreamweaver MX即可檢查我的樣本代碼的可訪問性。你可以通過在文件菜單中選擇Check Page然後選擇Check Accessibility來實現。任何錯誤或是警告都會顯示出來,還包括出現位置的行號以及對問題簡要的解釋。你可以在Dreamweaver MX的Reference工具中找到更多關於這些錯誤和警告的內容。 

而Microsoft ASP.NET 2.0 具有很多有用的功能,也能幫助我們設計和生成符合 XHtml 和可訪問性標准的 Web 站點。 使用 Web 標准生成 ASP.Net 2.0 Web 站點 http://www.microsoft.com/china/msdn/library/webservices/ASP.Net/ASPNETusStan.mspx 

此外,World Wide Web Consortium (W3C)提供了超過30個的可訪問性評估工具的鏈接。W3C還提供了針對Html和CSS的基於Web的免費驗證器。 

因此如果想要改善網站友好度,可用性,可訪問性等,可將新標准視為一個機會,而不是一個障礙。要了解更多關於新標准和可訪問性的內容,你可以去看一看World Wide Web Consortium中的Web Accessibility Initiative (WAI)。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved