css網(wǎng)站布局實錄學習筆記第一部分

今天開始,認真學習前端技術,哈哈哈~~~加油~~~
推薦這本《CSS網(wǎng)站布局實錄》(第2版)給初級入門選手,雖然這本書年代有點久遠,不過很經(jīng)典。
注明一下:這里講述的CSS均為CSS 2.0版本。
第一章 Web標準與CSS布局概述
1.1 Web標準的歷史及發(fā)展
1.1.1 Web標準
Web標準是由W3C(World Wide Web Consortium)和其他標準化組織制定的一套規(guī)范集合,包含一系列標準,包含了HTML、XHTML、JavaScript以及CSS等。
Web標準的目的在于創(chuàng)建一個統(tǒng)一的用于Web表現(xiàn)層的技術標準,以便通過不同瀏覽器或終端設備向最終用戶展示信息內容。
1.1.2 Web表現(xiàn)層技術
Web本身是由一套非常復雜的技術架構組成,但其最終目的是面向瀏覽器或應用程序的用戶,并為后者提供一個可視化的、便于操作的信息交互平臺。而表現(xiàn)層技術指的就是將信息展示給用戶并提供給用戶交互行為的技術。簡單理解為表現(xiàn)就是樣式,技術層面上是一堆程序代碼,而表現(xiàn)層帶帶來的是視覺上所看到的東西。
目前,由W3C制定的Web標準正是這樣一個表現(xiàn)層技術的集合,同時也是目前唯一的跨平臺跨客戶端的技術。
1.2 Web標準的構成
Web標準由三大部分組成的標準集:結構(Structure)、表現(xiàn)(Presentation)以及行為(Behavior)。
1.2.1 結構(Structure)
結構用來對網(wǎng)頁中用到的信息進行整理與分類。用于結構化設計的Web標準技術主要有這幾種:HTML、XML、XHTML。
1. HTML(Hyper Text Mark-up Language)超文本標記語言
這是Web最基本的描述語言。HTML文本是由HTML命令標簽組成的描述性文本,HTML標簽可以說明文字、圖形、動畫、聲音、表格、鏈接等。HTML的結構包括頭部(Head)、主體(Body)兩大部分。頭部描述瀏覽器所需的信息,主體包含所要展現(xiàn)的具體內容。
2. XML(The Extensible Markup Language)可擴展標記語言
XML最初設計的目的是為了彌補HTML的不足,以其強大的擴張性滿足網(wǎng)絡信息發(fā)布的需要,后來逐漸用于網(wǎng)絡數(shù)據(jù)的轉換及描述。
3. XHTML(The Extensible HypterText Markup Language)可擴展超文本標記語言
XHTML是更嚴謹更純凈的HTML版本。簡單來說,建立XHTML的目的就是實現(xiàn)HTML向XML的過渡。
1.2.2 表現(xiàn)(Presentation)
表現(xiàn)技術用于對已經(jīng)被結構化的信息進行顯示上的控制,包含版式、顏色、大小等樣式控制。目前的Web展示中,用于表現(xiàn)的Web標準技術主要就是CSS技術。
CSS(Cascading Style Sheets)層疊樣式表
W3C創(chuàng)建CSS標準的目的是希望以CSS來描述整個頁面的布局設計,與HTML所負責的結構分開。使用CSS布局與XHTML所描述的信息結構相結合,能夠幫助設計師分離出表現(xiàn)與內容,使站點的構建及維護更加容易。
1.2.3 行為(Behavior)
行為是指對整個文檔內部的一個模型進行定義及交互行為的編寫,用于編寫用戶可以進行交互式操作的文檔。表現(xiàn)行為的Web標準技術主要有:DOM和ECMAScript。
1. DOM(Document Object Model)文檔對象模型
根據(jù)W3C DOM規(guī)范,DOM是一種讓瀏覽器與Web內容結構之間溝通接口,使得可以訪問頁面上的標準組件。給予Web設計師和開發(fā)者一個標準的方法,讓他們來訪問站點中的數(shù)據(jù)、腳本和表現(xiàn)層對象。
2. ECMAScript腳本語言(JavaScript的擴展腳本語言)
它是由CMA(Computer Manufacturers Association)制定的一種標準腳本語言(JavaScript),用于實現(xiàn)具體界面上對象的交互操作。
1.3 CSS布局與table布局的區(qū)別
從目前的Web標準來看,最理想的技術結構式使用HTML或XHTML來設計網(wǎng)頁,推薦使用XHTML以更嚴謹?shù)恼Z言編寫結構,并使用CSS來完成網(wǎng)頁的布局表現(xiàn)。
1.3.1 CSS的優(yōu)勢
CSS是控制網(wǎng)頁布局樣式的基礎,并真正能夠做到網(wǎng)頁表現(xiàn)與內容分離的一種樣式設計語言。相對于傳統(tǒng)HTML對樣式的控制而言,CSS能夠對網(wǎng)頁中的對象的位置進行像素級的精確控制,支持幾乎所有的字體、字號樣式,以及擁有對網(wǎng)頁對象盒模型樣式的控制能力,并能夠進行初步頁面交互設計。歸納起來,CSS有以下幾個主要優(yōu)勢:
瀏覽器支持完善:CSS樣式設計出來的網(wǎng)頁,在眾多平臺及瀏覽器下對樣式的表現(xiàn)最為接近。
表現(xiàn)與結構分離;在CSS設計代碼中,通過CSS的內部導入(Import)特性,可以使設計代碼根據(jù)設計需求進行二次分離。
樣式設計控制功能強大:對網(wǎng)頁對象的位置排版,能夠進行像素級的精確控制等。
繼承性能優(yōu)越(層疊處理):CSS的代碼在瀏覽器的解析順序上,具有類似OOP面向對象的基本特性,瀏覽器能根據(jù)CSS的級別,按照對同一元素定義的先后進行應用多個樣式。
1.3.2 傳統(tǒng)的table布局與CSS布局
實際上,傳統(tǒng)table布局方式只是利用了HTML的table元素所具有的零邊框特性。由于table元素可以在顯示時,使得單元格的邊框和間距被設置為0,即不顯示邊框,所以可以將網(wǎng)頁中的各個元素按照版式劃分后,分別放入表格的各個單元格中,從而實現(xiàn)了復雜的排版組合效果。
table表格布局代碼最常見的是在HTML標簽之間嵌入一些設計代碼,比如width="100%", border="0"等,而這種混合式編寫的大量樣式設計代碼混雜在表格單元格中,使得其可讀性大大降低,維護起來成本也很高。
table布局的核心在于設計一個能滿足版式要求的表格結構,將內容裝入每個單元格中,間距及空格則通過許多透明gif進行占位來實現(xiàn),最終的結構式一個復雜的表格,而這樣復雜的表格設計使得網(wǎng)頁文件量龐大,不利于設計與修改,最終導致瀏覽器下載及解析速度過慢。
而使用CSS布局則可以從根本上改變這種狀況。CSS布局的思維方法不再放入table元素的設計中,取而代之的是HTML中的另一個元素div。div可以理解為圖層或者一個塊,div是一種比表格更加簡單的元素。div的功能僅僅用于將一段信息給標記出來,用于后期的樣式定義。
在使用div時,無須像表格那樣通過其內部的單元格來組織版式。通過CSS強大的樣式定義功能,可以比表格更簡單、更自由地控制頁面的版式及樣式。下面列出一部分div樣式設計代碼:
XHTML部分:
/* 表示頁面中定義了一個div,并使用content這個class名稱 */
<div class="content">....</div>
CSS部分:
[CSS]</p> <p>.content {
float: right; /* 表示div浮動在當前位置的右側 */
margin: 10px 20px 10px 10px; /* 設置外邊距屬性 */
text-align: center; /* div里的文字居中顯示 */
line-height: 160%; /* div中的文字行高為原高的160% */
width: 50%; /* 表示這個div的寬度為所處的上一層位置的50% */
background-color: blue; /* 表示div的背景色為藍色 */
}
.content{}區(qū)域表示在CSS中定義了一個名為content的樣式名稱,它用于對頁面中所有class為content的對象進行樣式控制。
1.4 向Web標準過渡
Web標準的目的是實現(xiàn)網(wǎng)頁結構、表現(xiàn)、行為的分離,達到最佳架構,提供網(wǎng)站可用性與用戶體驗。用下面幾個標準及方法進行網(wǎng)站構建是最為理想的選擇。
1.4.1 從HTML轉向XHTML
為什么要使用XHTML
事實上,XHTML就是HTML的下一個版本,用于替代HTML并幫助轉向XML的一套過渡型標記語言。XHTML的設計目的并不是為了最終表現(xiàn),它主要用于對網(wǎng)頁內容進行結構設計,其嚴謹語法結構有利于瀏覽器進行解析出來,它是一門面向文檔結構的設計語言。
目前,XHTML的使用標準主要包含Transitional、Strict和Frameset三種應用方式。
Transitional方式:一種松散過渡型的XHTML應用,它允許用戶使用部分HTML標簽來編寫XHTML文檔。推薦使用這種方法。
Strict方式:一種嚴格型的應用方式,XHTML中不能使用任何樣式表現(xiàn)的標簽及屬性。
Frameset方式:針對框架網(wǎng)頁的應用方式。
1.4.2 發(fā)揮CSS的作用
1. 合理的CSS文件結構
雖然CSS做到了樣式設計與內容的分離,但CSS文件本身也應該擁有良好的層次結構及規(guī)范,目的是進一步改善樣式設計的可維護性。
2. 繼承與重用的優(yōu)勢
使用CSS的優(yōu)勢就在于其良好的重用特性,一段CSS設計代碼可以供多個區(qū)域同時使用。除了重用功能外,CSS還可以實現(xiàn)類似于面向對象程序設計中的繼承機制,通過繼承機制能夠進一步地完善網(wǎng)站的樣式結構。
3. 設計跨平臺的代碼
CSS也有美中不足,由于不同品牌瀏覽器及不同版本之間的渲染方式不同,各自對CSS的解析也存在著一定差異。針對這些原因,CSS設計也應當具有一定的跨平臺兼容特性,編碼時應盡量減少生僻屬性的使用,如果想兼容舊版本的瀏覽器,也應當注意留有一定的CSS hack代碼。
CSS hack可以簡單地翻譯為CSS黑客程序。這種類似于期盼瀏覽器的編碼收到,可以有效的修補瀏覽器的解析問題。
4. 具有良好可用性的CSS樣式設計
可用性的目標是使得交互產(chǎn)品(軟件、網(wǎng)站)對用戶的需求提供最大限度的滿足。具有良好可用性的CSS樣式設計的目的就是希望通過良好的設計,創(chuàng)造出更好的交互式網(wǎng)站,以便用戶使用。
5. 使用基于DOM的腳本語言來編寫交互
DOM的產(chǎn)生同樣是為了實現(xiàn)腳本語言的跨平臺與跨瀏覽器應用。就目前來說,大部分瀏覽器都支持標準的DOM。使用符合DOM的腳本語言,基本上不再需要檢測瀏覽器的不同版本而去編寫幾套不同的代碼,只要符合DOM的瀏覽器,相同的代碼就能夠完成所有可支持的操作。目前的JavaScrit是符合DOM標準的腳本語言。
1.5 常見問題
1.5.1 使用Web標準后表格還有用嗎
1. 關于表格
使用Web標準后,并不是說排除表格的使用,只是使用表格作為網(wǎng)頁排版,布局頁面元素是不合理的,表格式用來顯示數(shù)據(jù)的。表格職能不在于進行網(wǎng)頁布局,布局任務應該交給CSS來處理。
2. 關于其他元素
按照使用經(jīng)驗,把XHTML標準中的一些元素分為三大類。
輔助布局設計元素
指的是div、span等元素,他們的主要功能是用來布局整個頁面。
結構化元素或者信息元素
指的是table、ul、pre、code等元素,他們是一些信息顯示與控制方面的元素。
a、meta元件
使用它們可用來實現(xiàn)一些特殊功能。
1.5.2 可以繼續(xù)使用HTML來設計網(wǎng)頁嗎
答案是肯定的。只所以推薦使用XHTML是因為HTML的設計形式已經(jīng)不能滿足表現(xiàn)與內容分離的網(wǎng)站架構原則。如果繼續(xù)使用HTML來構建網(wǎng)站,從最終目標上說是沒有差別的。
1.5.3 為什么不直接使用到XML
XML是未來數(shù)據(jù)的描述格式,就目前而言,不適合直接應用XML來構建網(wǎng)站,因為在技術上難度較高。
1.5.4 什么叫網(wǎng)站重構
網(wǎng)站重構可以理解為改變老式的HTML表格布局方式,使用新的符合Web標準的網(wǎng)站結構及代碼編寫方法。更深一層的意義時,希望通過Web標準來提供一個加大網(wǎng)站效益的接口,這個效益可以簡單理解為兩個方面:可擴充性及可維護性。
相關文章
網(wǎng)頁DIV+CSS布局和動畫美化全程實例 (陳益材) 隨書光盤
網(wǎng)站的建站技術近幾年得到迅速的發(fā)展,網(wǎng)頁的布局與特效動畫技術層出不窮,網(wǎng)站建設已經(jīng)從簡單的技術支持時代衍變到現(xiàn)在的視覺美化時代2014-05-28- 這篇文章主要收羅了CSS布局中有關水平和垂直居中的N種方法,個人感覺是相當不錯,需要的朋友可以參考下2014-05-08
- 這篇文章主要介紹了div+css布局中選擇使用html標簽的方法,需要的朋友可以參考下2014-05-06
- CSS里一直有一個讓我們頭疼的問題,就是創(chuàng)建布局很麻煩。當然,有很多方式,有很多技術都可以創(chuàng)建各種布局,但我們總覺得CSS里應該提供一些新屬性,讓我們能更好的管理布局2014-05-03
css網(wǎng)站布局實錄學習筆記第三部分網(wǎng)頁布局與定位
這篇文章主要介紹了css網(wǎng)站布局實錄學習筆記第三部分網(wǎng)頁布局與定位,需要的朋友可以參考下2014-04-28- 這篇文章主要介紹了如何使用css來實現(xiàn)十字的布局,需要的朋友可以參考下2014-04-08
- CSS div布局有很多的注意事項,比如大的div里面長寬給定,內部又存在一個新的div,這個div不能完全放在父div中。那么就會overflow、float出來的div不占文檔流等等2014-03-21
- 想必很多朋友都在詢問這個問題,就是在應用DIV+CSS布局以后該在什么時候使用table呢?下面針對這個問題,為大家詳細介紹下2014-03-17
- position屬性主要有四種屬性值,任何元素的默認position的屬性值均是static,靜態(tài)。這節(jié)課主要講講relative以及absolute,感興趣的朋友可以了解下2013-12-09
- CSS網(wǎng)頁布局的技巧熟練的使用可以提高你的布局效率,本文將適合新手的CSS網(wǎng)頁布局的小技巧總結出來,或許對您更有實際的參考價值,感興趣的朋友不要錯過2013-10-18