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

首頁 > 開發(fā) > CSS > 正文

XHTML+CSS制作樣式風(fēng)格切換的WEB站點(diǎn)

2024-07-11 08:21:31
字體:
供稿:網(wǎng)友
隨著xhtml的逐漸推廣流行,html 在許多場合已經(jīng)顯得過時(shí)。world wide web consortium (w3c) 于 2000 年 6 月 26 日發(fā)布了 xhtml 的第一個(gè)版本作為推薦標(biāo)準(zhǔn)。xhtml 標(biāo)準(zhǔn)的目標(biāo)是取代 html。按照 w3c 的說法,“xhtml 是 html 的繼承者”(http://www.w3.org/markup/)。  

xhtml具有兩大目標(biāo): 

在文檔結(jié)構(gòu)和表示形式之間創(chuàng)建更明顯的分離。 
將 html 重新表示為 xml 的應(yīng)用程序。 
使用xhtml標(biāo)準(zhǔn)的好處是:只需設(shè)計(jì)頁面一次,即可讓該頁以完全相同的方式在任何現(xiàn)代的瀏覽器中顯示和工作。例如,在按照標(biāo)準(zhǔn)生成以后,頁面在internet explorer、mozilla firefox、netscape navigator、opera、camino 和 safari)中以相同的方式顯示,而無需完成任何額外的工作。并且xhtml標(biāo)準(zhǔn)可以使 web 站點(diǎn)更易于為智能手機(jī)、殘疾人電腦等設(shè)備訪問。 

由于xhtml標(biāo)準(zhǔn)要求在在文檔結(jié)構(gòu)和表示形式之間創(chuàng)建更明顯的分離。因此使用css樣式表是必不可少的。css在網(wǎng)頁中占著極重要的地位,它的使用一直是熱門討論的話題。css是cascading style sheet的簡寫,譯為“層疊樣式表單”。 在1997年w3c頒布html4標(biāo)準(zhǔn)的同時(shí)也公布了有關(guān)樣式表的第一個(gè)標(biāo)準(zhǔn)css1, 自css1的版本之后,又在1998年5月發(fā)布了css2版本。 

css 的發(fā)明者的目的是除去表示性元素,即應(yīng)該根據(jù)內(nèi)容所表示的東西來標(biāo)記內(nèi)容,而樣式表應(yīng)該用于美化內(nèi)容。而這一點(diǎn)與xhtml分離文檔結(jié)構(gòu)和表示形式的目標(biāo)是一致,(在xhtml 2.0將除去b 、 i 和 img 標(biāo)記(以及 big 、 small 和 tt ),甚至不贊成使用 br ,準(zhǔn)備從將來的發(fā)行版中除去它。原因在于大多數(shù)標(biāo)記都是表示性的。它們的唯一目的就是給予瀏覽器指令,規(guī)定有關(guān)其內(nèi)容應(yīng)該如何顯示,但卻完全未提供有關(guān)其內(nèi)容是什么的信息。) 因此它們成了最好的合作伙伴。更多關(guān)于xhtml2.0的資料,請參見:http://www-128.ibm.com/developerworks/cn/xml/x-wa-xhtml/index.html  

css過去經(jīng)常被用來定義字體的屬性,而現(xiàn)在新標(biāo)準(zhǔn)中我們將用它來控制整個(gè)頁面的顯示。然而,我們必須需要做一些不同于以往的處理來適應(yīng)這種新的變化,如:使用div來布局而不是表格,使用結(jié)構(gòu)化、語義化的標(biāo)記等等。由于采用新的處理方式,我們現(xiàn)在可以輕松地設(shè)計(jì)出可重用的css(同一個(gè)樣式文件多個(gè)web站點(diǎn)中使用)以及可換膚的web站點(diǎn)(一個(gè)站點(diǎn)使用多種不同風(fēng)格的樣式)。 

