float,flex和grid布局

頁面布局往往會影響著整體的結構與項目的樣式,通常我們用的布局方式有三種:float,flex,grid

1.float或position布局
1.1概念
? ? ?首先對于一個頁面來說,有浮動流,文檔流,文本流這幾種模式,而float布局則是脫離文檔流而不脫離文本流,就是頁面的元素會無視這個浮動的元素,正常布局的正常布局,只是浮動的元素會在正常的元素上方就像浮起來了。
浮動會激活元素的BFC(塊級格式化上下文),使元素脫離文檔流,它是一個獨立的渲染區域,有自己的渲染規則,與這個區域外部的規則毫無關系

1.2實現
? ? ?通過position或float來實現布局,首先使用float讓其浮動,脫離文檔流,就好比像有兩層空間,一般寫的元素的在一層,浮動的則是在另一層。position如果是絕對定位(absolute),也會浮動起來,就需要設置left,right,top,bottom這四個屬性去移動


<!DOCTYPE html>
<html>
? ? <head>
? ? ? ? <meta charset="UTF-8">
? ? ? ? <title>Demo</title>
? ? ? ? <style>
? ? ? ? ? ? .float{
? ? ? ? ? ? ? ?float: left;//靠左浮動
? ? ? ? ? ? ? ?width: 100px;
? ? ? ? ? ? ? ?height: 100px;
? ? ? ? ? ? ? ?background-color: aqua;
? ? ? ? ? ? }
? ? ? ? ? ? .item{
? ? ? ? ? ? ? ? background-color: bisque;
? ? ? ? ? ? ? ? width: 100%;
? ? ? ? ? ? ? ? height: 500px;
? ? ? ? ? ? }
? ? ? ? </style> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? </head>
? ? <body>
? ? ? ? <div class="container">
? ? ? ? ? ? <div class="float">float</div>
? ? ? ? ? ? <div class="item"></div>
? ? ? ? </div>
? ? </body>
</html>

1.3優缺點

?????缺點:步驟繁瑣,使用困難,同時浮動需要清除,不然會影響樣式。同時對于布局構思能力要求很高,現在基本不會用,除非Ie瀏覽器。
?????優點:包容性強大

2.flex布局
2.1概念:
? ? ?flex就是彈性盒子布局,Flex布局是CSS3新增的一種CSS布局模式,它能夠讓元素更加簡便的布局,并支持響應式布局。它通過“容器”和“項目”兩個元素進行布局,允許容器中的項目能夠靈活地伸縮和排列,以適應不同的屏幕尺寸或設備。一般來說父容器,子項目,它的所有子元素自動成為容器成員,稱為Flex項目(flex item),簡稱”項目”。

1.2實現
? ? ?flex布局是一維布局,所以需要設置橫和豎的布局方式,用flex-direction去決定方向。
<!DOCTYPE html>
<html>
? ? <head>
? ? ? ? <meta charset="UTF-8">
? ? ? ? <title>Demo</title>
? ? ? ? <style>
? ? ? ? ? ? .container{
? ? ? ? ? ? ? ?width: 100%;
? ? ? ? ? ? ? ?height: 100px;
? ? ? ? ? ? ? ? background-color: aqua;
? ? ? ? ? ? ? ? //一般設置這三個屬性就行了
? ? ? ? ? ? ? ? display: flex;//定義為flex布局
? ? ? ? ? ? ? ? flex-direction: row;//子元素(項目)排列方式,有row--正方向行,row-reverse--反方向行,column--正方向列,
? ? ? ? ? ? ? ? //column-reverse--反方向列
? ? ? ? ? ? ? ? justify-content: space-around;//有這些值: flex-start | flex-end | center |
? ? ? ? ? ? ? ? // space-between | space-around;
? ? ? ? ? ? }
? ? ? ? ? ? .item{
? ? ? ? ? ? ? ? width: 100px;
? ? ? ? ? ? ? ? height: 100px;
? ? ? ? ? ? ? ? border: black solid 2px;
? ? ? ? ? ? ? ? text-align: center;
? ? ? ? ? ? }
? ? ? ? </style> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? </head>
? ? <body>
? ? ? ? <div class="container">
? ? ? ? ? ? <div class="item" style="background-color: yellow;">yellow</div>
? ? ? ? ? ? <div class="item" style="background-color: blue;">blue</div>
? ? ? ? ? ? <div class="item" style="background-color: pink;">pink</div>
? ? ? ? </div>
? ? </body>
</html>

1.3相關屬性

