前端三劍客之CSS

1. CSS 簡介

1)?CSS 簡述

CSS,即層疊樣式表(英文全稱:Cascading Style Sheets),是一種專門用于修飾 HTML 文檔呈現樣式的計算機語言。它的功能不僅限于靜態美化網頁,還能與各類腳本語言配合,實現對網頁元素樣式的動態格式化。

借助 CSS,開發者可以對網頁元素的位置進行像素級的精準排版控制,支持幾乎所有字體和字號樣式的設置,同時具備對網頁對象及模型樣式的編輯能力,讓網頁呈現更豐富、更符合設計需求的視覺效果。

2)?為什么需要 CSS 樣式表

CSS 的核心價值在于實現內容與樣式的分離

  • HTML 專注于構建網頁的結構和承載內容(相當于網頁的 “骨架”);
  • CSS 則負責網頁外觀的渲染(相當于為 “骨架” 穿上華麗的 “衣服”)。

CSS 的主要特性包括:

  1. 實現內容與表現的分離,讓結構設計與視覺設計各司其職;
  2. 保證網頁表現風格的統一性,且便于集中修改樣式;
  3. 提供豐富的樣式選項,使頁面布局更具靈活性和創意;
  4. 減少網頁代碼冗余,提升頁面加載速度,節省網絡帶寬;
  5. 采用獨立于頁面的 CSS 文件,更利于搜索引擎抓取和收錄網頁內容;
  6. 由瀏覽器直接解釋執行,無需額外的編譯過程;
  7. 語法不區分大小寫,降低了書寫時的格式約束。

2. CSS語法

1)屬性:屬性值;
2)選擇器{屬性:屬性值}

3. CSS引入方式

1)內聯方式(行內樣式)---- 只對當前元素生效

????????利用html的style屬性
????????語法:
<開始標簽 style="css屬性:屬性值;"></結束標簽>
<div style="width:200px;height:200px;background-color: yellow;">這是一個盒子
</div>

2)內部方式

????????利用html的style標簽
????????語法:
????????????????style標簽位于head標簽里面
<head><style>選擇器{屬性:屬性值}</style>
</head>

3)外部方式

????????利用html的link標簽
????????語法:
<head><link rel="stylesheet" href="css文件的路徑">
</head>
一個.css文件可以被多個html文件引入
一個html文件可以引入多個css文件

4)引入方式的優先級

????????內聯方式>內部方式(外部方式)
????????內部方式和外部方式優先級相同,寫在后面的生效。

4,CSS基礎選擇器

1,標簽選擇器(元素選擇器):

用HTML標簽名稱作為選擇器,按標簽名稱分類,為頁面中某一類標簽指定同意的CSS樣式。
語法:
標簽名{ 屬性1:屬性值; 屬性2:屬性值;、 ...... }p { color: pink; }

2,類選擇器:

單獨選一個或者某幾個標簽,可以使用類選擇器。
語法:
.類名{ 屬性1:屬性值1; ...... }這是html文件 <div class="box"> 這是一個盒子 </div> 這是css文件 .box{ color: pink; }
多類名使用方式:
(1)在標簽class屬性中寫多個類名。
(2)多個類名中間必須用空格分開。
<div class="red font20">亞瑟</div>
多類名的使用場景:
(1)可以把一些標簽元素相同的樣式(共同的部分)放到一個類里面。

3,id選擇器:

id選擇器可以為標有特定id的HTML元素指定特定的樣式。
HTML元素以id屬性來設置id選擇器,CSS中id選擇器以”#“來定義。
id選擇器只能被一個標簽調用(只能調用一次)
語法:
#id名{ 屬性:屬性值1; ... }將id為nav元素中的內容設置為紅色。 #nav{ color:red; }

4,通配符選擇器:

在CSS中,通配符選擇器使用”*“定義,它表示選取頁面中所有元素(標簽)。
語法:
*{ 屬性:屬性值1; ... }
通配符選擇器不需要調用,自動就能給所有元素使用樣式。

