CSS中篇

#Flex布局#

1、什么是flex布局?

flex 布局,全稱彈性布局(Flexible Box Layout),是 CSS3 中引入的一種新的布局模式。它主要通過給容器設置相關屬性,來控制容器內部子元素的排列方式。相比傳統的浮動布局和定位布局,flex 布局更加靈活、直觀,尤其適合響應式設計。?

簡單來說,使用 flex 布局時,我們會有一個 “容器”,容器里面的元素被稱為 “項目”。容器就像一個彈性的盒子,項目會根據容器的設置,以彈性的方式進行排列。

2、如何開啟 flex 布局?

開啟 flex 布局非常簡單,只需要給容器添加display: flex;屬性即可。例如:

.container {display: flex;
}

當容器設置為 flex 布局后,它的子元素(項目)就會自動成為 flex 項目,此時項目的 float、clear 和 vertical-align 屬性將失效。

3、flex 布局的核心概念

  • 主軸:flex 項目默認沿著主軸排列。主軸的方向可以是水平的(默認,從左到右),也可以通過屬性修改為垂直的(從上到下)等。?
  • 交叉軸:與主軸垂直的軸就是交叉軸。主軸方向變化時,交叉軸方向也會相應變化。

4、容器的主要屬性

容器上有很多重要的屬性,通過設置這些屬性,可以改變項目的排列方式。?

1、flex-direction:決定主軸的方向?

  • row(默認):主軸為水平方向,起點在左端。?
  • row-reverse:主軸為水平方向,起點在右端。?
  • column:主軸為垂直方向,起點在上沿。?
  • column-reverse:主軸為垂直方向,起點在下沿。?

2、justify-content:定義項目在主軸上的對齊方式

  • flex-start(默認):左對齊。?
  • flex-end:右對齊。?
  • center:居中。?
  • space-between:兩端對齊,項目之間的間隔相等。?
  • space-around:每個項目兩側的間隔相等,所以項目之間的間隔比項目與容器邊框的間隔大一倍。

3、align-items:定義項目在交叉軸上的對齊方式

  • flex-start:交叉軸的起點對齊。?
  • flex-end:交叉軸的終點對齊。?
  • center:交叉軸的中點對齊。?
  • baseline:項目的第一行文字的基線對齊。?
  • stretch(默認):如果項目未設置高度或設為 auto,將占滿整個容器的高度。

4、flex-wrap:定義項目是否換行

  • nowrap(默認):不換行,項目會壓縮寬度以適應容器。?
  • wrap:換行,第一行在上方。?
  • wrap-reverse:換行,第一行在下方。

5、align-content:定義多根軸線的對齊方式(如果項目只有一根軸線,該屬性不起作用)

  • flex-start:與交叉軸的起點對齊。?
  • flex-end:與交叉軸的終點對齊。?
  • center:與交叉軸的中點對齊。?
  • space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布。?
  • space-around:每根軸線兩側的間隔相等,所以軸線之間的間隔比軸線與容器邊框的間隔大一倍。?
  • stretch(默認):軸線占滿整個交叉軸。

5、項目的主要屬性

除了容器的屬性,項目也有一些常用的屬性,可以單獨控制某個項目的表現。

1、flex-grow:定義項目的放大比例,默認為 0,即如果存在剩余空間,也不放大。當所有項目的 flex-grow 屬性都為 1 時,它們將等分剩余空間;如果其中一個項目的 flex-grow 屬性為 2,其他項目都為 1,則前者占據的剩余空間將比其他項多一倍。

2、flex-shrink:定義項目的縮小比例,默認為 1,即如果空間不足,項目將縮小。如果一個項目的 flex-shrink 屬性為 0,其他項目都為 1,則空間不足時,前者不縮小。

3、flex-basis:定義在分配多余空間之前,項目占據的主軸空間。默認值為 auto,即項目的本來大小。

4、flex:是 flex-grow、flex-shrink 和 flex-basis 的簡寫,默認值為 0 1 auto。該屬性有兩個快捷值:auto(1 1 auto)和 none(0 0 auto)。

5、align-self:允許單個項目有與其他項目不同的對齊方式,可覆蓋 align-items 屬性。默認值為 auto,表示繼承父元素的 align-items 屬性,如果沒有父元素,則等同于 stretch。其取值與 align-items 類似。