?????flex布局有些常用的屬性:

flex-direction:定義主軸的方向(row、row-reverse、column、column-reverse);
justify-content:定義元素在主軸上的對齊方式(flex-start、flex-end、center、space-between、space-around);
align-items:定義元素在交叉軸上的對齊方式(flex-start、flex-end、center、baseline、stretch);
flex-wrap:定義元素的換行方式(nowrap、wrap、wrap-reverse);
align-content:定義多行元素在交叉軸上的對齊方式(flex-start、flex-end、center、space-between、space-around、- >stretch);
flex-grow:定義元素的放大比例;
flex-shrink:定義元素的縮小比例;
flex-basis:定義元素在分配多余空間之前的基準大小;
?

1.4優缺點
? ? ?優點:

簡單易用:Flex布局用起來比傳統的布局方式更加方便和快捷。

布局靈活:能夠實現各種方向和大小的布局,確保頁面在不同設備和窗口大小下都能正常顯示。

支持對齊和分布:Flex布局支持多種對齊和分布方式,可用于實現水平居中、垂直居中、頂部對齊、底部對齊等。

自適應:Flex布局可以根據不同的設備和屏幕大小來適應布局,使頁面在各種不同的設備上都能正常顯示。

支持動畫和過渡效果:Flex布局支持動畫和過渡效果,可用于實現各種動態效果。

? ? ?缺點:

兼容性問題:由于Flex布局是CSS3的新特性,舊版本的瀏覽器可能不支持。

可讀性問題:由于Flex布局使用的是大量的flex屬性和值,使得代碼相對較長,可讀性較差

3.grid布局
3.1概念:
? ? ?Grid布局是CSS中一種基于網格的布局方式,它將一個頁面分成了一系列的行和列,并將網格中的內容放置在這些行和列中,可以實現更加靈活和高效的頁面布局。Grid 布局則是將容器劃分成“行"和“列”,產生單元格,然后指定"項目所在”的單元格,功能比flex強大,是一種二維的布局方式。

3.2實現:
? ? ?和flex布局差不多,通過display:grid先實現,在根據grid-template-columns或者 grid-template-rows去設置行與列。

<!DOCTYPE html>
<html>
? ? <head>
? ? ? ? <meta charset="UTF-8">
? ? ? ? <title>Parallax Scrolling Demo</title>
? ? ? ? <style>
? ? ? ? ? ? .container{
? ? ? ? ? ? ? ?width: 100%;
? ? ? ? ? ? ? ?height: 100px;
? ? ? ? ? ? ? ?display: grid;
? ? ? ? ? ? ? ?grid-template-rows:100px 100px ;//設置每一行的寬度,其中每個數字代表這一行
? ? ? ? ? ? ? ?grid-template-columns: 100px 100px;//設置每一列的寬度,其中每個數字代表這一列
? ? ? ? ? ? }
? ? ? ? ? ? .item{
? ? ? ? ? ? ? ? border: black solid 2px;
? ? ? ? ? ? ? ? text-align: center;
? ? ? ? ? ? }
? ? ? ? </style> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? </head>
? ? <body>
? ? ? ? <div class="container">
? ? ? ? ? ? <div class="item" style="background-color: yellow;">yellow</div>
? ? ? ? ? ? <div class="item" style="background-color: blue;">blue</div>
? ? ? ? ? ? <div class="item" style="background-color: pink;">pink</div>
? ? ? ? ? ? <div class="item" style="background-color: pink;">pink</div>
? ? ? ? </div>
? ? </body>
</html>

原本的效果和flex布局一樣

3.3屬性:
? ? ?grid布局的屬性很多,也很復雜

grid-template-columns/grid-template-rows:定義網格的列和行的數量和大小。
grid-template-areas:定義網格模板中的區域名稱。
grid-template:以上兩者的縮寫形式。
grid-column-gap/grid-row-gap/grid-gap:定義列、行、以及列與行之間的間距。
grid-auto-columns/grid-auto-rows:定義沒有列、行指定的網格單元格的大小。
grid-auto-flow:控制自動布局算法在什么方向上填充網格。
3.4 優缺點
優點:

精確的控制布局:可以通過列和行來精確控制每個子元素在布局中的位置和大小。
靈活性:可以使用媒體查詢來針對不同的屏幕尺寸或方向添加或移除列或行。
可維護性:可以很容易地修改布局而不必擔心其他元素的影響。
易于理解:與傳統的 float、position 和 display 屬性相比,Grid 布局的代碼更容易理解和維護。
缺點:

