在談論CSS的概念以前,咱們先說一說web標準的目的——其在於建立一個統一的用於web表現層的技術標準,以便經過不一樣瀏覽器或終端設備向最終用戶展現信息內容。一個網頁的呈現是由三部分組成:結構(Structure)、表現(Presentation)和行爲(Behavior)。css
而三大部分又是由html、css、js來編寫組成的:html
結構web |
HTML瀏覽器 |
樣式字體 |
CSS網站 |
行爲google |
JSspa |
CSS是(Cascading Style Sheets)層疊樣式表的縮寫 ,簡稱樣式表。ssr
網頁設計者使用CSS能夠定義元素的樣式,包括字體,顏色及其它的高級樣式。設計
採用CSS樣式的優勢:
1. 提升頁面瀏覽速度。 使用CSS方法,比傳統的web設計方法至少節約50%以上的大小。
2. 縮短改版時間,將表現與內容相分離。 只要簡單的修改幾個CSS文件就能夠從新設計一個有成千上萬個網頁。
3.下降網站流量的費用。帶寬要求下降(代碼更簡潔),成本更低
4.聯想容易被搜尋引擎搜索到。 提升網站在百度或google中的排名
5.內容能被更普遍的設備所訪問。包括屏幕閱讀機,手持設備等。
語法簡單說明以下:
單個樣式: 樣式屬性名:樣式屬性值 ; 好比 color:red; |
多個樣式: 樣式屬性名:樣式屬性值 ; 樣式屬性名:樣式屬性值 ; 好比 color:red;font-size:120px; |
注意:
1.屬性值不須要使用引號括起來,除非屬性值是由多個單詞組成,如:font-family: "sans serif";
2.有的屬性能夠指定多個屬性值,多個屬性值間以「,」隔開;
3.當定義多個值時,瀏覽器按照從前向後順序選擇屬性值。若是第1個值有效,則嘗試使用,若是第1個無效,則使用第2個,依次類推。
①寫法一:在標籤中的style屬性中直接寫樣式
1 <!-- 寫法一 --> 2 <div style="color: red;font-weight: bold;font-style: italic;font-family:楷體;">疊層樣式表</div>
②寫法二:在style標籤內書寫樣式,標籤能夠放在頁面的任何位置;推薦寫在head、body中
1 <head> 2 <meta charset="UTF-8"> 3 <title>Insert title here</title> 4 <!--div選擇器 寫法二--> 5 <style type="text/css"> 6 div { 7 color: red; 8 font-weight: bold; 9 font-style: italic; 10 font-family:楷體; 11 } 12 </style> 13 </head> 14 <body> 15 <div>疊層樣式表</div> 16 </body>
③寫法三:外部引入樣式,實際項目中應用最多,使用link標籤進行.css文件外部引用
1 <head> 2 <meta charset="UTF-8"> 3 <title>Insert title here</title> 4 <!-- link中必需要有rel和href兩個屬性 寫法三 --> 5 <link rel="stylesheet" href="./css/02-css.css"> 6 </head> 7 <body> 8 <!-- 寫法三:外部引入樣式,實際項目中應用最多,使用link標籤進行.css文件外部引用--> 9 <div>疊層樣式表</div> 10 </body>
.css文件中寫入選擇器對應的樣式列表,以下:
1 @CHARSET "UTF-8"; 2 div { 3 color: red; 4 font-weight: bold; 5 font-style: italic; 6 font-family:楷體; 7 }
CSS基本選擇器比較簡單,主要分爲:通用選擇器、標籤選擇器、類選擇器、ID選擇器四大類。直接上代碼看一下就懂了:
1 <head> 2 <meta charset="UTF-8"> 3 <title>Insert title here</title> 4 <style type="text/css"> 5 /* 1.通用選擇器 6 *{ 7 color: red; 8 font-weight: bold; 9 font-style: italic; 10 font-family:楷體; 11 } */ 12 /* 2.標籤選擇器 13 span{ 14 color: red; 15 font-weight: bold; 16 font-style: italic; 17 font-family:楷體; 18 } */ 19 /* 3.類選擇器 20 .spanstyle{ 21 color: red; 22 font-weight: bold; 23 font-style: italic; 24 font-family:楷體; 25 } */ 26 /* 4.ID選擇器 27 #id1{ 28 color: red; 29 font-weight: bold; 30 font-style: italic; 31 font-family:楷體; 32 } */ 33 </style> 34 </head> 35 <body> 36 <!-- 選擇器:選擇器名{樣式...} 37 1.通用選擇器:*{樣式};找到全部標籤,渲染速度不高; 38 2.標籤選擇器:標籤名{樣式}; 39 3.類選擇器:.類名{樣式},選擇器名是class屬性的值,class屬性值能夠有多個相同 40 4.ID選擇器:#ID屬性值{樣式},ID取值推薦是惟一的,不惟一都會渲染效果、不報錯(但實際項目中必須惟一)--> 41 <div>div樣式</div> 42 <span class="spanstyle">span樣式</span> 43 <a id="id1">a超連接樣式</a> 44 </body>
CSS其餘選擇器主要有:多元素選擇器、後代選擇器、子元素選擇器、相鄰元素選擇器、屬性選擇器這五大類,具體仍是看代碼:
1 <head> 2 <meta charset="UTF-8"> 3 <title>Insert title here</title> 4 <style type="text/css"> 5 /*1.多元素選擇器 6 div,span,a{ 7 color: red; 8 font-weight: bold; 9 font-style: italic; 10 font-family:楷體; 11 } */ 12 /*2.後代選擇器 13 #intro p{ 14 color: red; 15 font-weight: bold; 16 font-style: italic; 17 font-family:楷體; 18 }*/ 19 /*3.子元素選擇器 20 #intro > p > span { 21 color: red; 22 font-weight: bold; 23 font-style: italic; 24 font-family:楷體; 25 }*/ 26 /*4.相鄰元素選擇器 27 span + p { 28 color: red; 29 font-weight: bold; 30 font-style: italic; 31 font-family:楷體; 32 }*/ 33 /*5.屬性選擇器 34 a[target]{ 35 color: red; 36 font-weight: bold; 37 font-style: italic; 38 font-family:楷體; 39 } 40 a[target=_blank]{ 41 color: red; 42 font-weight: bold; 43 font-style: italic; 44 font-family:楷體; 45 } */ 46 </style> 47 </head> 48 <body> 49 <!-- 選擇器:其餘選擇器 50 1.多元素選擇器:多個標籤共用一個樣式,寫法:標籤名1,標籤名2,標籤名n{樣式} 51 2.後代選擇器:匹配前面的大類選擇器(包含)裏面的選擇器,渲染後代樣式;選擇器爲兩種(大/小),中間用空格 52 3.子元素選擇器:選擇器名稱之間用>符號,和後代選擇器做用相似,但支持多級下的子元素渲染,比後代選擇器定位更精確 53 4.相鄰元素選擇器:適用於兩個同級別元素之間,使用+號鏈接,會渲染+號以後的那個元素樣式 54 5.屬性選擇器 :匹配全部具備attr屬性或匹配全部attr屬性,且attr屬性值爲val的元素渲染--> 55 <div>div樣式</div> 56 <span class="spanstyle">span樣式</span> 57 <p>p1標籤樣式</p> 58 <a id="id1">a超連接樣式</a> 59 <div id="intro"> 60 <p> 61 我是大p<br> 62 <span>我是大p裏面的span</span> 63 </p> 64 <p>我是小p</p> 65 </div> 66 <span class="spanstyle">span樣式</span> 67 <p>p2標籤樣式</p> 68 <a href="http://www.baidu.com" target="_blank">baidu.com</a><br> 69 <a href="http://www.taobao.com" target="_top">taobao.com</a> 70 </body>
另外獨立來講一說僞類選擇器,CSS僞類選擇器主要用於某些選擇器添加特殊的效果。主要在支持CSS的瀏覽器上對連接的不一樣狀態以不一樣的方式顯示。這些狀態包括:活動狀態(active),已被訪問狀態(visited),未被訪問狀態(link),和鼠標懸停狀態(hover)。
1 a:link {color: #FF0000} /* 未訪問的連接 */ 2 a:visited {color: #00FF00} /* 已訪問的連接 */ 3 a:hover {color: #FF00FF} /* 鼠標移動到連接上 */ 4 a:active {color: #0000FF} /* 選定的連接 */
提示:在 CSS 定義中,a:hover 必須被置於 a:link 和 a:visited 以後,纔是有效的。
提示:在 CSS 定義中,a:active 必須被置於 a:hover 以後,纔是有效的。
提示:僞類名稱對大小寫不敏感。
下面以一個a:hover的例子來解釋一下僞類選擇器的做用:
1 <head> 2 <meta charset="UTF-8"> 3 <title>Insert title here</title> 4 <style type="text/css"> 5 /*將全部的a標籤的狀態都修改爲下面這樣*/ 6 a{ 7 color:black; 8 text-decoration: none; /*不顯示下劃線*/ 9 } 10 /*當鼠標移上來的狀態咱們進行單獨的修改*/ 11 a:hover{ 12 color:red; 13 text-decoration: underline; 14 font-size:30px; 15 } 16 </style> 17 </head> 18 <body> 19 <!-- 僞類選擇器,主要有四個大的屬性: 20 a:link 未訪問的連接 21 a:hover 鼠標移動到連接上 22 a:active 選定的連接 23 a:visited 已訪問的連接 24 --> 25 <a href="www.baidu.com">百度網址</a> 26 </body>
顯示效果以下:
更多CSS僞類知識能夠參考:http://www.w3school.com.cn/css/css_pseudo_classes.asp
CSS樣式是有優先級的,具體的樣式優先級(渲染順序)以下:
!important > 行內樣式 > id選擇器 > 類選擇器 > 標籤選擇器,在選擇器優先級(先看優先級)相同的狀況下,參照就近原則,具體示例以下代碼:
1 <head> 2 <meta charset="UTF-8"> 3 <title>Insert title here</title> 4 <!-- 樣式優先級:!important > 行內樣式 > id選擇器 > 類選擇器 > 標籤選擇器 5 選擇器優先級相同,則是就近原則渲染,即渲染前後 --> 6 <style type="text/css"> 7 /* div{ 8 color:red !important; 9 } */ 10 /* #divId{ 11 color:green; 12 } */ 13 .divClass{ 14 color: yellow; 15 } 16 div{ 17 color: orange; 18 } 19 div{ 20 color:black; 21 } 22 </style> 23 </head> 24 <body> 25 <div id="divId" class="divClass" style="color: blue;">我被渲染了</div> 26 </body>
HTML文檔以樹形結構進行組織,各元素之間是一種層次關係,這種層次關係一樣反映在樣式表的應用中。具備層次關係的元素之間,內層元素將繼承外層元素的樣式,多個外層元素中定義的樣式將疊加到內層元素。
HTML中,<body>是其餘元素的容器,是其餘元素的最外層元素,因此<body>元素中定義的樣式將影響其餘全部元素的顯示格式。
具體示例以下:
1 <head> 2 <meta charset="UTF-8"> 3 <title>Insert title here</title> 4 <!-- 繼承性:具備層次關係的元素之間,內層元素將繼承外層元素的樣式,多個外層元素中定義的樣式將疊加到內層元素 --> 5 <style type="text/css"> 6 .divclass{ 7 color: blue; 8 border-width:1px; 9 border-style:solid; 10 border-color:red; 11 } 12 </style> 13 </head> 14 <body> 15 <!-- 16 border屬性的兩種寫法: 17 第一種寫法: border:border-width border-style border-color 18 第二種寫法:border-width:blue; 19 border-style:solid; 20 border-color:red;--> 21 <div style="color: blue;border: 1px solid red"> 22 <p>字體變紅</p> 23 </div> 24 <div class="divclass"> 25 <p>字體變紅</p> 26 </div> 27 </body>
具備繼承的CSS屬性:
說明 |
對應屬性 |
文本相關的屬性是繼承的 |
text-align、color、text-indent、font-family、font-size、 font-style、font-weight、 letter-spacing、word-spacing、 text-transform、line-height等
|
列表相關的屬性是繼承的(ul,ol,li) |
list-style、 list-style-image、list-style-position、list-style-type |
本文只列出了本人做爲web開發時經常使用的CSS知識入門進行系統總結,不包含CSS3等特定CSS知識,更多文檔及官方知識庫請連接w3school官網:
http://www.w3school.com.cn/cssref/index.asp