CSS---復合選擇器、元素顯示模式和背景(三)

一、CSS的復合選擇器

1.1 什么是復合選擇器

  • 在CSS中,可以根據選擇器的類型把選擇器分為基礎選擇器復合選擇器,復合選擇器是建立在基礎選擇器之上,對基本選擇器進行組合形成的。

  • 復合選擇器是由兩個或多個基礎選擇器連寫組成,它們共同作用于一個元素,沒有空格分隔。這樣可以更精確地指定你想要樣式化的HTML元素。

  • 常用的復合選擇器包括:后代選擇器子選擇器并集選擇器偽類選擇器等。


1.2 后代選擇器(重要)

  • 后代選擇器是CSS中一種用來選擇元素的子元素(直接或間接)的方法。它通過空格分隔的方式來選擇特定元素的所有后代。后代選擇器允許你定位到某個特定父元素下的所有特定類型的子元素,而不論這些子元素在層級中的深度如何。

語法:

上級元素 下級元素{樣式聲明
}

示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>后代選擇器</title><style>.container  p  {color: red;}</style>
</head>
<body><div class="container"><p>我會變紅色。</p><div><p>我也會變紅色。</p></div>
</div></body>
</html>

1.3 子選擇器(重要)

  • 子選擇器(也稱為直接子選擇器)是CSS中的一種選擇器,用于選擇所有直接子元素,也就是只選擇那些直接與父元素相鄰的元素,而不包括那些更深層次的后代元素。這種選擇器允許開發者更精確地指定應用樣式的HTML元素層級。

語法:

parent > child {樣式聲明
}

示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>子選擇器</title><style>.container > p  {color: red;}</style>
</head>
<body><div class="container"><p>只有我會變紅色。</p><div><p>我不變。</p></div>
</div></body>
</html>

1.4 并集選擇器(重要)

  • 并集選擇器可以選擇多組標簽,同時為他們定義相同的樣式。通常用于集體聲明。

語法:

selector1, selector2, selector3 {樣式聲明
}

示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>并集選擇器</title><style>h1, h2, h3 {color: red;}</style>
</head>
<body><h1>我是h1</h1><h2>我是h2</h2><h3>我是h3</h3><h4>我是h4</h4>
</body>
</html>

1.5 偽類選擇器

  • 偽類選擇器是CSS中的一種特殊類型的選擇器,用于選擇HTML元素的特定狀態而不是基于元素的固有屬性。偽類能夠描述一個元素的特定狀態,比如當鼠標懸停在元素上時,或者當元素被選中或聚焦時。它們通常用來添加一些特殊效果或響應用戶的交互,而無需添加額外的類或ID。
  • 偽類選擇器有很多,比如有鏈接偽類、結構偽類等。

1.5.1 鏈接偽類選擇器

a:link      /* 選擇所有未被訪問的鏈接 */
a:visited   /* 選擇所有已被訪問的鏈接 */
a:hover     /* 選擇鼠標指針位于其上的鏈接 */
a:active    /* 選擇活動鏈接(鼠標按下未彈起的鏈接) */
  • 為了確保生效,請按照順序聲明,:link :visited :hover :active,否則不會生效

示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>/* a:link 把沒有訪問過的鏈接選出來 */a:link{color: red;}</style>
</head>
<body><a href="#">百度</a>
</html>

1.5.2 focus 偽類選擇器

  • :focus偽類選擇器用于選取獲得焦點的表單元素
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>/* 把獲得焦點的input表單元素選取出來*/input:focus{background-color: red;}</style>
</head>
<body><input type="text"><input type="text"><input type="text">
</body>
</html>

1.6 復合選擇器總結

在這里插入圖片描述




二、CSS的元素顯示模式

2.1 什么是元素顯示模式

  • 元素的顯示模式(display mode)指的是元素如何在頁面布局中被展示和排列的方式。
  • HTML元素一般分為塊元素行內元素兩種類型