示例請見四川省建設(shè)廳信息門戶,界面切換在右上方,如圖1所示。由于時(shí)間原因,并未通過xhtml和css校驗(yàn),但原理是一樣的。 
圖1:界面樣式切換 

1、重新設(shè)計(jì)站點(diǎn)的html 
首先我們要去掉網(wǎng)頁中有關(guān)外觀的標(biāo)簽。在以前的代碼中,我們常用一個(gè)表格用來在頁面的內(nèi)容中創(chuàng)建一個(gè)有邊框的區(qū)塊,我們還使用〈b〉來加粗文本。用<font color=red>來改變字體顏色等等。用<br>標(biāo)簽來創(chuàng)建段落等。 

而要做出能適應(yīng)xhtml標(biāo)準(zhǔn)和能隨意換膚的網(wǎng)站,我們須要避免在頁面中使用有關(guān)外觀的標(biāo)簽。使文檔結(jié)構(gòu)和表示形式分離的一個(gè)最大的好處就是它使文檔在沒有css時(shí),仍然可以使用和訪問。表現(xiàn)(就是文檔看上去的樣子)在一個(gè)支持性好的瀏覽器中也將呈現(xiàn)的不一樣,但是它的內(nèi)容將永遠(yuǎn)不變,大多數(shù)情況,對于訪問網(wǎng)站的人來說,內(nèi)容實(shí)際上比表現(xiàn)的方式更加重要。這就是為什么給那些支持性不好的瀏覽器發(fā)送一個(gè)沒有樣式的頁面,要比把他們排斥在外要好的原因。 

現(xiàn)在比較流行的做法是使用div、span等標(biāo)簽來布局整個(gè)頁面,而table,ul,pre,code等標(biāo)簽來顯示數(shù)據(jù),用ul是用來顯示無序的列表信息,而ol顯示有序的列表信息。這將比用table來顯示一個(gè)列表更有語義上的意義,同時(shí)ul和ol在瀏覽器中比table標(biāo)簽更快有下載速度,并且相對于table,css對ul和ol的外觀控制更加靈活。當(dāng)然對于復(fù)雜的數(shù)據(jù),比如報(bào)表,用table來顯示仍然是不二的選擇。 

2、建立基本的通用樣式
由于所有的xhtml文件都是由各種各樣的html標(biāo)簽和標(biāo)簽內(nèi)的文字組成,而一些基本的標(biāo)簽在每個(gè)xhtml文件都存在的,如:body、table、td、div、h1—h6、ul、li、input等等,如果我們定義好了這些標(biāo)簽的css樣式,如:字體,字號,行距,背景色,背景圖等等,我們就有了一個(gè)基本的樣式風(fēng)格,就如同在word或powerpoint中的主題,每個(gè)主題就是一套風(fēng)格樣式。 因此,我們可以根據(jù)基本的html標(biāo)簽定義出一個(gè)通用的樣式來,例如建立一個(gè)sitecomm.css文件,定義如下: 

/*文中的樣式表語法中的"("及""為示例所用,因?yàn)閎log每次保存花括號都出現(xiàn)錯(cuò)誤。請?jiān)谑褂脮r(shí)改為正確的符號*/ 
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; 


這樣的一個(gè)樣式文件,可以適用于任何一個(gè)網(wǎng)頁,只要添加引用我們都可以立刻看見效果。 

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

3、定義好頁面的結(jié)構(gòu)布局
很多時(shí)候,我們在制作網(wǎng)頁時(shí)總是從視覺出發(fā),先用photoshop或者fireworks畫出來、思考頁面的配色,做一些很炫的效果,很精美的圖片,再切割成小圖。然后通過編輯html將所有設(shè)計(jì)變成頁面。 

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

因此外觀并不是最重要的。一個(gè)結(jié)構(gòu)良好的xhtml可以通過css的不同定義,顯示成任何外觀,顯示在任何支持xhtml的網(wǎng)絡(luò)設(shè)備上。 