6、order:定義項目的排列順序。數值越小,排列越靠前,默認為 0。

6、注意事項

  • 當容器設置為 flex 布局后,子元素的 float、clear 和 vertical-align 屬性失效。?
  • flex 布局是單向的,要么沿主軸排列,要么沿交叉軸排列,不能同時在兩個方向上進行復雜的排列。?
  • 在使用 flex-wrap: wrap 時,要注意項目的寬度設置,避免出現意想不到的換行效果。

#Grid布局#

1、Grid布局是什么?

grid 布局,即網格布局,是 CSS 中另一種強大的布局模式。它與 flex 布局不同,flex 布局主要處理一維布局(要么是行,要么是列),而 grid 布局則是專門為二維布局(同時處理行和列)設計的。?

可以把 grid 布局想象成一張表格,有行和列,行和列交叉形成的區域就是單元格,我們可以把元素放在這些單元格中,還能讓元素跨多行或多列。

2、如何開啟 grid 布局?

開啟 grid 布局也很簡單,給容器添加display: grid;屬性就行。例如:

.container {display: grid;
}

當容器設置為 grid 布局后,它內部的子元素就成為了 grid 項目。

3、grid 布局的核心概念

要理解 grid 布局,需要先清楚這些核心概念:?

  • 容器:設置了display: grid;的元素,是所有項目的父元素。?
  • 項目:容器內部的子元素。?
  • 行和列:容器被劃分成若干水平的行和垂直的列。?
  • 行間距和列間距:行與行之間的距離叫行間距,列與列之間的距離叫列間距。?
  • 單元格:行和列交叉形成的最小單位。?
  • 網格線:劃分行和列的線,水平的是行網格線,垂直的是列網格線。

4、容器的主要屬性

(1)、grid-template-columns 和 grid-template-rows:定義列的寬度和行的高度?,可以直接指定具體的長度,也可以使用 fr 單位(表示剩余空間的等分比例)。

.container {display: grid;grid-template-columns: 100px 1fr 2fr; /* 三列,第一列寬100px,第二列占1份剩余空間,第三列占2份 */grid-template-rows: 50px 100px; /* 兩行,第一行高50px,第二行高100px */
}

還可以使用repeat()函數簡化重復的值,比如grid-template-columns: repeat(3, 100px);表示三列,每列寬 100px。

(2)、grid-row-gap 和 grid-column-gap:設置行間距和列間距,也可以用grid-gap簡寫(grid-gap: 行間距 列間距;)。

.container {grid-row-gap: 10px;grid-column-gap: 20px;/* 等同于 grid-gap: 10px 20px; */
}

在較新的 CSS 標準中,這些屬性的前綴grid-可以省略,直接寫row-gap、column-gap、gap。

(3)、grid-template-areas:定義網格區域。先給項目指定grid-area屬性命名,然后在容器中用grid-template-areas來規劃區域。