兼容性:雖然 Grid 布局已成為現代瀏覽器的標準,但在舊版瀏覽器中并不支持。開發者需要使用其他方式來提供備用方案。
學習成本高:與傳統的 float、position 和 display 屬性相比,學習和理解 Grid 布局可能需要更長的時間和更高的學習成本。
可讀性差:因為 Grid 布局使用了許多新的術語(如 grid-template-columns 和 grid-template-rows),因此初學者可能需要花更多的時間來理解和閱讀代碼
?

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

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

相關文章

【EI會議征稿中】第六屆下一代數據驅動網絡國際學術會議(NGDN 2024)

第六屆下一代數據驅動網絡國際學術會議&#xff08;NGDN 2024&#xff09; The Sixth International Conference on Next Generation Data-driven Networks 基于前幾屆在英國埃克塞特 (ISPA 2020) 、中國沈陽 (TrustCom 2021) 和中國武漢 (IEEETrustCom-2022)成功舉辦的經驗&a…

若依vue-新建目錄及菜單

前面我們把標題和logo換成了自己系統的標題和logo了 接下來就是要建立自己需要的菜單和頁面 新建目錄解析 在拉下來的代碼跑起來后 有一個系統菜單--菜單管理(如圖) 在這個菜單的這個頁面內有對應的操作功能 修改功能 這個功能可以修改寫好了的菜單數據 例如:名稱/排序/路由…

python:五種算法(DBO、WOA、GWO、PSO、GA)求解23個測試函數(python代碼)

一、五種算法簡介 1、蜣螂優化算法DBO 2、鯨魚優化算法WOA 3、灰狼優化算法GWO 4、粒子群優化算法PSO 5、遺傳算法GA 二、5種算法求解23個函數 &#xff08;1&#xff09;23個函數簡介 參考文獻&#xff1a; [1] Yao X, Liu Y, Lin G M. Evolutionary programming made…

【小白專用】php執行sql腳本 更新23.12.10

可以使用 PHP 的 mysqli 擴展來執行 SQL 腳本。具體步驟如下&#xff1a; 連接到數據庫&#xff1b;打開 SQL 腳本文件并讀取其中的 SQL 語句&#xff1b;逐條執行 SQL 語句&#xff1b;關閉 SQL 腳本文件&#xff1b;關閉數據庫連接。 以下是通過 mysqli 執行 SQL 腳本的示例…

生產問題: 利用線程Thread預加載數據緩存,其它類全局變量獲取緩存偶發加載不到