通過分析我們可以發(fā)現(xiàn),對于大多數(shù)web網(wǎng)站來說,頁面都是由一些類似的內(nèi)容區(qū)塊所組成,如: 

站點(diǎn)標(biāo)題區(qū) 
站點(diǎn)導(dǎo)航(主菜單,次及菜單) 
功能區(qū)(例如搜索框、用戶登陸區(qū)) 
內(nèi)容區(qū)(文章正文或者文章、產(chǎn)品列表) 
頁腳(版權(quán)和有關(guān)法律聲明) 
然后我們用div標(biāo)簽來將這些區(qū)塊包含起來,類似這樣:

<div class="pageheader">站點(diǎn)標(biāo)題 
</div> 
<div class="pagenav">站點(diǎn)導(dǎo)航 
</div> 
<div class="catalognav">欄目導(dǎo)航 
</div> 
<div class="pagecontent">文章正文或列表等等 
</div> 
<div class="pagesearch">查詢 
</div> 
<div class="pagebottom">頁腳 
</div> 
通過css的定義,我們可以將這些div標(biāo)簽包含的區(qū)塊放在頁面上任何位置,再指定這些塊的顏色、字體、邊框、背景以及對齊屬性等等。如:我們再建立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; 
) 
如此,我們定義了一個(gè)三列的頁面布局:頂部自適應(yīng)頁面寬度。中間三列自適應(yīng)頁面。底部自適應(yīng)頁面寬度,當(dāng)然您也可以將頁面定義為中間只有兩列等等,您只需要調(diào)整layout.css文件即可,這樣您可以靈活的修改頁面的布局,讓頁面外觀發(fā)生根本的變化,而不必動(dòng)到html源文件,這一點(diǎn)對于服務(wù)器端生成代碼的程序尤為重要。 更多關(guān)于css布局的資料,請參見:http://www.w3cn.org/article/layout/2004/55.html  

4、定義站點(diǎn)獨(dú)有的樣式 
經(jīng)過以上兩步之后,我們已經(jīng)有了一個(gè)大概的頁面主題外觀,接下來我們要設(shè)計(jì)站點(diǎn)的細(xì)節(jié),比如,對站點(diǎn)導(dǎo)航條我們想使用與普通超鏈接不一樣的樣式,如:藍(lán)色、加粗、字體更大、再加上有立體效果的背景圖:

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

 對于欄目導(dǎo)航,我們想給每個(gè)欄目連接加上背景色,并且有鼠標(biāo)滑過和移出的效果。 欄目導(dǎo)航區(qū)的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> 
欄目導(dǎo)航區(qū)對應(yīng)的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; 

接下來我們還需要定義其他的站點(diǎn)獨(dú)有的樣式,如欄目標(biāo)題、文章列表、文章正文、時(shí)間、注釋、提示、錯(cuò)誤等等各種樣式,而且這些樣式多以類和id來作為選擇符。這些樣式都是針對某個(gè)站點(diǎn)的,不適用于其他的站點(diǎn),然后我們將這些樣式保存為sitestyle.css文件。 

這樣我們就有了3個(gè)css文件。 sitecomm.css:任何站點(diǎn)都可以使用的樣式文件,定義了常用的html標(biāo)簽樣式。 sitelayout.css:站點(diǎn)的布局文件,能適用于大多數(shù)的網(wǎng)站結(jié)構(gòu),具體細(xì)節(jié)需要調(diào)整。 sitestyle.css:站點(diǎn)獨(dú)有的樣式文件,能顯示出本站點(diǎn)獨(dú)特的風(fēng)格和適應(yīng)于站點(diǎn)的內(nèi)容。 

然后我們采用外部調(diào)用法:將這些樣式表與頁面關(guān)聯(lián)起來。 

<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標(biāo)準(zhǔn)的設(shè)計(jì)中,我們使用外部調(diào)用法,好處不言而喻,html文檔會(huì)變得非常的小,css文件被存在瀏覽器的緩存中,僅僅需要下載一次即可,并且你只需要修改一個(gè)文件就可以改變整個(gè)網(wǎng)站的樣式。 

