1. 程式人生 > >CSS入門知識匯總

CSS入門知識匯總

word letter 懸停 color 效果 classes 繼承 偽類 truct

1.CSS認識

在談論CSS的概念之前,我們先說一說web標準的目的——其在於創建一個統一的用於web表現層的技術標準,以便通過不同瀏覽器或終端設備向最終用戶展示信息內容。一個網頁的呈現是由三部分組成:結構(Structure)表現(Presentation)行為(Behavior)

而三大部分又是由html、css、js來編寫組成的:

結構

HTML

樣式

CSS

行為

JS

1.1 CSS的概念及作用

CSS是(Cascading Style Sheets)層疊樣式表

的縮寫 ,簡稱樣式表。

網頁設計者使用CSS可以定義元素的樣式,包括字體,顏色及其它的高級樣式。

采用CSS樣式的優點:

1. 提高頁面瀏覽速度。 使用CSS方法,比傳統的web設計方法至少節約50%以上的大小。

2. 縮短改版時間,將表現與內容相分離。 只要簡單的修改幾個CSS文件就可以重新設計一個有成千上萬個網頁。

3.降低網站流量的費用。帶寬要求降低(代碼更簡潔),成本更低

4.聯想容易被搜尋引擎搜索到。 提高網站在百度或google中的排名

5.內容能被更廣泛的設備所訪問。包括屏幕閱讀機,手持設備等。

1.2 CSS的三種基本寫法

語法簡單說明如下:

單個樣式:

樣式屬性名樣式屬性值 ; 比如 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 }

2.CSS選擇器

2.1基本選擇器

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>

2.2其他選擇器

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

3. CSS的優先級

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>

4.CSS的繼承性

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

5.更多CSS

本文只列出了本人作為web開發時常用的CSS知識入門進行系統總結,不包含CSS3等特定CSS知識,更多文檔及官方知識庫請鏈接w3school官網:

http://www.w3school.com.cn/cssref/index.asp

CSS入門知識匯總