2.2 塊元素

  • 常見的塊元素有 <h1>~<h6><p><div><ul><ol><li>等,其中<div`>標簽是最典型的塊元素。
    在這里插入圖片描述

注意:

  • 文字類的元素內不能使用塊級元素
  • <p>標簽主要用于存放文字,因此<p>里面不能放塊級元素,特別是不能放<div>
  • 同理,<h1>~<h6>等都是文字類塊級標簽,里面也不能放其他塊級元素

2.3 行內元素

  • 常見的行內元素有<a><strong><b><em><i><del><s><ins><u><span>等,其中<span>標簽是最典型的行內元素。有的地方也將行內元素稱為內聯元素。

在這里插入圖片描述

注意:

  • 鏈接里面不能再放鏈接
  • 特殊情況鏈接<a>里面可以放塊級元素,但是給<a>轉換一下塊級模式最安全

2.4 行內塊元素

  • 在行內元素中有幾個特殊的標簽—— img /<input /><td>,它們同時具有塊元素和行內元素的特點。有些資料稱它們為行內塊元素。

行內塊元素的特點:

  1. 和相鄰行內元素(行內塊)在一行上,但是他們之間會有空白縫隙,一行可以顯示多個(行內元素特點)。
  2. 默認寬度就是它本身內容的寬度(行內元素特點)。
  3. 高度,行高、外邊距以及內邊距都可以控制(塊級元素特點)。

2.5 元素顯示模式總結

在這里插入圖片描述


2.6 元素顯示模式轉換

  • 特殊情況下,我們需要元素模式的轉換,簡單理解:一個模式的元素需要另一個模式的特性。

  • 例如,一個元素默認可能是塊級元素,但在某些情況下,你可能希望它表現為行內元素或行內塊級元素。你可以通過CSS輕松實現這種轉換

  • 轉換為塊級元素:display: block;

  • 轉換為行內元素:display: inline;

  • 轉換為行內塊:display: inline-block;

示例:
假設想要增加鏈接<a>的觸發范圍,<a>因為是行內元素,不可以設置寬度和高度,這時可以通過display: block;<a>標簽轉換為塊級元素。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>a {width: 150px;height: 50px;background-color: red;/* 把行內元素a,轉換為 塊級元素 */display: block;}</style>
</head>
<body><a href="#">百度</a>
</body>
</html>

2.7 一個小技巧 單行文字垂直居中的代碼

CSS 沒有給我們提供文字垂直居中的代碼,這里我們可以使用一個小機器來實現。

  • 解決方案:讓文字的行高等于盒子的高度,就可以讓文字在盒子內垂直居中

2.8 單行文字垂直居中的原理

在這里插入圖片描述

2.9 簡潔版小米側邊欄案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>a {display: block;width: 230px;height: 40px;background-color: #55585a;font-size: 14px;color: #fff;text-decoration: none;text-indent: 2em;line-height: 40px;}a:hover {background-color: #ff6700;}</style>
</head>
<body><a href="">手機 電話卡</a><a href="">電視 盒子</a><a href="">筆記本 平板</a><a href="">出行 穿戴</a><a href="">智能 路由器</a><a href="">健康 兒童</a><a href="">耳機 音響</a></body>
</html>



三、CSS的背景

  • 通過CSS背景屬性,可以給頁面元素添加背景樣式
  • 背景屬性可以設置背景顏色、背景圖片、背景平鋪、背景圖片位置、背景圖像固定等。

3.1 背景顏色

  • background-color 屬性定義了元素的背景顏色
  • 一般情況下元素背景顏色默認值時 transparent(透明)

語法:background-color:顏色值;


3.2 背景圖片

  • background-image屬性描述了元素的背景圖像。實際開發常見于log或者一些裝飾性的小圖片或者是超大的背景圖片,有點是非常便于控制位置。

語法:background-image: none | url(地址)

在這里插入圖片描述


3.3 背景平鋪

  • 如果需要在HTML頁面上對背景圖像進行平鋪,可以使用background-repeat屬性。

語法:background-repeat: repeat | no-repeat | repeat-x | repeat-y

  • repeat:背景圖像在縱向和橫向上平鋪
  • no-repeat:背景圖像不平鋪
  • repeat-x :背景圖像在橫向上平鋪
  • repeat-y:背景圖像在縱向平鋪

3.4 背景圖片位置

  • 在CSS中,背景圖片的位置由 background-position 屬性控制,這個屬性設置背景圖像的起始位置。通過精確控制背景圖像在元素內的位置,可以實現更細致的設計效果。

background-position 屬性的使用:

background-position 的值可以使用關鍵詞、百分比或具體的長度單位(如像素或em)。關鍵詞包括 top、bottom、left、right、center 等,用于描述圖像相對于容器的位置。

常用的值及含義:

  • 關鍵詞:例如 top left、bottom right、center center 等。第一個詞表示垂直位置,第二個詞表示水平位置。
  • 百分比:background-position: 50% 75%。第一個百分比控制水平位置,第二個百分比控制垂直位置,0% 0% 是容器的左上角,100% 100% 是右下角。
  • 長度單位:如 background-position: 10px 20px。第一個值是水平位置,第二個值是垂直位置,正值表示從左上角向右和向下的偏移。

3.5 背景圖片固定(背景附著)

background-attachment 屬性設置背景圖像是否固定或隨著頁面滾動。

語法:background-attachment: scroll | fixed

在這里插入圖片描述


3.6 背景復合寫法

為了簡介背景屬性的代碼,我們可以將這些屬性合并簡寫在同一個屬性background中。從而節約代碼量。

當使用簡寫屬性時,沒有特定的書寫順序,一般習慣約定順序為:
background: 背景顏色 背景圖片地址 背景平鋪 背景圖像滾動 背景圖片位置;


3.7 背景色半透明

CSS3為我們提供了背景顏色半透明效果

background: rgba(0, 0, 0, 0.3)

  • 最后一個參數是alpha透明度,取值范圍在0~1之間
  • 我們習慣把0.3的0省略掉,寫為background: rgba(0, 0, 0, .3)
  • 注意:背景半透明是指盒子背景半透明,盒子里面的內容不受影響。

3.8 背景總結

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11189.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11189.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11189.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot3和SpringBoot2分別整合knife4j(openApi)

文章目錄 一、SpringBoot2進行整合knife4j1.1 導入依賴1.2 配置knife4j 配置文件1.3 可以在接口上配置 注解進行信息的配置 二、SpringBoot3 整合kinfe4j(openApi)2.1 導入依賴2.2 yaml配置文件2.3 swagger初始化配置2.4 創建接口 一、SpringBoot2進行整合knife4j 1.1 導入依賴…

【云原生】kubernetes核心組件

引言&#xff1a; Kubernetes 是為運行分布式集群而建立的&#xff0c;分布式系統的本質使得網絡成為 Kubernetes 的核心和必要組成部分&#xff0c;了解 Kubernetes 網絡模型可以使你能夠正確運行、監控和排查應用程序故障。 一、Kubernetes的核心組件 1.1、Master組件 1.1.…

基于Springboot+Vue的Java項目-農產品直賣平臺系統開發實戰(附演示視頻+源碼+LW)

大家好&#xff01;我是程序員一帆&#xff0c;感謝您閱讀本文&#xff0c;歡迎一鍵三連哦。 &#x1f49e;當前專欄&#xff1a;Java畢業設計 精彩專欄推薦&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python畢業設計 &am…

Kubernetes之Headless Services

Kubernetes中的Headless Services&#xff08;無頭服務&#xff09;是一種特殊類型的服務&#xff08;Service&#xff09;定義&#xff0c;它不提供傳統意義上的負載均衡和集群IP地址分配。在無頭服務中&#xff0c;spec.clusterIP 字段被顯式設置為None &#xff0c;Kubernet…

可道云teamOS企業網盤實用插件介紹:實時在線流程圖編輯與分享,用在線流程圖打造數字化工作流程

在使用企業網盤用于日常辦公的情況下&#xff0c;有一些實用的在線小工具能為團隊效率和協作帶來一定的提升。 今天要給大家介紹的可道云teamOS的在線畫流程圖&#xff0c;是很值得介紹的一個在線工具。 在線流程圖&#xff1a;直觀展示&#xff0c;高效便捷 以往我們想要梳理…

FANUC機器人單軸零點標定時提示無法執行零點標定,由于重力補償已啟用,所有機器人軸的脈沖計數必須有效

FANUC機器人單軸零點標定時提示無法執行零點標定,由于重力補償已啟用,所有機器人軸的脈沖計數必須有效 首先,機器人由于長時間斷電未使用,6個軸的編碼器數據全部丟失,上電后報警SRVO-062, 有關SRVO-062故障報警的相關內容可參考以下鏈接: FANUC機器人SRVO-062報警原因分…

LeetCode 2391. 收集垃圾的最少總時間

Problem: 2391. 收集垃圾的最少總時間 問題分解 我們將這個問題分解為以下幾個小問題&#xff1a; 計算每種垃圾&#xff08;金屬、紙、玻璃&#xff09;在每個房子中的數量。確定每種垃圾車最后到達的房子。計算每種垃圾車行駛的總時間。計算每種垃圾車收拾垃圾的總時間。返…

SQLite 語法大全

SQLite EXPLAIN 語句&#xff1a; EXPLAIN INSERT statement...; or EXPLAIN QUERY PLAN SELECT statement...; SQLite GLOB 子句&#xff1a; SELECT column1, column2....columnN FROM table_name WHERE column_name GLOB { PATTERN }; SQLite GROUP BY 子句&#xff1…

journalctl參數詳解

journalctl 是 Systemd 日志管理工具&#xff0c;用于查看、查詢和管理 Systemd 系統日志。 #-x: 詳細模式&#xff08;Verbose&#xff09;。這個選項會使 journalctl 輸出完整的日志消息&#xff0c;包括其原始結構&#xff0c;如嵌套的JSON消息、未展開的環境變量等。這對于…

Scratch四級:第08講 排序算法

第08講 排序算法 教練&#xff1a;老馬的程序人生 微信&#xff1a;ProgrammingAssistant 博客&#xff1a;https://lsgogroup.blog.csdn.net/ 講課目錄 常考的排序算法項目制作&#xff1a;“三個數排序”項目制作&#xff1a;“成績查詢”項目制作&#xff1a;“排序”項目制…

單片機智能燈控制系統源程序仿真原理圖與論文全套資料

目錄 1、設計描述 2、仿真圖 3、程序 4、資料內容 資料下載地址&#xff1a;單片機智能燈控制系統源程序仿真原理圖與論文全套資料下載 1、設計描述 設計了一款智能控制系統。 AT89C51LCD1602DS1302按鍵LED組成了這樣一個完整的設計。 P2.0-P2.3 4個LED等代表庭院內的4…

計算機視覺——Opencv blobFromImage與torchvision實現數據標準化

1.blobFromImage blobFromImage 是 OpenCV 的深度神經網絡&#xff08;DNN&#xff09;模塊中的一個函數&#xff0c;它用于將圖像轉換為深度學習模型所需的輸入格式&#xff0c;主要是對傳入的圖像進行的轉換包括圖像尺寸調整、均值減法、縮放等預處理步驟&#xff0c;以便圖…

架構設計之學新而知故

緣由 因為一些特殊的機緣&#xff0c;接觸到洋蔥架構等一些新架構設計概念。 嘗試理解了一段時間&#xff0c;就想簡單梳理下對它們的理解&#xff0c;以達到學新而知故 &#x1f603; 信息增益 以前計算機專業并不設置通信領域的信息論的專業課程&#xff0c;但是&#xf…

輸出指定日期區間內的所有天、周、月

hutool獲取指定時間周幾 Slf4j public class DateWeekUtil {public static List<String> getDateWeek(String startDateString, String endDateString, List<Integer> codeList) {List<String> dateInfoList new ArrayList<>();List<Integer> v…

工作隨機:linux 掛載LVM管理模式的磁盤

文章目錄 前言一、創建一個分區二、創建PV三、創建VG四、創建LV五、格式化并掛載目錄 前言 在數據庫管理中&#xff0c;常有比較頭疼的問題&#xff0c;就是一段時間發展后我的磁盤空間不夠了&#xff0c;想要擴容原有的目錄很是頭疼&#xff0c;那么LVM管理的優勢就體現出來了…

JAVA學習-練習試用Java實現改寫字符串

問題&#xff1a; 鍵盤錄入一個字符串&#xff0c;將字符串中的大寫改成小寫&#xff0c;小寫改成大寫&#xff0c;數字改成。例如heLLO123,輸出后為HEllo** 解答思路&#xff1a; import java.util.Scanner;public class StringConversion {public static void main(String…

單元測試之JUnit5知識點總結及代碼示例

單元測試是軟件開發過程中的一種驗證手段&#xff0c;它針對最小的可測試部分&#xff08;通常是函數或方法&#xff09;進行檢查和驗證。其實單元測試還是挺重要的&#xff0c;不過國內很多公司的項目其實并沒有做好單元測試&#xff0c;或者根本就沒做單元測試&#xff0c;原…

英語復習之英語形近詞總結(四)

英語形近詞總結復習第四部分&#xff1a; 單詞 釋義例句 genuine 英 /?d?enju?n/ 美 /?d?enju?n/ adj.真實的&#xff0c;真正的&#xff1b;誠懇的 1.Only genuine refugees can apply for asylum. 只有真正的難民才能申請政治避難。 《牛津詞典》 2.This isnt a genui…

C++筆試強訓day19

目錄 1.小易的升級之路 2.禮物的最大價值 3.對稱之美 1.小易的升級之路 鏈接 模擬就行&#xff0c;唯一可能是難點得就是gcd&#xff08;最大公約數&#xff09; #include <iostream> using namespace std; #define int long long const int N 1e5 10; int arr[N];…

兒童懸吊訓練系統如何進行制動肌的動力訓練

兒童懸吊訓練系統進行制動肌的動力訓練&#xff0c;可以按照以下步驟進行&#xff1a; 評估&#xff1a;首先&#xff0c;治療師需要對兒童的制動肌進行評估&#xff0c;確定其穩定性和力量水平&#xff0c;從而制定合適的訓練計劃。 選擇訓練方式&#xff1a;根據評估結果&am…