并且這樣我們才能通過客戶端腳本,或者服務(wù)器端代碼方便地改變樣式表的連接地址,而快捷地實(shí)現(xiàn)換膚功能。 

5、根據(jù)用戶設(shè)置換膚
網(wǎng)站樣式切換在網(wǎng)上已有很多現(xiàn)成的javascript換膚代碼,一般使用cookie來保存用戶設(shè)置,在請求頁面時(shí),改變頁面的css文件連接即可。 

而服務(wù)器端的換膚做法是根據(jù)用戶請求,動(dòng)態(tài)地生成css文件連接,用戶設(shè)置一般保存在數(shù)據(jù)庫或者cookie中。 

由于我們使用了3個(gè)不同功能css樣式文件來顯示網(wǎng)站,所以我們可以設(shè)計(jì)出更加靈活的換膚方案和組合,如只切換主題而保留布局,和切換布局和主題,以及各種細(xì)節(jié)等等。 

使用3個(gè)css樣式文件額外的好處是,每當(dāng)我們設(shè)計(jì)一個(gè)新的系統(tǒng),它的樣式風(fēng)格特性幾乎都可以大部分應(yīng)用到以前的系統(tǒng)上(因?yàn)槲覀儾捎么笾孪嗤捻撁娼Y(jié)構(gòu)模型,雖然顯示千差萬別,但主要的框架是一樣的),這樣我們就可以積累出相當(dāng)數(shù)量和相當(dāng)風(fēng)豐富的界面樣式庫來。 

6、通過校驗(yàn)
整個(gè)過程的最后一個(gè)步驟就是對xhtml/css代碼進(jìn)行驗(yàn)證。有很多種的工具都可以幫你對二者進(jìn)行驗(yàn)證。 

例如dreamweaver mx即可檢查我的樣本代碼的可訪問性。你可以通過在文件菜單中選擇check page然后選擇check accessibility來實(shí)現(xiàn)。任何錯(cuò)誤或是警告都會(huì)顯示出來,還包括出現(xiàn)位置的行號以及對問題簡要的解釋。你可以在dreamweaver mx的reference工具中找到更多關(guān)于這些錯(cuò)誤和警告的內(nèi)容。 

而microsoft asp.net 2.0 具有很多有用的功能,也能幫助我們設(shè)計(jì)和生成符合 xhtml 和可訪問性標(biāo)準(zhǔn)的 web 站點(diǎn)。 使用 web 標(biāo)準(zhǔn)生成 asp.net 2.0 web 站點(diǎn) http://www.microsoft.com/china/msdn/library/webservices/asp.net/aspnetusstan.mspx  

此外,world wide web consortium (w3c)提供了超過30個(gè)的可訪問性評估工具的鏈接。w3c還提供了針對html和css的基于web的免費(fèi)驗(yàn)證器。 

因此如果想要改善網(wǎng)站友好度,可用性,可訪問性等,可將新標(biāo)準(zhǔn)視為一個(gè)機(jī)會(huì),而不是一個(gè)障礙。要了解更多關(guān)于新標(biāo)準(zhǔn)和可訪問性的內(nèi)容,你可以去看一看world wide web consortium中的web accessibility initiative (wai)。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 封丘县| 巍山| 揭东县| 金昌市| 邵武市| 中方县| 济源市| 京山县| 和硕县| 和平县| 桐庐县| 天津市| 景泰县| 区。| 鄂伦春自治旗| 井研县| 嘉峪关市| 湖南省| 涟水县| 进贤县| 河池市| 区。| 吴江市| 东辽县| 新密市| 黔南| 铁岭市| 沾化县| 来宾市| 奉贤区| 襄城县| 尉犁县| 松桃| 泽库县| 鹿邑县| 上高县| 稷山县| 闽侯县| 萨迦县| 车致| 芜湖市|