5,屬性選擇器:

可以為擁有指定屬性的HTML元素設置樣式,而不僅限于class和id屬性。

[class]{ color:red; } 
[clsss='box']{ color:yellow; } 
<!-- 有div標簽的同時要class='box' --> 
div[class='box']{ color:green; }

6,關系選擇器:

1,子代選擇器 > (僅限兒子)

選擇器1>選擇器2 {}

2,后代選擇器 空格 (包含所有后代:兒子,孫子等)

選擇器1 選擇器2 {}

3,相鄰兄弟選擇器 + (只限后面兄弟 下同)

選擇器1+選擇器2 {}

4,通用兄弟選擇器 ~

選擇器1~ 選擇器2 {}

5,偽元素選擇器

????????在元素前面或者元素后面插入一個不存在的元素(偽元素)

::before{content:"";} 在某個元素的前面::after{content:"";} 在某個元素的后面

6,偽類選擇器?

1,:link 點擊之前(只適用于a)

a:link{ color:pink; }

2,:visited 點擊之后(只適用于a)

a:visited{ color:orange; }

3,:hover 鼠標懸停(適用于所有元素)

.box:hover{ color:pink; }

4,:active 鼠標按下(適用于所有元素)

.box:active{ color:pink; }

5,:checked 選中狀態

6,:focus 焦點狀態

7,:first-child 選擇器

8,:last-child 選擇器

9,:nth-child() 選擇器 (number|odd|even|倍數)

10,:first-of-type() 選擇器

11,:last-of-type() 選擇器

12,:nth-of-type() 選擇器 (number|odd|even|倍數)

13,:not() 除了......

/* 排除了class='aa' 和class='bb'*/
li:not(.aa):not(.bb){ ... }

7,盒子模型(Box Model)

1,概念

所有HTML元素可以看作盒子,在CSS中,"box model"這一術語是用于設計和布局時使用。
CSS盒模型本質上是一個盒子,封裝周圍的HTML元素,它包括:邊距(margin),邊框(border),填充(padding),和實際內容(content)。
盒模型允許我們在其他元素和周圍元素邊框之間的空間放置元素。
  • 寬度、高度:盒子本身具有寬度(width)和高度(height)
  • 內邊距:盒子里面的內容到盒子邊框之間的距離即內邊距(padding)
  • 邊框:盒子本身有邊框(border)。
  • 外邊距:盒子邊框外和其他盒子之間,還有外邊距(margin)

2,盒模型分類

1,標準盒模型(w3c盒模型)------ 瀏覽器默認

內容區域(content)
width:; 元素的寬度(只包含內容的寬度)
height:; 元素的高度(只包含內容的高度)
塊級元素默認寬度為100%,行內元素默認寬度由內容撐開。
塊級元素和行內元素默認高度都由內容撐開。
塊級元素可以設置寬高,行內元素設置寬高不生效。
<div class="box">塊級元素</div> <div class="box">塊級元素</div> <span class="box">行內元素</span> <span class="box">行內元素</span>
<style> .box { width: 200px; height: 200px; background-color: pink; } </style>
內邊距(Padding)
定義:
padding(填充)是一個簡寫屬性,定義元素邊框與元素內容之間的空間,即上下左右的內邊距。
可能的值:
1)定義一個固定的填充(像素,pt,em,等)
2)使用百分比值定義一個填充
單邊內邊距屬性:
可以指定不同側面不同的填充:
<style> .box { <!--簡寫--> padding:value; 四周 padding:value value; 上下 左右 padding:value value value;上 左右 下 padding:value value value value;上 右 下 左 <!--單個屬性--> padding-top: 25px; padding-bottom: 25px; padding-left: 25px; padding-right: 25px; } </style>
注意:當簡寫屬性和單個屬性同時存在,單個屬性要寫在簡寫屬性后邊。
邊框(border)
屬性:
border-style:; 必須屬性,邊框的樣式,默認是3px。
取值:
solid 實線
dashed 虛線
dotted 點線
double 雙實線
none 不顯示
border-color:; 邊框的顏色
border-width:; 邊框的寬度
簡寫:border:width style color; 沒有特定順序,默認順序。
div{ background-color: pink; width: 200px; height: 200px; border-style: solid; border-width: 10px; border-color: blue; <!--boder:10px solid blue 四周的邊框--> }
外邊距(Margin)
定義:
margin(外邊距)屬性定義元素周圍的空間。
取值:
(1)Auto
(2)定義一個固定的margin
(3)定義一個使用百分比的邊距
應用:
1)塊級元素水平居中
margin:0 auto;
注意:
1)垂直方向上外邊距合并問題
垂直方向上外邊距相撞上,取較大值。
div{ <!--簡寫--> margin:value; 四周 margin:value value; 上下 左右 margin:value value value;上 左右 下 margin:value value value value;上 右 下 左 <!--單個屬性--> margin-top: 100px; margin-bottom: 100px; margin-left: 50px; margin-right: 50px; }

