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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...