生產問題: 利用線程Thread預加載數據緩存偶發加載不到 先上代碼 public class ThreadTest {//本地緩存Map<String, Object> map new HashMap<String, Object>();class ThreadA implements Runnable{Overridepublic void run() {System.out.println("Thread…

RT-Thread學習筆記(六):RT_Thread系統死機日志定位

RT_Thread系統死機日志定位 一、RT_Thread系統死機日志定位二、Cortex-M3 / M4架構知識2.1 Cortex-M3 / M4架構概述2.2 寄存器用途 三、排查步驟 一、RT_Thread系統死機日志定位 RT-Thread 系統發生hardfault死機時&#xff0c;系統默認會打印出一系列寄存器狀態幫助用戶定位死…

XML學習及應用

介紹XML語法及應用 1.XML基礎知識1.1什么是XML語言1.2 XML 和 HTML 之間的差異1.3 XML 用途 2.XML語法2.1基礎語法2.2XML元素2.3 XML屬性2.4XML命名空間 3.XML驗證3.1xml語法驗證3.2自定義驗證3.2.1 XML DTD3.2.2 XML Schema3.2.3PCDATA和CDATA區別3.2.4 參考 1.XML基礎知識 1…

AWR1642 boost開發板支持的TI參考設計

打開radar_toolbox_1_30_00_05\source\ti\examples\examples_overview,通過輸入“1642”查找AWR1642 BOOST支持的參考設計,通過篩選,支持AWR1642 BOOST的參考設計如下: 挑選出兩個參考設計上手,一個是“nonos_oob_16xx",不帶OS;另一個是”short range radar“,比較…

Sbatch, Salloc提交任務相關

salloc 申請計算節點&#xff0c;然后登錄到申請到的計算節點上運行指令&#xff1b; salloc的參數與sbatch相同&#xff0c;該部分先介紹一個簡單的使用案例&#xff1b;隨后介紹一個GPU的使用案例&#xff1b;最后介紹一個跨節點使用案例&#xff1b; 首先是一個簡單的例子&a…

基于Java健身房課程管理系統

基于Java健身房課程管理系統 功能需求 1、課程信息管理&#xff1a;系統需要能夠記錄和管理所有課程的詳細信息&#xff0c;包括課程名稱、教練信息、課程時間、課程地點、課程容量等。管理員和教練可以添加、編輯和刪除課程信息。 2、會員信息管理&#xff1a;系統需要能夠…

無服務器監控工具的演變:提高效率和性能

無服務器計算的興起改變了應用程序的構建和部署方式&#xff0c;提供了無與倫比的可擴展性&#xff0c;減少了基礎設施管理并提高了成本效率。隨著無服務器架構變得越來越流行&#xff0c;對有效監控工具的需求對于確保最佳性能和可靠性變得至關重要。 在本文中&#xff0c;我…

Go開發運維:Go服務發布到K8S集群

目錄 一、實驗 1.Go服務發布到k8s集群 二、問題 1.如何從Harbor拉取鏡像 一、實驗 1.Go服務發布到k8s集群 &#xff08;1&#xff09;linux機器安裝go(基于CentOS 7系統) yum install go -y &#xff08;2&#xff09;查看版本 go version &#xff08;3&#xff09;創…

【參天引擎】華為參天引擎內核架構專欄開始更新了,多主分布式數據庫的特點,類oracle RAC國產數據開始出現了

cantian引擎的介紹 ?專欄內容&#xff1a; 參天引擎內核架構 本專欄一起來聊聊參天引擎內核架構&#xff0c;以及如何實現多機的數據庫節點的多讀多寫&#xff0c;與傳統主備&#xff0c;MPP的區別&#xff0c;技術難點的分析&#xff0c;數據元數據同步&#xff0c;多主節點的…

Python 中 4 個高效的技巧(建議收藏)

今天我想和大家分享 4 個省時的 Python 技巧&#xff0c;可以節省 10~20% 的 Python 執行時間。 反轉列表 Python 中通常有兩種反轉列表的方法&#xff1a;切片或 reverse() 函數調用。這兩種方法都可以反轉列表&#xff0c;但需要注意的是內置函數 reverse() 會更改原始列表…

【數據結構】C語言結構體詳解

目錄 前言 一、結構體的定義 二、定義結構體變量 三、結構體變量的初始化 四、使用typedef聲明新數據類型名 五、指向結構體變量的指針 總結 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所幫助。 &#x1f4a1…

做題筆記:SQL Sever 方式做牛客SQL的題目--查詢每天刷題通過數最多的前二名用戶

----查詢每天刷題通過數最多的前二名用戶id和刷題數 現有牛客刷題表questions_pass_record&#xff0c;請查詢每天刷題通過數最多的前二名用戶id和刷題數&#xff0c;輸出按照日期升序排序&#xff0c;查詢返回結果名稱和順序為&#xff1a; date|user_id|pass_count 表單創建…

Spring JDBC和事務管理

Spring JDBC是Spring框架用來處理關系型數據庫的模塊&#xff0c;對JDBC的API進行了封裝。 Spring JDBC的核心類為JdbcTemplate&#xff0c;提供數據CRUD方法 Spring JDBC使用步驟 Maven工程引入依賴spring-jdbc <dependency><groupId>org.springframework<…

springboot 整合nacos

Spring Boot整合Nacos 大家好&#xff0c;我是微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天&#xff0c;我將帶領大家探索一個讓微服務架構更加便捷的利器——Spring Boot整合Nacos。在當今快速發展的互聯網時代&#…

應用安全:JAVA反序列化漏洞之殤

應用安全:JAVA反序列化漏洞之殤 概述 序列化是讓Java對象脫離Java運行環境的一種手段&#xff0c;可以有效的實現多平臺之間的通信、對象持久化存儲。Java 序列化是指把 Java 對象轉換為字節序列的過程便于保存在內存、文件、數據庫中&#xff0c;ObjectOutputStream類的 wri…

MYSQL創建用戶以及解決MYSQL新建數據庫看不到相關數據庫信息的解決方案

MYSQL創建用戶以及解決MYSQL新建數據庫看不到相關數據庫信息的解決方案 首先 我們在root用戶下&#xff0c;創建一個mysql用戶賬戶 如創建一個test用戶 密碼123456 命令如下&#xff1a; CREATE USER ‘test’‘localhost’ IDENTIFIED BY ‘123456’; 創建了一個db1的數據庫 …