今天開始,認真學習前端技術,哈哈哈~~~加油~~~
推薦這本《CSS網站布局實錄》(第2版)給初級入門選手,雖然這本書年代有點久遠,不過很經典。
註明一下:這裡講述的CSS均為CSS 2.0版本。
第一章 Web標準與CSS布局概述
1.1 Web標準的曆史及發展
1.1.1 Web標準
Web標準是由W3C(World Wide Web Consortium)和其他標準化組織制定的一套規範集合,包含一系列標準,包含了HTML、XHTML、JavaScript以及CSS等。
Web標準的目的在於建立一個統一的用於Web表現層的技術標準,以便通過不同瀏覽器或終端裝置向終端使用者展示資訊內容。
1.1.2 Web表現層技術
Web本身是由一套非常複雜的技術架構組成,但其最終目的是面向瀏覽器或應用程式的使用者,並為後者提供一個可視化的、便於操作的資訊互動平台。而表現層技術指的就是將資訊展示給使用者並提供給使用者互動行為的技術。簡單理解為表現就是樣式,技術層面上是一堆程式碼,而表現層帶帶來的是視覺上所看到的東西。
目前,由W3C制定的Web標準正是這樣一個表現層技術的集合,同時也是目前唯一的跨平台跨用戶端的技術。
1.2 Web標準的構成
Web標準由三大部分組成的標準集:結構(Structure)、表現(Presentation)以及行為(Behavior)。
1.2.1 結構(Structure)
結構用來對網頁中用到的資訊進行整理與分類。用於結構化設計的Web標準技術主要有這幾種:HTML、XML、XHTML。
1. HTML(Hyper Text Mark-up Language)超文字標記語言 (HTML)
這是Web最基本的描述語言。HTML文本是由HTML命令標籤組成的描述性文本,HTML標籤可以解說文字、圖形、動畫、聲音、表格、連結等。HTML的結構包括頭部(Head)、主體(Body)兩大部分。頭部描述瀏覽器所需的資訊,主體包含所要展現的具體內容。
2. XML(The Extensible Markup Language)可延伸標記語言 (XML)
XML最初設計的目的是為了彌補HTML的不足,以其強大的擴張性滿足網路資訊發布的需要,後來逐漸用於網路資料的轉換及描述。
3. XHTML(The Extensible HypterText Markup Language)可擴充超文字標記語言 (HTML)
XHTML是更嚴謹更純淨的HTML版本。簡單來說,建立XHTML的目的就是實現HTML向XML的過渡。
1.2.2 表現(Presentation)
表現技術用於對已經被結構化的資訊進行顯示上的控制,包含版式、顏色、大小等樣式控制。目前的Web展示中,用於表現的Web標準技術主要就是CSS技術。
CSS(Cascading Style Sheets)層疊樣式表
W3C建立CSS標準的目的是希望以CSS來描述整個頁面的布局設計,與HTML所負責的結構分開。使用CSS布局與XHTML所描述的資訊結構相結合,能夠協助設計師分離出表現與內容,使網站的構建及維護更加容易。
1.2.3 行為(Behavior)
行為是指對整個文檔內部的一個模型進行定義及互動行為的編寫,用於編寫使用者可以進行互動式操作的文檔。表現行為的Web標準技術主要有:DOM和ECMAScript。
1. DOM(Document Object Model)文件物件模型
根據W3C DOM規範,DOM是一種讓瀏覽器與Web內容結構之間溝通介面,使得可以訪問頁面上的標準組件。給予Web設計師和開發人員一個標準的方法,讓他們來訪問網站中的資料、指令碼和表現層對象。
2. ECMAScript指令碼語言(JavaScript的擴充指令碼語言)
它是由CMA(Computer Manufacturers Association)制定的一種標準指令碼語言(JavaScript),用於實現具體介面上對象的互動操作。
1.3 CSS布局與table布局的區別
從目前的Web標準來看,最理想的技術結構式使用HTML或XHTML來設計網頁,推薦使用XHTML以更嚴謹的語言編寫結構,並使用CSS來完成網頁的布局表現。
1.3.1 CSS的優勢
1.3.2 傳統的table布局與CSS布局
實際上,傳統table布局方式只是利用了HTML的table元素所具有的零邊框特性。由於table元素可以在顯示時,使得儲存格的邊框和間距被設定為0,即不顯示邊框,所以可以將網頁中的各個元素按照版式劃分後,分別放入表格的各個儲存格中,從而實現了複雜的排版組合效果。
table表格版面配置代碼最常見的是在HTML標籤之間嵌入一些設計代碼,比如width="100%", border="0"等,而這種混合式編寫的大量樣式設計代碼混雜在表格儲存格中,使得其可讀性大大降低,維護起來成本也很高。
table布局的核心在於設計一個能滿足版式要求的表格結構,將內容裝入每個儲存格中,間距及空格則通過許多透明gif進行佔位來實現,最終的結構式一個複雜的表格,而這樣複雜的表格設計使得網頁檔案量龐大,不利於設計與修改,最終導致瀏覽器下載及解析速度過慢。
而使用CSS布局則可以從根本上改變這種狀況。CSS布局的思維方法不再放入table元素的設計中,取而代之的是HTML中的另一個元素div。div可以理解為圖層或者一個塊,div是一種比表格更加簡單的元素。div的功能僅僅用於將一段資訊給標記出來,用於後期的樣式定義。
在使用div時,無須像表格那樣通過其內部的儲存格來組織版式。通過CSS強大的樣式定義功能,可以比表格更簡單、更自由地控制頁面的版式及樣式。下面列出一部分div樣式設計代碼:
XHTML部分:
....
CSS部分:
{ :; :; :; :; :; :; }
.content{}地區表示在CSS中定義了一個名為content的樣式名稱,它用於對頁面中所有class為content的對象進行樣式控制。
1.4 向Web標準過渡
Web標準的目的是實現網頁結構、表現、行為的分離,達到最佳架構,提供網站可用性與使用者體驗。用下面幾個標準及方法進行網站構建是最為理想的選擇。
1.4.1 從HTML轉向XHTML
為什麼要使用XHTML
事實上,XHTML就是HTML的下一個版本,用於替代HTML並協助轉向XML的一套過渡型標記語言。XHTML的設計目的並不是為了最終表現,它主要用於對網頁內容進行結構設計,其嚴謹文法結構有利於瀏覽器進行解析出來,它是一門面向文檔結構的設計語言。
目前,XHTML的使用標準主要包含Transitional、Strict和Frameset三種應用方式。
- Transitional方式:一種鬆散過渡型的XHTML應用,它允許使用者使用部分HTML標籤來編寫XHTML文檔。推薦使用這種方法。
- Strict方式:一種嚴格型的應用方式,XHTML中不能使用任何樣式表現的標籤及屬性。
- Frameset方式:針對框架頁的應用方式。
1.4.2 發揮CSS的作用
1. 合理的CSS檔案結構
雖然CSS做到了樣式設計與內容的分離,但CSS檔案本身也應該擁有良好的階層及規範,目的是進一步改善樣式設計的可維護性。
2. 繼承與重用的優勢
使用CSS的優勢就在於其良好的重用特性,一段CSS設計代碼可以供多個地區同時使用。除了重用功能外,CSS還可以實作類別似於物件導向程式設計中的繼承機制,通過繼承機制能夠進一步地完善網站的樣式結構。
3. 設計跨平台的代碼
CSS也有美中不足,由於不同品牌瀏覽器及不同版本之間的渲染方式不同,各自對CSS的解析也存在著一定差異。針對這些原因,CSS設計也應當具有一定的跨平台相容特性,編碼時應盡量減少生僻屬性的使用,如果想相容舊版本的瀏覽器,也應當注意留有一定的CSS hack代碼。
CSS hack可以簡單地翻譯為CSS駭客程式。這種類似於期盼瀏覽器的編碼收到,可以有效修補瀏覽器的解析問題。
4. 具有良好可用性的CSS樣式設計
可用性的目標是使得互動產品(軟體、網站)對使用者的需求提供最大限度的滿足。具有良好可用性的CSS樣式設計的目的就是希望通過良好的設計,創造出更好的互動式網站,以便使用者使用。
5. 使用基於DOM的指令碼語言來編寫互動
DOM的產生同樣是為了實現指令碼語言的跨平台與跨瀏覽器應用。就目前來說,大部分瀏覽器都支援標準的DOM。使用符合DOM的指令碼語言,基本上不再需要檢測瀏覽器的不同版本而去編寫幾套不同的代碼,只要符合DOM的瀏覽器,相同的代碼就能夠完成所有可支援的操作。目前的JavaScrit是符合DOM標準的指令碼語言。
1.5 常見問題
1.5.1 使用Web標準後表格還有用嗎
1. 關於表格
使用Web標準後,並不是說排除表格的使用,只是使用表格作為網頁排版,布局頁面元素是不合理的,表格式用來顯示資料的。表格職能不在於進行網頁布局,布局任務應該交給CSS來處理。
2. 關於其他元素
按照使用經驗,把XHTML標準中的一些元素分為三大類。
指的是div、span等元素,他們的主要功能是用來布局整個頁面。
指的是table、ul、pre、code等元素,他們是一些資訊顯示與控制方面的元素。
使用它們可用來實現一些特殊功能。
1.5.2 可以繼續使用HTML來設計網頁嗎
答案是肯定的。只所以推薦使用XHTML是因為HTML的設計形式已經不能滿足表現與內容分離的網站架構原則。如果繼續使用HTML來構建網站,從最終目標上說是沒有差別的。
1.5.3 為什麼不直接使用到XML
XML是未來資料的描述格式,就目前而言,不適合直接應用XML來構建網站,因為在技術上難度較高。
1.5.4 什麼叫網站重構
網站重構可以理解為改變老式的HTML表格版面配置方式,使用新的符合Web標準的網站結構及代碼編寫方法。更深一層的意義時,希望通過Web標準來提供一個加大網站效益的介面,這個效益可以簡單理解為兩個方面:可擴充性及可維護性。
未完待續.......