CSS 樣式的使用方式、選擇器

来源:https://www.cnblogs.com/chy18883701161/archive/2019/08/09/11329769.html
-Advertisement-
Play Games

在html中使用css的三種方式: 1、行內樣式:同過元素的style屬性來設置 屬性之間分號隔開。 2、內部樣式:在<head>的<style>元素中定義css樣式 3、外部樣式:在css文件中定義css樣式,然後在html的<head>中通過<style>引入外部樣式表 css文件中不加<sty ...


 

在html中使用css的三種方式:

1、行內樣式:同過元素的style屬性來設置

<p style="font-size:20px; color:red">hello</p>

屬性之間分號隔開。

 

2、內部樣式:在<head>的<style>元素中定義css樣式

<style>
    p{font-size: 20px;color: red}    
</style>

 

3、外部樣式:在css文件中定義css樣式,然後在html的<head>中通過<style>引入外部樣式表

p{font-size: 20px;color: red}
<link href="xxx.css" type="text/css" rel="stylesheet" />

css文件中不加<style>標簽,直接寫css樣式就ok。

 

內部|外部樣式的語法: 選擇器 {屬性名1:屬性值1; 屬性名2:屬性值2} 

 

三種方式,屬性之間都是分號隔開。

 

 

 

 

css註釋:

/*  註釋  */

 

 

 

css選擇器

1、元素選擇器、類選擇器、id選擇器

p{color: red}  /* 元素選擇器,給所有p元素設置樣式*/
.red{color: red}  /* 類選擇器,在元素中通過class="red"引用 */
#user{color: red}  /* id選擇器,在元素中通過id="user"引用,最多只能使用1次 */

 

 

2、通用選擇器、分組選擇器

*{color: red}  /*通用選擇器,給所有元素設置樣式 */
h1,.red{color: red}  /*分組選擇器,同時給多個選擇器設置相同的樣式 */

 

 

3、後代選擇器、子選擇器、相鄰兄弟選擇器、後續兄弟選擇器

div p{color: red}  /*後代選擇器,選擇<div>中所有的<p>元素,不管<p>是<div>的兒子、孫子、重孫......只要<p>是<div>的後代就行*/
div>p{color:red}  /*子選擇器,選擇的是<p>,<p>必須是<div>的兒子*/
div+p{color:red}  /*相鄰兄弟選擇器,選擇的是<p>,<p>必須是<div>後面的第一個兄弟元素 */
div~p{color:red}  /*後續兄弟選擇器,選擇<div>後面所有的<p>,<p>必須是<div>的兄弟元素 */

 

 

4、屬性選擇器

[attr]  /*含有attr屬性*/

[attr=value]  /*有attr屬性,且屬性值為value*/

[attr^=value]  /*有attr屬性,且屬性值以value開頭(只要value是開頭就ok*/
[attr|=value]  /*有attr屬性,且屬性值以value開頭、value和後面部分以-連接 */

[attr$=value]  /*有attr屬性,且屬性值以value結尾*/

[attr*=value]  /*有attr屬性,且屬性值中含有value(含有就ok)*/
[attr~=value]  /*有attr屬性,且屬性值中含有單詞value,value要是一個完整的單詞(和其它單詞以空格隔開)*/

屬性選擇器常和其它選擇器一起使用,比如:

button[type="button"]  /*選擇所有type="button"的<button> */

屬性選擇器中,attr不能加引號,value可引可不引。

 

 

5、<a>鏈接

a:link   /*所有未訪問過的<a>*元素/
a:hover  /*滑鼠移到<a>元素上*/
a:active  /*點擊<a>時*/
a:visited  /*所有訪問過的<a>*/

這4個設置的是<a>元素不同時期的樣式。

 

:hover這個偽類所有元素都可以使用。

 

 

6、表單元素

:focus   /*聚焦時*/
:checked   /*選中時*/
:enabled   /*可用的*/
:disabled  /*禁用的*/
:read-only  /*只讀*/

可單獨使用,也可配合表單元素使用:

:focus{  }
input:focus{  }

 

 

7、空元素

:empty{  }   /*所有的空元素*/
p:empty{  }  /*所有空的<p>元素*/

空元素指的是沒有任何屬性、沒有內容的元素,示例:<p></p>。

 

 

8、非

:not(p)    /*選擇不是<p>的所有元素*/

()中儘量只使用元素選擇器,使用其他選擇器容易出錯。

 

 

9、type系列

p:first-of-type  /*同級別中的第一個<p>*/
p:nth-of-type(n)   /*同級別中的第n個<p>*/
p:nth-last-of-type(n)   /*同級別中的倒數第n個<p>*/
p:last-of-type   /*同級別中的最後一個<p>*/
p:only-of-type   /*同級別中唯一的一個<p>*/

示例:

p:first-of-type{color:red}
<body>
    <h1></h1>
    <p></p>   <!--選中-->
    <p></p>
    <div>
        <h2></h2>
        <p></p>  <!--選中-->
        <p></p>
    </div>
</body>

只要是同級別的<p>中的第一個即可。

 

 

10、child系列