2,怪異盒模型(IE盒模型)

在該模式下,瀏覽器的width屬性不是內容的寬度,而是內容、內邊距和邊框的寬度的總和;即在怪異模式下的盒模型,盒子的(content)寬度+內邊距(padding)寬度+邊框(border)寬度=我們設置的width(height也是如此),盒子總寬度/高度=width/height+margin。
<!-- 盒模型轉換 --> box-sizing:content-box; 默認值 標準盒模型 box-sizing:border-box; 怪異盒模型

3,彈性盒模型(伸縮盒模型)(flexbox)

主要用于移動端布局
目的是:設置子元素排列,對齊和分配剩余空白空間。
名詞:
父元素----彈性容器
子元素----彈性項目
主軸----默認為x軸
側軸----默認為y軸
父元素上的屬性:
1,開啟彈性盒模型 ------ display屬性
display:flex; 開啟彈性盒
display:flex; 屬性設置后子元素默認水平排列
2,設置子元素的排列方式(設置彈性盒的方向)flex-direction屬性
flex-direction屬性指定了彈性子元素在父容器中的位置。
flex-direction:row|row-reverse|column|column-reverse
row:橫向從左到右排列(左對齊),默認的排列方式
row-reverse:反轉橫向排列(右對齊),從后往前排,最后一項排在最前面。
column:縱向排列
column-reverse:反轉縱向排列,從后往前排,最后一樣排在最上面。
3,設置子元素在主軸的對齊方式
默認主軸為x軸,側軸為y軸;當子元素垂直排列時,y軸為主軸,x軸為側軸。
justify-content:;
flex-start 默認值 彈性盒的開始
flex-end 彈性盒的結束
center 居中
space-between 在子元素之間平均分配父元素剩余的空間
space-around 在子元素四周分配父元素剩余的空間,兩端是中間的一半
4,設置子元素在側軸的對齊方式
align-items:;
flex-start 默認值 彈性盒的開始
flex-end 彈性盒的結束
center 居中
2,子元素上的屬性
flex-grow:number;
子元素占父元素剩余空間的比例。

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

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

相關文章

力扣25.7.11每日一題——無需開會的工作日

Description 這題類似合并區間&#xff0c;題意你們都能看懂吧…… Solution 這道題就需要用到合并區間的方法。 答案等于 daysdaysdays 減「有會議安排的天數」。 對左端點進行排序&#xff0c;計算有會議安排的天數&#xff0c;累加每個區間的長度&#xff0c;即為有會議…

每日一SQL 【銷售分析 III】

文章目錄問題案例執行順序使用分組解決問題 案例 執行順序 SQL 語句的執行順序&#xff08;核心步驟&#xff09; 同一層級的select查詢內部, 別名在整個 SELECT 計算完成前不生效 使用分組解決 select distinct s.product_id, Product.product_name from Sales sleft join …