.container {grid-template-areas:"header header header""sidebar main main""footer footer footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }

這樣就定義了一個三行三列的網格,第一行是 header 區域,第二行左側是 sidebar 區域,右側是 main 區域,第三行是 footer 區域。

(4)、justify-items:設置項目在單元格中水平方向的對齊方式?。取值有start(左對齊)、end(右對齊)、center(居中)、stretch(拉伸,占滿單元格寬度,默認值)。?

(5)、align-items:設置項目在單元格中垂直方向的對齊方式?。取值有start(上對齊)、end(下對齊)、center(居中)、stretch(拉伸,占滿單元格高度,默認值)。?

(6)、justify-content:當網格總寬度小于容器寬度時,設置網格在容器水平方向的對齊方式?。取值有start、end、center、space-around(網格兩側間距相等,網格之間間距是兩側的兩倍)、space-between(網格之間間距相等,兩側沒有間距)、space-evenly(網格之間和兩側的間距都相等)。?

(7)、align-content:當網格總高度小于容器高度時,設置網格在容器垂直方向的對齊方式?。取值與justify-content類似。

5、項目的主要屬性

項目也有一些屬性來控制自身的位置和大小:?

1、grid-column-start 和 grid-column-end:設置項目所占列的起始和結束位置(基于列網格線)?

例如,grid-column-start: 1; grid-column-end: 3;表示項目從第 1 根列網格線開始,到第 3 根列網格線結束,也就是跨 2 列。可以簡寫為grid-column: 1 / 3;。?

2、grid-row-start 和 grid-row-end:設置項目所占行的起始和結束位置(基于行網格線)?

類似列的設置,簡寫為grid-row: 1 / 3;,表示項目跨 2 行。?

3、grid-area:有兩個作用,一是給項目命名(配合容器的grid-template-areas使用),二是直接指定項目的位置,是grid-row-start、grid-row-end、grid-column-start、grid-column-end的簡寫,格式為grid-area: 行起始 / 列起始 / 行結束 / 列結束;。?

4、justify-self:設置單個項目在單元格水平方向的對齊方式,可覆蓋容器的justify-items屬性,取值與justify-items相同。?

5、align-self:設置單個項目在單元格垂直方向的對齊方式,可覆蓋容器的align-items屬性,取值與align-items相同。

6、注意事項

  • grid 布局是二維的,更適合復雜的網格布局,而 flex 布局適合一維布局,實際開發中可以根據需求結合使用。?
  • 項目的 margin 不會重疊,和 grid 布局的間距一起生效。?
  • 當項目設置了固定大小,而網格空間不足時,可能會出現溢出的情況,需要注意調整。

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

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

相關文章

《云計算藍皮書 2025 》發布:云計算加速成為智能時代核心引擎

近日,中國信息通信研究院發布了《云計算藍皮書(2025 年)》,全面剖析了云計算領域的發展現狀與未來趨勢。在人工智能蓬勃發展的當下,云計算正從基礎資源供給向智能時代的核心引擎加速轉變,成為重塑全球數字競…

excel刪除重復項場景

問題描述 問題描述:因為表格中存在多條相同的數據,我現在excel有一列,值為#N/A 。另外有列叫做藥品名稱、規格、廠家 我要刪除值為 #N/A,并且 藥品名稱、規格、廠家相等的數據,那條相同的刪掉,只保留一條,…

Vue 3 與 Element Plus 中的 /deep/ 選擇器問題

Vue 3 與 Element Plus 中的 /deep/ 選擇器問題 在 Vue3 中使用 Element Plus 組件時,使用 ::v-deep或 :deep()的場景取決于 ??樣式作用域?? 和 ??選擇器目標??。以下是關鍵區別:

2025暑期—06神經網絡-常見網絡

六個濾波核提取特征Maps5X5 卷積核,1個閾值 6個元素,卷積后兩邊各少兩個,28*28像素 又有6個卷積核,所以有122304個連接,連接數不多是因為很多都是公用參數的。池化是參數池化,和當前平均最大不一樣。編程14…

硅基計劃3.0 學習總結 叁 棧和隊列

文章目錄一、棧1. 模擬實現棧2. 小試牛刀1. 判斷一個棧的出棧順序是否為題目給定情況2. 括號匹配3. 逆波蘭表達式求值4. 求最小棧元素3. 單鏈表實現棧二、隊列1. 官方隊列類Queue2. 雙向鏈表模擬實現Queue類3. 順序表模擬實現Queue類4. 雙端隊列5. 隊列實現棧6. 棧實現隊列一、…

飛行控制領軍者 | 邊界智控攜高安全級飛控系統亮相2025深圳eVTOL展

2025深圳eVTOL展將于2025年9月23日至25日在深圳坪山燕子湖國際會展中心盛大舉辦。本屆展會以 “低空經濟?eVTOL?航空應急救援?商載大型無人運輸機” 為核心,預計將匯聚200余位發言嘉賓、500 余家頂尖展商及15,000余名專業觀眾,規模盛大,精…

React狀態管理——Dva

目錄 一、安裝依賴 二、Dva注冊model方式 2.1 自動注冊models 2.2 手動注冊model方式 三、創建 dva 實例 四、創建 model 五、在組件中使用 六、動態加載Dva Model Dva 是一個基于 redux 和 redux-saga 的輕量級前端框架,可以方便地在 React 應用中管理狀態…

編程與數學 03-002 計算機網絡 05_以太網技術

編程與數學 03-002 計算機網絡 05_以太網技術一、以太網的基本原理(一)CSMA/CD協議的工作原理(二)以太網的幀結構二、以太網的拓撲結構與設備(一)傳統以太網的拓撲結構(二)交換機的工…

解決英文版Windows10安裝WireShark報錯

問題點擊WireShark安裝包進行安裝時報錯原因編碼方式故障解決方式修改操作系統編碼1.WinR,輸入Control,打開控制面板2.點擊Small icons3.點擊Region4.設置編碼UTF-8

利用aruco標定板標定相機

1、生成aruco標定板#include <opencv2/opencv.hpp> #include <opencv2/aruco.hpp> #include <opencv2/objdetect/aruco_detector.hpp> #include <iostream> #include <string>using namespace cv; using namespace std;int main() {int markers…

C/C++語言程序使用三種主要的內存分配方式,和python語言一樣么?

這是一個很好的比較問題&#xff01;C/C 和 Python 在內存分配方式上有本質的區別&#xff0c;雖然它們最終使用的都是計算機的物理內存&#xff08;堆、棧等&#xff09;&#xff0c;但語言層面提供的抽象和管理機制完全不同。核心區別&#xff1a;控制權&#xff1a; C/C 程序…

小電流驅動大電流:原理、實現方式與應用前景

目錄 一、什么是“小電流驅動大電流”&#xff1f; 舉個例子&#xff1a; 二、核心原理與實現方式 1. 電流放大原理 2. 電子開關元件 3. 控制電路設計 4. 附加保護措施 三、為什么采用“小電流驅動大電流”&#xff1f; 1. 提高安全性 2. 降低能耗 3. 改善效率 4. …

【DM數據守護集群搭建-讀寫分離】

DM數據守護集群搭建-讀寫分離 讀寫分離集群由一個主庫以及一個或者多個配置了即時&#xff08;Timely&#xff09;歸檔或實時&#xff08;Realtime&#xff09;歸檔的備庫組成&#xff0c;其主要目標是在保障數據庫可用性基礎上&#xff0c;實現讀、寫操作的自動分離&#xff0…

earth靶場

1、找ip和端口主機是192.168.6.213&#xff0c;因此靶場ip就是192.168.6.34&#xff0c;三個端口開放&#xff0c;我們去訪問一下頁面。三個端口都無法訪問。我們使用nmap進行dns解析。nmap -A -p- -T4 -sV 192.168.6.34把這兩條解析添加到hosts文件中去&#xff0c;這樣我們才…

Kafka——Java消費者是如何管理TCP連接的?

引言在分布式消息系統中&#xff0c;網絡連接是數據流轉的"血管"&#xff0c;其管理效率直接決定了系統的吞吐量、延遲與穩定性。作為Kafka生態中負責數據消費的核心組件&#xff0c;Java消費者&#xff08;KafkaConsumer&#xff09;的TCP連接管理機制一直是開發者理…

idea監控本地堆棧

idea 安裝插件 VisualVM Launcher重啟idea后&#xff0c;配置 VisualVM 屬性選擇自己jdk的 jvisualvm啟動時&#xff0c;選擇監控&#xff0c;會自動彈出 VisualVM

系統性提升大模型回復準確率:從 RAG 到多層 Chunk 策略

大語言模型&#xff08;LLM&#xff09;在問答、搜索、對話等任務中展現出強大的生成能力&#xff0c;但它并不具備真實世界知識的完全記憶與對齊能力&#xff0c;尤其在涉及復雜信息、長文檔引用或領域細節時&#xff0c;其“幻覺”問題&#xff08;hallucination&#xff09;…

【神經網絡概述】從感知機到深度神經網絡(CNN RNN)

文章目錄1. 神經網絡基礎1.1 感知器&#xff08;Perceptron)1.2 深度神經網絡&#xff08;DNN&#xff09;2. 卷積神經網絡&#xff08;CNN&#xff09;2.1 核心思想2.2 典型結構2.3 ?程碑模型:2.4 卷積層 - CNN 核心2.5 池化層3. 循環神經網絡&#xff08;RNN&#xff09;3.1…

界面規范3-列表下

4、內容文字有鏈接的采用藍色字體<font colorblue></font>重要內容采用紅字字體&#xff0c;如狀態<font colorred></font>一般字體使用color: #3232325、行高height: 40px;line-height: 40px;6、其他表格占滿界面空間&#xff0c;內容多時&#xff0c…

中文語音識別與偏誤檢測系統開發

中文語音識別與偏誤檢測系統開發 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家&#xff0c;覺得好請收藏。點擊跳轉到網站。 1. 系統概述 本系統旨在開發一個基于Paraformer模型的中文語音識別與偏誤檢…