CSS之旅(1):為什么要用CSS

jopen 9年前發布 | 9K 次閱讀 CSS 前端技術

原文出處: 一線碼農



不知道有多少碼農和我一樣,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的結構元素,規則的結構采用 “標簽+內容聲明” 的方式,比如:

<style type="text/css">
        p {
            font-size: 20px;
            color: red;
            margin: auto 0;
            width: 50%;
        }
    </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之旅(1):為什么要用CSS

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

2.import引用

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

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style type="text/css">
        @import url(blue.css)
    </style>
</head>
<body>
    hello world;
</body>
</html>

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

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

好了,第一篇大概就這么說了,后續的我們再延伸,周末愉快。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!