輕輕松松帶你進行-負載均衡LVS實戰

8. LVS部署命令介紹 8.1 LVS軟件相關信息 1.程序包&#xff1a;ipvsadm 2.Unit File: ipvsadm.service 3.主程序&#xff1a;/usr/sbin/ipvsadm 4.規則保存工具&#xff1a;/usr/sbin/ipvsadm-save 5.規則重載工具&#xff1a;/usr/sbin/ipvsadm-restore 6.配置文件&#xff1a…

C#.NET 集合框架詳解

簡介 C# 集合框架是處理數據集合的核心組件&#xff0c;位于 System.Collections 和 System.Collections.Generic 命名空間。它提供了多種數據結構來高效存儲和操作數據。 集合框架概覽 System.Collections (非泛型老版) └─ System.Collections.Generic (泛…

網絡劫持對用戶隱私安全的影響:一場無形的數據竊取危機

在互聯網時代&#xff0c;網絡劫持如同一把“隱形鐮刀”&#xff0c;悄然威脅著用戶的隱私安全。當我們在瀏覽網頁、使用社交媒體或進行在線交易時&#xff0c;看似正常的網絡連接背后&#xff0c;可能正暗藏著數據被竊取的風險。網絡劫持通過多種技術手段干預用戶與服務器的正…

使用 Helm 下載 Milvus 安裝包(Chart)指南

目錄 &#x1f4e6; 使用 Helm 下載 Milvus 安裝包&#xff08;Chart&#xff09;指南 &#x1f6e0; 環境準備 &#x1f680; 第一步&#xff1a;添加 Milvus Helm 倉庫 &#x1f50d; 第二步&#xff1a;查看可用版本 &#x1f4e5; 第三步&#xff1a;下載指定版本的 C…

EXTI 外部中斷

目錄 STM32中斷 NVIC 中斷控制器 NVIC優先級分組 EXTI 外部中斷 AFIO 復用IO口 外部中斷/事件控制器&#xff08;EXTI&#xff09;框圖 STM32中斷 在STM32微控制器中&#xff0c;共有68個可屏蔽中斷通道&#xff0c;涵蓋了多個外設&#xff0c;如外部中斷&#xff08;EXT…

WebApplicationType.REACTIVE 的webSocket

