css3-grid:grid 布局 / 基礎使用

一、理解 grid

?

二、理解 css?grid 布局

CSS Grid布局是一個二維的布局系統,它允許我們通過定義網格和網格中每個元素的位置和尺寸來進行頁面布局。CSS Grid是一個非常強大的布局系統,它不僅可以用于構建網格布局,還可以用于定位元素,并且可以很好地處理復雜的布局。

CSS Grid布局由兩個主要的組成部分組成:容器和項目。容器是我們要定義網格的元素,它的display屬性必須設置為grid或inline-grid。而項目是容器內的元素,它們被放置在網格中,并占據一個或多個網格單元。

要創建一個網格布局,我們需要先定義一個網格容器,然后使用grid-template-columns和grid-template-rows屬性定義行和列的大小和數量。我們還可以使用grid-column和grid-row屬性來控制每個項目在網格中的位置。

除了基本的網格布局,CSS Grid還提供了許多其他的布局特性,如重疊元素、自適應大小、對齊和間距等。這使得我們能夠使用CSS Grid來創建各種各樣的布局,從簡單的網格到復雜的響應式布局,以滿足不同的設計需求。

CSS Grid布局是一個靈活、強大和易于使用的布局系統,它提供了許多功能來幫助我們創建各種各樣的布局。它已經受到了廣泛的支持,并且越來越受到前端開發人員的重視。

三、grid布局有哪些核心概念

序號概念概念描述
1網格容器(Grid Container)包含整個CSS Grid布局的父元素,通過設置該元素的display屬性為grid或inline-grid,即可將其定義為網格容器。
2網格線(Grid Line)網格容器中劃分行列的分割線,可以通過數字或名稱進行標識。
3網格軌道(Grid Track)兩個相鄰網格線之間的空間稱為網格軌道(可以是行軌道或列軌道),可以通過設置grid-template-columns和grid-template-rows屬性來定義。
4網格單元(Grid Cell)兩個相鄰行列網格線交叉形成的方塊區域,用于定義網格中的項目。
由四個相鄰的網格線所圍成的矩形區域,是網格中的基本單位。
5網格項(Grid Item)網格容器中的任何元素都可以成為網格項,規定了網格項在網格單元中的位置和大小。
位于網格單元中的內容,可以是任何HTML元素。
6網格區域(Grid Area)由多個網格單元組成的矩形區域,用于定義項目的位置和跨度。
可以通過grid-template-areas屬性進行定義。
7網格模板(Grid Template)通過設置grid-template-columns和grid-template-rows屬性來定義網格軌道的大小和數量。
描述網格行數、列數和每個單元格的大小,可以通過grid-template-rows、grid-template-columns和grid-template-areas屬性進行定義。
8網格屬性(grid property)用于控制網格項在網格容器中的位置和大小,包括grid-row、grid-column、grid-row-start、grid-column-start、grid-row-end、grid-column-end等屬性。
9對齊(Alignment)設置網格項在網格單元中水平和垂直方向的對齊方式,可以分別使用justify-items和align-items屬性,也可以使用justify-self和align-self屬性分別定義每個網格項的對齊方式。
10重疊(Overlap)CSS Grid布局允許網格項在網格單元中互相重疊,這可以通過設置grid-template-areas屬性來實現。
理解這些核心概念可以更好地理解和使用CSS Grid布局。

四、瀏覽器兼容性

不考慮老舊的瀏覽器已經是可以使用了。

舊版瀏覽器可能需要添加一些前綴才能支持CSS Grid布局,而新版瀏覽器已經不需要前綴了。在編寫CSS Grid布局時,建議用適當的前綴完成兼容性工作,現在css工具也可以自動添加。

如果您的站點需要支持較老版本的瀏覽器,可以使用其他CSS布局方式來彌補CSS Grid布局的缺陷。例如,可以使用Flexbox布局或傳統的基于表格的布局來實現相應的設計效果。

五、當設置了 grid 布局后,哪些屬性將失效

當設置了 grid 布局后,以下屬性將失效
序號屬性備注
1float
2clear
3display: table-cell
4vertical-align
5width通過 grid-template-columns 和 grid-template-rows 定義列和行寬度
6height通過 grid-template-columns 和 grid-template-rows 定義列和行高度
7margin相關屬性(margin-top、margin-right、margin-bottom、margin-left、margin、margin-inline、margin-block)
8padding相關屬性(padding-top、padding-right、padding-bottom、padding-left、padding、padding-inline、padding-block)
9display: inline-gridinline-grid 只能定義單行/單列
以上屬性失效是因為 grid 布局已經提供了更加靈活和高效的布局方式