p:first-child   /*匹配的是<p>,<p>要是其父元素的第一個子元素*/
p:nth-child(n)  /*匹配的是<p>,<p>要是其父元素的第n個子元素*/
p:nth-last-child(n)  /*匹配的是<p>,<p>要是其父元素的倒數第n個子元素*/
p:last-child  /*匹配的是<p>,<p>要是其父元素的最後一個子元素*/
p:only-child  /*匹配的是<p>,<p>要是其父元素的唯一一個子元素*/

示例:

p:first-child{color:red}
<body>
    <h1></h1>
    <p></p>   
    <p></p>
    <div>
        <p></p>  <!--選中-->
        <p></p>
    </div>
</body>

 

 

11、首字、首行

p:first-letter  /*<p>元素的第一個字元*/
p:first-line  /*<p>元素的第一行*/

 

 

12、:before    :after

p:before{   /*在<p>的前面添加內容*/
    content:"hello "
}
p:after{   /*在<p>的後面添加內容*/
    content:" byebye"
}
    

添加的內容預設是行內元素,但會和<p>在同一行顯示(相當於把添加的內容放到<p>元素內的最前|後面),添加的並不是一個真正的元素,所以叫做偽元素。

 

可以設置為塊級,添加的內容會作為塊級元素顯示:

p:before{   /*在<p>的前面添加內容*/
    content:"hello ";
    display: block
}
p:after{   /*在<p>的後面添加內容*/
    content:" byebye";
    display: block
}

 

可以給添加的元素設置樣式:

p:before{   
    content:"hello ";   /* 屬性之間分號分隔 */
    display: block;   /*給添加的內容設置樣式*/
    font-size: 20px;
    color:red
}

 

添加圖片:

p:before{   
    content:"";   /* content屬性是必需的,不添加文本時可以設置為空串 */
    display: block;  /*必須要設置為塊級,要設置寬、高,添加的背景圖片才能顯示出來*/
    width: 100px;
    height: 100px
    background-image: url("1.png");
}

 

清除浮動:

p:before{   
    content:"";   
    clear: both
}

 

偽元素可以使用單冒號,也可以使用雙冒號。

:before   <=>   ::before

:after  <=>  ::after

 

 

帶冒號的選擇器中,有4個偽元素:first-letter、:first-line、:before、:after,其餘都是偽類。

 

選擇器可以搭配使用。

 

在同種方式中(都是內部|外部樣式),優先順序id選擇器最高,類選擇器次之,屬性選擇器最低。(定位越具體、詳細的,優先順序越高)

 

如果使用了相同的css屬性,優先順序行內最高,內部、外部優先順序相同,看<head>中<link />、<style>的順序,後面的優先順序更高(後渲染的樣式會覆蓋之前的樣式)。

 


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

-Advertisement-
Play Games
更多相關文章
  • 大A股,股票數據,可用作數據分析練手,每個表和欄位都有註釋; 數據來源:https://tushare.pro/ mysql:連接地址:106.15.47.188: 埠:3306 用戶名:lxd 密碼:laoxiaoduan321 庫名:stocka裡面同步了股票數據,有興趣做分析的可以拿有空的話 ...
  • Redis簡介 Redis是什麼 Redis是一個開源的,使用ANSI C 編寫,高性能的Key Value的NoSQL資料庫。 Redis特點 1. 基於記憶體 2. 可持久化數據 3. 具有豐富的數據結構類型,適應非關係型數據的存儲需求 4. 支持絕大多數主流開發語言,如C、C++、Java、Py ...
  • 實時流式計算,也就是RealTime,Streaming,Analyse,在不同的領域有不同的定義,這裡我們說的是大數據領域的實時流式計算。 實時流式計算,或者是實時計算,流式計算,在大數據領域都是差不多的概念。那麼,到底什麼是實時流式計算呢? 谷歌大神Tyler Akidau在《the world ...
  • 每一個 Gradle 構建都會按照相同的順序經歷三個不同的階段:初始化、配置、執行。 ...
  • 1. 多線程的底層實現? 2. 線程間怎麼通信? 3. 網路圖片處理問題中怎麼解決一個相同的網路地址重覆請求的問題? 4. 用NSOpertion和NSOpertionQueue處理A,B,C三個線程,要求執行完A,B後才能執行C,怎麼做? 5. 列舉cocoa中常見對幾種多線程的實現,並談談多線程 ...
  • 初步認為應該是與熱點名稱的位元組數有關。 然後開始查看源碼。 /Settings/res/xml/tether_prefs.xml 中的 發現了熱點設置界面在HotspotSettings 裡面, 在HotspotSettings中點擊設置wifi熱點,進入/Settings/src/com/andr ...
  • Android上已經自動對鍵盤遮擋輸入框做了處理,所以我們只需要關註ios。 1.首先引入 KeyboardAvoidingView 2.然後在頁面的最外層加上 KeyboardAvoidingView 如果適配ios和Android,可以將頁面提取出來 ...
  • 菜鳥入坑記——第一篇 關鍵字:AlarmManager 一、AlarmManager簡介: 參考網址:https://www.jianshu.com/p/8a2ce9d02640 參考網站:https://www.runoob.com/w3cnote/android-tutorial-alarmma ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...