通用請求體類 Data ApiModel("websocket請求消息") public class WebSocketRequest<T> implements Serializable {private static final long serialVersionUID 1L;/*** 參考&#xff1a;com.mcmcnet.gacne.basic.service.common.pojo.enumeration.screen.AiB…

降本增效!自動化UI測試平臺TestComplete并行測試亮點

在跨平臺自動化測試中&#xff0c;企業常面臨設備投入高、串行測試耗時長、測試覆蓋率難以兼顧的困境。自動化UI測試平臺TestComplete的并行測試引擎提供了有效的解決方案&#xff1a;通過云端海量設備池與CI/CD深度集成&#xff0c;實現多平臺、多瀏覽器并行測試&#xff0c;顯…

云、實時、時序數據庫混合應用:醫療數據管理的革新與展望(上)

云、實時、時序數據庫混合應用:醫療數據管理的革新與展望 1、引言 1.1 研究背景與意義 在信息技術飛速發展的當下,醫療行業正經歷著深刻的數字化轉型。這一轉型不僅是技術層面的革新,更是關乎醫療體系未來發展方向的深刻變革。從醫療服務的提供方式,到醫療管理的模式,再…

代碼隨想錄算法訓練營十六天|二叉樹part06

LeetCode 530 二叉搜索樹的最小絕對差 題目鏈接&#xff1a;530. 二叉搜索樹的最小絕對差 - 力扣&#xff08;LeetCode&#xff09; 給你一個二叉搜索樹的根節點 root &#xff0c;返回 樹中任意兩不同節點值之間的最小差值 。 差值是一個正數&#xff0c;其數值等于兩值之差…

自增主鍵為什么不是連續的?

前言 如果一個線程回滾&#xff0c;例如唯一鍵沖突的情況回滾時&#xff0c;回滾了sql語句&#xff0c;但是并沒有把自增的值也-1。那么就會導致下一條插入的數據自增id出現了跳躍。 自增主鍵為什么不是連續的&#xff1f;前言執行時機為什么自增主鍵不是連續的為什么不回滾自…

OpenCV圖像基本操作:讀取、顯示與保存

在圖像處理項目中&#xff0c;圖像的 讀取&#xff08;imread&#xff09;、顯示&#xff08;imshow&#xff09; 和 保存&#xff08;imwrite&#xff09; 是最基礎也是最常用的三個操作。本文將詳細介紹這三個函數的功能、用法和注意事項&#xff0c;并提供一個完整示例供讀者…

.NET控制臺應用程序中防止程序立即退出

在VB.NET控制臺應用程序中防止程序立即退出&#xff0c;主要有以下幾種常用方法&#xff0c;根據需求選擇適合的方案&#xff1a; 方法1&#xff1a;等待用戶輸入&#xff08;推薦&#xff09; Module Module1Sub Main()Console.WriteLine("程序開始運行...") 這里是…

Vue3 + Three.js 極速入門:打造你的第一個3D可視化項目

文章目錄前言一、環境準備1.1 創建Vue3項目1.2 安裝Three.js二、Three.js核心概念速覽三、實戰&#xff1a;創建旋轉立方體3.1 組件化初始化四、核心代碼解析4.1 Vue3響應式整合技巧4.2 性能優化要點五、進階功能擴展5.1 數據驅動控制5.2 加載3D模型六、常見問題解決七、資源推…

【設計模式】享元模式(輕量級模式) 單純享元模式和復合享元模式

享元模式&#xff08;Flyweight Pattern&#xff09;詳解一、享元模式簡介 享元模式&#xff08;Flyweight Pattern&#xff09; 是一種 結構型設計模式&#xff08;對象結構型模式&#xff09;&#xff0c;它通過共享技術實現相同或相似對象的重用&#xff0c;以減少內存占用和…

驅動開發_2.字符設備驅動

目錄1. 什么是字符設備2. 設備號2.1 設備號概念2.2 通過設備號dev分別獲取主、次設備號的宏函數2.3 主設備號的申請靜態申請動態分配2.4 注銷設備號3. 字符設備3.1 注冊字符設備3.2 注銷字符設備3.3 應用程序和驅動程序的關系3.4 file_opertaions結構體3.5 class_create3.6 創建…

直播推流技術底層邏輯詳解與私有化實現方案-以rmtp rtc hls為例-優雅草卓伊凡

直播推流技術底層邏輯詳解與私有化實現方案-以rmtp rtc hls為例-優雅草卓伊凡由于我們的甲方客戶要開始為我們項目產品上加入私有化的直播&#xff0c;這塊不得不又撿起來曾經我們做直播推流的事情了&#xff0c;其實私有化直播一直并不是一件容易的事情&#xff0c;現在大部分…

一文讀懂現代卷積神經網絡—深度卷積神經網絡(AlexNet)

目錄 深度卷積神經網絡&#xff08;AlexNet&#xff09;是什么&#xff1f; 一、AlexNet 的核心創新 1. 深度架構 2. ReLU 激活函數 3. 數據增強 4. Dropout 正則化 5. GPU 并行計算 6. 局部響應歸一化&#xff08;LRN&#xff09; 二、AlexNet 的網絡結構 三、AlexN…

JVM 垃圾收集算法全面解析

1. 引言1.1 為什么需要垃圾收集&#xff1f;在Java應用中&#xff0c;垃圾收集&#xff08;Garbage Collection&#xff0c;GC&#xff09;是一個至關重要的機制&#xff0c;它使得開發者不需要手動管理內存。與傳統的語言&#xff08;如C或C&#xff09;不同&#xff0c;Java通…