六、grid 常用屬性

序號屬性屬性描述
1display用于定義網格容器的類型,可以設置為grid或inline-grid
2grid-template-columns
grid-template-rows
用于定義網格的列數和行數,可以使用長度、百分比、auto、minmax()等值進行設置。
3grid-template-areas用于定義網格區域,在一個字符串中使用空格分隔每個單元格,可以使用句點(.)表示一個空單元格,使用名稱為none的單元格將不被占用
4grid-template用于同時定義網格的列數、行數和區域。
5grid-column-gap
grid-row-gap
用于定義網格行和列之間的間隙
6grid-auto-columns
grid-auto-rows
用于定義自動網格的列數和行數,當網格中的單元格無法滿足網格模板時,會使用自動網格填充剩余空間。
7grid-auto-flow用于定義自動網格的方向,可以設置為row、column或dense。
8grid-column-start
grid-column-end
grid-row-start
grid-row-end
用于定義單元格的位置,通過網格線的位置進行設置。
9grid-column
grid-row
用于同時定義單元格的開始和結束位置。
10grid-area用于為單元格定義一個名稱,以便在grid-template-areas屬性中進行引用
了解和掌握這些屬性可以幫助我們更好地使用CSS Grid布局來實現網頁布局。

七、DEMO

布局:大屏方案(grid)_大屏布局方案_snow@li的博客-CSDN博客

八、歡迎交流指正

參考鏈接

css3-flex布局:基礎使用 / Flexbox布局_snow@li的博客-CSDN博客

grid布局詳解 - Des李白 - 博客園

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

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

相關文章

ahooks.js:一款強大的React Hooks庫及其API使用教程(一)

一、ahooks.js簡介二、ahooks.js安裝三、ahooks.js API介紹與使用教程1. useRequest2. useAntdTable3. useSize4. useBoolean5. useToggle6. useHover7. useDebounce8. useEventListener9. useFusionTable10. useKeyPress11. useLoading12. usePrevious13. useForm14. useUpdat…

代碼審計-ASP.NET項目-未授權訪問漏洞

