CSS之旅——第一站 為什麼要用CSS

一線碼農發表於2015-05-03

  不知道有多少碼農和我一樣,css一直是一個軟肋,軟到全身酥麻。。。既然軟肋來了,只能是要想辦法解決,所以就找本CSS權威指南看一看,都說

CSS權威指南這本書比較過時,但是內容還是比較充實的,而且內容基本上就是和你交談一樣,非常舒服,好了,下面從正文說起。

 

一:為啥要學習CSS

  當你知道CSS的歷史還是蠻有味道的,在很久很久以前,web上沒有css,只有一些html的標籤,比如p,h1...h5... div span,ul 等等,這些html標記

都是一個具有特定含義的html標籤,過去人很實在,不講究排版,只要內容是乾貨就好了,就比如現在的部落格園排版,簡潔美,我們這些碼農同樣也不在乎這

個,只要文章是乾貨就好,但是呢?web使用者不是程式設計師,他們才不講究乾貨不幹貨,他們講究外表,講究炫酷,講究如何的個性,這樣的話Html就扛不住了,

W3C組織就為了滿足這些人的胃口,提供了一些裝飾html標記的標記,比如strong,font,b,u等等。。。就比如下面這樣。

 

<body>
    <font size="20" color="red"><b>你好</b></font>
</body>

 

然後的然後,程式設計師就有了下面這樣的抱怨了。。。

 

第一: 老子為了decorate個text,要寫無數個標籤,我操。。。多麻煩。。。

第二:馬丹,現在我們的頁面結構開始越來越複雜,這些幾把font, b壓根就不能重用,根本就是完蛋的東西。。。。高個毛啊。。。

第三:現在國家這麼窮,頻寬這麼貴,我的html體積真tmd的大,內容其實僅僅佔不到html的1/10。。。我的客戶有時候要幾分鐘才能開啟。。。這樣下去,

         我要失業了。。

 

結果就這樣W3C招致網上程式設計師的罵聲一片,原本的想法就是想通過一些樣式的html標記來修飾html的結構內容,結果導致現在的一片混亂,而且頁面結構失

衡。。。面對三大問題,W3C就開始推出了CSS,這個裝修Html的層疊樣式表。徹底的解決了程式設計師提出的三大難題。。。

 

二:如何解決三大難題

1. 無數個標籤的問題

  css採用一條條規則來decorate各個html的結構元素,規則的結構採用 “標籤+內容宣告” 的方式,比如:

1     <style type="text/css">
2         p {
3             font-size: 20px;
4             color: red;
5             margin: auto 0;
6             width: 50%;
7         }
8     </style>

 這種定義我想沒什麼好說的,這樣的話,我們把html中的裝飾標籤全部拿出來了,放到一個專門的css規則中,這樣的好處大家也看到了,”內容“和”展示”的分離,

這樣的話就解決了程式設計師們的第一個抱怨。

 

2. 裝飾標籤的重用問題。

確實,原始的html裝飾標籤無法做到重用,這樣的話自然就會導致頁面膨脹,css就採用了規則組來解決這個問題,先把規則寫好,然後哪個標籤想用的話,自己套用

下已設定的css定義就可以了。這樣的話也就解決了重用的問題。

 

3. 體積膨脹的問題

 如果第一,第二個問題沒有解決好,第三個問題自然會發生,而且我想還有其他一連串的連鎖反映,那麼css都採取了哪些手段來解決的,為了突出css的終極目標,必須

嚴格的做到“內容”和“展現”的分離,要做到“分離”,那就必須將css單獨的封裝到一個專門的css檔案,這樣的話,就不光可以做到單個html頁面的標籤重用,甚至可以多頁

面重用,多站點重用。那下一個問題就來了,引用css檔案的方式有哪些???  哪些是不值得提倡的?

 

三:css檔案的引用方式

1.  link引用

  當你把css拖入到vs的時候,預設就是link模式,link它本來就是xhtml的一個標籤,所以我們還可以用js來動態追加和控制,這個我想大家都清楚,還有一點好玩的地方就

是可以做“候選樣式表”,在瀏覽器中可以動態選擇自己想要的樣式,比如下面我定義了兩個css檔案,分別讓頁面展示 red 和 blue 的背景。

 

然後我們可以在瀏覽器中可以動態切換我想要的css樣式,蠻有意思的,雖然這種作用相對比較少見,由於截圖不好截,大家可以使用 工具欄中的 ”檢視“=> "樣式"。

 

2.import引用

  同樣這個標記也可以匯入,就像下面這樣。

 1 <html xmlns="http://www.w3.org/1999/xhtml">
 2 <head>
 3     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4     <title></title>
 5     <style type="text/css">
 6         @import url(blue.css)
 7     </style>
 8 </head>
 9 <body>
10     hello world;
11 </body>
12 </html>

 

最後值得一提的是,儘量避免使用“內聯樣式”的style,如果這樣的話,跟使用font,strong這樣的標記幾乎沒有什麼區別,就比如下面這樣,所以我們儘量避免。

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title></title>
 6 </head>
 7 <body style="color: red; margin: 0 auto">
 8     hello world;
 9 </body>
10 </html>

 

好了,第一篇大概就這麼說了,後續的我們再延伸,週末愉快。

 

相關文章