CSS入門知識彙總

来源:https://www.cnblogs.com/yif0118/archive/2019/04/06/10660603.html
-Advertisement-
Play Games

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


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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在redis.c的initServerConfig()方法中,通過調用dictCreate方法初始化server端的命令表。這個命令表是一個hashtable,可以通過key找到相關的命令: initServer()函數在初始化服務端的基本配置時,已經提前創建了客戶端的回調函數。具體的調用為:1.創 ...
  • 文章大綱 一、Realm介紹二、Realm實戰三、Realm官方文檔四、項目源碼下載五、參考文章 一、Realm介紹 1. 什麼是Realm Realm 是一個手機資料庫,是用來替代 SQlite 的解決方案,比 SQlite 更輕量級,速度更快,因為它有一套自己的資料庫搜索引擎,並且還具有很多現代 ...
  • 在Android開發中,一般通過網路進行訪問伺服器端的信息(存儲和檢索網路中的數據),如API介面,WebService,網路圖片等。今天主要講解Http訪問的常用方法,僅供學習分享使用。 ...
  • 問題:在A activity中傳遞一個SpannableString到B activity中,並最終傳遞到B activity中的TextView中,但是沒有展示出Span效果。 解決:閱讀TextView.setText()方法 看到會根據BufferType對傳入的text重新賦值,於是回溯找到 ...
  • 一、概述 AIDL是Android Interface Definition Language的縮寫,即Android介面定義語言。它是Android的進程間通信比較常用的一種方式。 Android中,每一個進程都有自己的Dalvik VM實例,擁有自己的獨立的記憶體空間,進程與進程之間不共用記憶體,這 ...
  • 今天狀態不太好,睡久了懵一天。 以前只是瞭解過async函數,並還沒有很熟練的運用過,所以先開個坑吧,以後再結合實際來更新下,可能說的有些問題希望大家指出。 async和await相信大家應該不陌生,讓非同步處理變得更友好。 其實這玩意兒就是個Generator的語法糖,想深入學習得去看看Genera ...
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script> var now = new Date; var bir = new Date(1995,09,24,08,50,10); //在這裡按照這個格式輸入自己生日 ...
  • vue+element ui中的圖片獲取與上傳 工作上接觸了一下圖片的處理,圖片的格式是文件流, 記錄如下。 請求圖片 請求圖片的時候,帶上 , 否則圖片顯示的可能是亂碼。 顯示圖片 圖片返回的是文件流的形式, 控制臺中顯示的是亂碼。 直接顯示二進位圖片會出錯,所以我們要進行處理。 顯示圖片中,要對 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...