代碼審計必備知識點: 1、代碼審計開始前準備: 環境搭建使用,工具插件安裝使用,掌握各種漏洞原理及利用,代碼開發類知識點。 2、代碼審計前信息收集: 審計目標的程序名,版本,當前環境(系統,中間件…

Flink源碼之State創建流程

StreamOperatorStateHandler 在StreamTask啟動初始化時通過StreamTaskStateInitializerImpl::streamOperatorStateContext會為每個StreamOperator 創建keyedStatedBackend和operatorStateBackend,在AbstractStreamOperator中有個StreamOperatorStateHandler成員變量…

Web framework-Gin

一、Gin Go Web--Go Module 軟件框架(software framework),通常指的是為了實現某個業界標準或完成特定基本任務的軟件組件規范,也指為了實現某個軟件組件規范時,提供規范所要求之基礎功能的軟件產品。 框架就是&#…

機器學習|Softmax 回歸的數學理解及代碼解析

機器學習|Softmax 回歸的數學理解及代碼解析 Softmax 回歸是一種常用的多類別分類算法,適用于將輸入向量映射到多個類別的概率分布。在本文中,我們將深入探討 Softmax 回歸的數學原理,并提供 Python 示例代碼幫助讀者更好地理解和…

HarmonyOS NEXT新能力,一站式高效開發HarmonyOS應用

2023年8月6日華為開發者大會2023(HDC.Together)圓滿收官,伴隨著HarmonyOS 4的發布,華為向開發者發布了匯聚所有最新開發能力的HarmonyOS NEXT開發者預覽版,并分享了圍繞“一次開發,多端部署” “可分可合&a…

代碼隨想錄算法訓練營第60天|動態規劃part17| 647. 回文子串、516.最長回文子序列、動態規劃總結篇

代碼隨想錄算法訓練營第60天|動態規劃part17| 647. 回文子串、516.最長回文子序列、動態規劃總結篇 647. 回文子串 647. 回文子串 思路: 暴力解法 兩層for循環,遍歷區間起始位置和終止位置,然后還需要一層遍歷判斷…

【mysql】—— 表的增刪改查

目錄 序言 (一)Create操作 1、單行數據 全列插入 2、多行數據 指定列插入 3、插入否則更新 4、直接替換 (二)Retrieve操作 1、SELECT 列 1??全列查詢 2??指定列查詢 3??查詢字段為表達式 4??為查詢結果指定…

數據結構——堆

數據結構——堆 堆堆簡介堆的分類 二叉堆過程插入操作 刪除操作向下調整: 增加某個點的權值實現參考代碼:建堆方法一:使用 decreasekey(即,向上調整)方法二:使用向下調整 應用對頂堆 其他&#…

Python Flask+Echarts+sklearn+MySQL(評論情感分析、用戶推薦、BI報表)項目分享

Python FlaskEchartssklearnMySQL(評論情感分析、用戶推薦、BI報表)項目分享 項目背景: 隨著互聯網的快速發展和智能手機的普及,人們越來越傾向于在網上查找餐廳、購物中心、酒店和旅游景點等商戶的點評和評分信息,以便做出更好的消費決策。…

YOLOv8 : 網絡結構

一. YOLOv8網絡結構 1. Backbone YOLOv8的Backbone同樣參考了CSPDarkNet-53網絡,我們可以稱之為CSPDarkNet結構吧,與YOLOv5不同的是,YOLOv8使用C2f(CSPLayer_2Conv)代替了C3模塊(如果你比較熟悉YOLOv5的網絡結構,那YOLOv8的網絡…

【GitHub】Pycharm本地項目打包上傳到Github倉庫的操作步驟

文章目錄 1、Pycharm端的設置操作2、Github端的設置操作3、Pycharm上配置Github4、Git本地項目至GitHub倉庫5、前往Github中查看確認6、常見報錯 1、Pycharm端的設置操作 通過CtrlAltS快捷組合鍵的方式,打開設置,導航到版本控制一欄中的Git,…

Gin安裝解決國內go 與 熱加載

get 方式安裝超時問題,國內直接用官網推薦的下面這個命令大概率是安裝不成功的 go get -u github.com/gin-gonic/gin 可以在你的項目目錄下執行下面幾個命令: 比如我的項目在E:\Oproject\zl cmd E:\Oproject\zl>就在目錄下執行 go env -w GO111…

回歸預測 | MATLAB實現GRU門控循環單元多輸入多輸出

回歸預測 | MATLAB實現GRU門控循環單元多輸入多輸出 目錄 回歸預測 | MATLAB實現GRU門控循環單元多輸入多輸出預測效果基本介紹程序設計往期精彩參考資料 預測效果 基本介紹 MATLAB實現GRU門控循環單元多輸入多輸出,數據為多輸入多輸出預測數據,輸入10個…

pytorch安裝VAE項目詳解

安裝VAE項目 一、 基本環境二、代碼來源三、搭建conda環境四、下載數據集五、啟動項目六、其他相關問題 一、 基本環境 工具版本號OSwin 11pycharm2020.1GPU3050 二、代碼來源 github地址為: https://github.com/AntixK/PyTorch-VAE/blob/8700d245a9735640dda458d…

ZooKeeper的應用場景(集群管理、Master選舉)

5 集群管理 隨著分布式系統規模的日益擴大,集群中的機器規模也隨之變大,因此,如何更好地進行集群管理也顯得越來越重要了。 所謂集群管理,包括集群監控與集群控制兩大塊,前者側重對集群運行時狀態的收集,后…

08 - 追加commit和修改最新的commit message

查看所有文章鏈接:(更新中)GIT常用場景- 目錄 文章目錄 1. 追加提交2. 修改最新的commit message 1. 追加提交 將改動追加到上一次的commit 現在我已經修改了Readme文件并且已經add、commit操作,但是還沒有push到遠程倉庫&#x…

【左神算法刷題班】第17節:在有序二維數組中查找目標值、等于目標字符串的子序列個數

第17節 題目1:在有序二維數組中查找目標值 給定一個每一行有序、每一列也有序,整體可能無序的二維數組 再給定一個數num, 返回二維數組中有沒有num這個數 例子 數組如下,找 6 是否存在。 1 3 5 7 2 4 6 13 3 9 14 …

“心理健康人工智能產學研創新聯盟”揭牌成立|深蘭科技

8月14日上午,“2023樹洞救援年會”在上海舉行,會上舉行了“心理健康人工智能產學研創新聯盟”的簽約和揭牌儀式。“樹洞行動救援團”創始人深蘭科技科學院智能科學首席科學家、荷蘭阿姆斯特丹自由大學人工智能系終身教授黃智生,深蘭科技集團創…

華納云:ubuntu啟動寶塔的方法是什么

要在Ubuntu上啟動寶塔面板(BT Panel),請按照以下步驟操作: 下載并安裝寶塔面板: 在終端中執行以下命令,以下載并運行寶塔面板的安裝腳本: sudo su wget -O install.sh http://download.bt.c…