首頁  >  文章  >  web前端  >  推薦徹底弄清楚CSS盒子模式(DIV佈置快速入門)_經驗交流

推薦徹底弄清楚CSS盒子模式(DIV佈置快速入門)_經驗交流

PHP中文网
PHP中文网原創
2016-05-16 12:08:111505瀏覽

前言
      如果你想嘗試不用表格來排版網頁,而是用CSS來排版你的網頁,也就是常聽的用p來編排你的網頁結構,又或者說你想學習網頁標準設計,再或者說你的上司要你改變傳統的表格排版方式,提高企業競爭力,那麼你一定要接觸到的一個知識點就是CSS的盒子模式,這就是p排版的核心所在,傳統的表格排版是透過大小不一的表格和表格嵌套來定位排版網頁內容,改用CSS排版後,就是透過由CSS定義的大小不一的盒子和盒子嵌套來編排網頁。因為用這種方式排版的網頁代碼簡潔,更新方便,能兼容更多的瀏覽器,比如PDA設備也能正常瀏覽,所以放棄自己之前鍾愛的表格排版也是值得的,更重要的是CSS排版網頁的優勢遠遠不只這些,本人在這裡就不多說,自己可以去找相關資訊。
理解CSS盒子模型
      什麼是CSS的盒子模式呢?為什麼叫它是盒子?先說說我們網頁設計中常聽的屬性名稱:內容(content)、填色(padding)、邊框(border)、邊界(margin), CSS盒子模式都具備這些屬性。

這些屬性我們可以把它轉移到我們日常生活中的盒子(箱子)上來理解,日常生活中所見的盒子也具有這些屬性,所以叫它盒子模式。那麼內容就是盒子裡裝的東西;而填充就是怕盒子裡裝的東西(貴重的)損壞而添加的泡沫或者其它抗震的輔料;邊框就是盒子本身了;至於邊界則說明盒子擺放的時候的不能全部堆在一起,要留一定空隙保持通風,同時也為了方便取出嘛。在網頁設計上,內容常指文字、圖片等元素,但是也可以是小盒子(p嵌套),與現實生活中盒子不同的是,現實生活中的東西一般不能大於盒子,否則盒子會被撐壞的,而CSS盒子具有彈性,裡面的東西大過盒子本身最多把它撐大,但它不會損壞的。填充只有寬度屬性,可以理解為生活中盒子裡的抗震輔料厚度,而邊框有大小和顏色之分,我們又可以理解為生活中所見盒子的厚度以及這個盒子是用什麼顏色材料做成的,邊界就是該盒子與其它東西要保留多大距離。在現實生活中,假設我們在一個廣場上,把不同大小和顏色的盒子,以一定的間隙和順序擺放好,最後從廣場上空往下看,看到的圖形和結構就類似我們要做的網頁版面設計了,如下圖。

由「盒子」堆出來的網頁版面



現在對CSS盒子模式理解多少了,如果還不夠透徹,繼續往下看,我會在後面舉例,並延用盒子的概念來解釋它。
轉變我們的思維
  傳統的前台網頁設計是這樣進行的:根據要求,先考慮好主色調,要用什麼類型的圖片,用什麼字體、顏色等等,然後再用Photoshop這類軟體自由的畫出來,最後再切成小圖,再不自由的透過設計HTML生成頁面,改用CSS排版後,我們要轉變這個思想,此時我們主要考慮的是頁面內容的語意和結構,因為一個強CSS控制的網頁,等做好網頁後,你還可以輕鬆的調你想要的網頁風格,況且CSS排版的另外一個目的是讓代碼易讀,區塊分明,強化程式碼重用,所以結構很重要。如果你想說我的網頁設計的很複雜,到後來能不能達到那樣的效果?我要告訴你的是,如果用CSS實現不了的效果,一般用表格也是很難實現的,因為CSS的控制能力實在是太強大了,順便說一點的是用CSS排版有一個很實用的好處是,如果你是接單做網站的,如果你用了CSS排版網頁,做到後來客戶有什麼不滿意,特別是色調的話,那麼改起來就相當容易,甚至你還可以定制幾種風格的CSS文件供客戶選擇,又或者寫一個程式實現動態調用,讓網站具有動態改變風格的功能。
實現結構與表現分離
  在真正開始佈局實踐之前,再來認識一件事——結構和表現相分離,這也用CSS佈局的特色​​所在,結構與表現分離後,代碼才簡潔,更新才方便,這不正是我們學習CSS的目的嗎?舉例來說P是結構化標籤,有P標籤的地方表示這是一個段落區塊,margin是表現屬性,我要讓一個段落右縮進2字高,有些人會想到加空格,然後不斷地加空格,但現在可以給P標籤指定一個CSS樣式:P {text-indent: 2em;},這樣結果body內容部分就如下,這沒有外加任何表現控制的標籤:
如果還要對這段落加上字體、字號、背景、行距等修飾,直接把對應的CSS加進P樣式就行了,不用像這樣來寫了:

段落內容

 

這個是結構和表達,再這樣累加寫下去程式碼就繁冗了。
再直接列一段程式碼加深理解結構與表現相分離:
用CSS排版





































>






>
































































































































































>










>





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