首頁  >  文章  >  web前端  >  如何使用CSS來進行網頁排版

如何使用CSS來進行網頁排版

巴扎黑
巴扎黑原創
2017-03-30 15:20:152643瀏覽

第1天:選什麼樣的DOCTYPE

前言

大家好!這個系列文章是按阿捷自己製作w3cn.org站點的過程編寫的。之前阿捷也一直沒有製作過一個真正符合web標準的網站。現在邊參考國外資料邊製作,同時把過程中的心得和經驗記錄下來,希望對大家有點幫助。好了,讓我們開始吧。

第一天

開始製作符合標準的站點,第一件事情就是宣告符合自己需要的DOCTYPE。

查看本站首頁原始程式碼,可以看到第一行為:



打開一些符合標準的站點,例如著名web設計軟體開發商Macromedia,設計大師Zeldman的個人網站,會發現同樣的程式碼。而其他符合標準的網站(例如k10k.net)的程式碼則如下:



那麼這些程式碼有什麼意義?一定要放置嗎?

什麼是DOCTYPE

上面這些程式碼我們稱呼做DOCTYPE宣告。 DOCTYPE是document type(文件類型)的簡寫,用來說明你用的XHTML或HTML是什麼版本。

其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文檔類型定義,裡麵包含了文檔的規則,瀏覽器就根據你定義的DTD來解釋你頁面的標識,並展現出來。

要建立符合標準的網頁,DOCTYPE聲明是必不可少的關鍵組成部分;除非你的XHTML確定了一個正確的DOCTYPE,否則你的標識和CSS都不會生效。

XHTML 1.0 提供了三種DTD宣告可供選擇:

過渡的(Transitional):要求非常寬鬆的DTD,它允許你繼續使用HTML4.01的標識(但是要符合xhtml的寫法)。完整代碼如下:



嚴格的(Strict):要求嚴格的DTD,你不能使用任何表現層的識別和屬性,例如
。完整代碼如下:



框架的(Frameset):專門針對框架頁面設計使用的DTD,如果你的頁面中包含有框架,需要採用這種DTD。完整程式碼如下:


我們選擇什麼樣的DOCTYPE

理想情況當然是嚴格的DTD,但對於我們大多數剛接觸web標準的設計師來說,過渡的DTD(XHTML 1.0 Transitional)是目前理想選擇(包括本站,使用的也是過渡型DTD)。因為這種DTD也允許我們使用表現層的識別、元素和屬性,也比較容易通過W3C的程式碼校驗。

註:上面所說的"表現層的標識、屬性"是指那些純粹用來控製表現的tag,例如用於排版的表格、背景顏色標識等。在XHTML中標識是用來表示結構的,而不是用來實現表現形式,我們過渡的目的是最終實現資料和表現相分離。

打個比方:人體模特兒換衣服。模特兒就好比數據,衣服則是表現形式,模特兒和衣服是分離的,這樣你就可以隨意換衣服。而原來HTML4中,數據和表現是混雜在一起的,要一次性換個表現形式非常困難。呵呵,有點抽象了,這個概念需要我們在應用過程中逐步領會。

補充

DOCTYPE聲明必須放在每個XHTML文件最頂部,在所有程式碼和識別之上。

更多細節可以訪問W3C的網站

#

第2天:什麼是名字空間

DOCTYPE宣告好以後,接下來的程式碼是:



通常我們HTML4.0的程式碼只是,這裡的"xmlns"是什麼呢?

這個"xmlns"是XHTML namespace的縮寫,叫做"名字空間"宣告。名字空間是什麼作用呢?阿捷自己的理解是:

由於xml允許你自己定義自己的標識,你定義的標識和其他人定義的標識有可能相同,但表示不同的意義。當文件交換或共享的時候就容易產生錯誤。為了避免這種錯誤發生,XML採用名字空間聲明,讓你透過一個網址指向來辨識你的標誌。例如:

小王和小李都定義了一個標識,如果小王的名字空間是"http://www.xiaowang.com",小李的名字空間是"http ://www.xiaoli.com",那麼當兩個文件交換資料時,也不會混淆標識,因為它屬於不同的名字空間。

更通俗的解釋是:名字空間就是要為文件做一個標記,告訴別人,這個文件是屬於誰的。只不過這個"誰"用了一個網址來代替。

XHTML是HTML轉換成XML的語言,它需要符合XML文件規則,因此也需要定義名字空間。又因為XHTML1.0不能自訂標識,所以它的名字空間都相同,就是"http://www.w3.org/1999/xhtml"。如果你還不太理解也不要緊,目前階段我們只要照抄程式碼就可以了。

後面的lang="gb2312",指定你的文件用簡體中文。

第3天:定義語言編碼

第三個步驟是定義你的語言編碼,類似這樣:


以上是如何使用CSS來進行網頁排版的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn