Flex 佈局知識點梳理

来源:https://www.cnblogs.com/kelsen/archive/2018/07/29/8647896.html
-Advertisement-
Play Games

傳統的佈局方案,在針對特殊佈局時會很不方便,比如垂直居中,把一個容器等分為N列等等。自從 Flex 出現以後,這些都迎刃而解了,本文對Flex相關內容做一個簡單梳理。 ...


傳統的佈局方案,在針對特殊佈局時會很不方便,比如垂直居中,把一個容器等分為N列等等。自從 Flex 出現以後,這些都迎刃而解了,本文對Flex相關內容做一個簡單梳理。

什麼是 Flex

Flex 是 Flexible Box 的縮寫,意為”彈性佈局”,任何一個容器都可以指定為Flex佈局。設為 Flex 佈局以後,子元素的 floatclearvertical-align屬性將失效。要設置一個元素採用 flex 佈局,只需設置器 display 屬性取值為 flex 即可。

.flex-box{
    display:flex;     /* or inline-flex*/
}

常用術語

採用 Flex 佈局的元素,稱為Flex容器。其子元素為flex item,本文稱其為”項目”。容器預設存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。

  1. flex container : Flex容器,簡稱 容器
  2. flex item : Flex容器的子元素,可稱其為 flex 項目,簡稱 項目
  3. main axis : 主軸, 水平軸,起始位置稱為 main start,結束位置稱為 main end
  4. cross axis: 交叉軸, 垂直軸,開始位置叫做 cross start,結束位置叫做 cross end

項目預設沿 main axis 排列,單個項目占據的主軸空間叫做main size,占據的交叉軸空間叫做cross size。

容器的屬性

  1. flex-direction :flex-direction屬性決定主軸的方向(即項目的排列方向)。
    • row(預設值):主軸為水平方向,起點在左端。
    • row-reverse:主軸為水平方向,起點在右端。
    • column:主軸為垂直方向,起點在上沿。
    • column-reverse:主軸為垂直方向,起點在下沿。
  2. flex-wrap: 預設情況下,項目都排在一條線(又稱”軸線”)上。flex-wrap屬性定義,如果一條軸線排不下,如何換行。
    • nowrap(預設):不換行。
    • wrap:換行,第一行在上方。
    • wrap-reverse:換行,第一行在下方。
  3. flex-flow : flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,預設值為row nowrap。
    CSS .box { flex-flow: <flex-direction> || <flex-wrap>; }
  4. justify-content: justify-content屬性定義了項目在主軸上的對齊方式。
  5. align-items: align-items屬性定義項目在交叉軸上如何對齊。
  6. align-content: align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。

項目的屬性

  1. order 定義項目的排列順序,數值越小越靠前
  2. flex-grow 定義項目的放大比例
  3. flex-shrink 定義項目的縮小比例
  4. flex-basis 定義在分配多餘空間之前,項目占據的主軸空間
  5. flex 是 grow shrink basis 的簡寫。取值 none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
  6. align-self 定義當前項目的對其方式。取值 auto | flex-start | flex-end | center | baseline | stretch

寫在後面

本文地址:https://www.cnblogs.com/kelsen/p/8647896.html

關於本文如果您有任何建議或疑問請在下麵留言交流,也可通過 Web前端高級工程師 群進行線上溝通。avatar


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在數據遷徙的時候需要使源和目標資料庫的字元集、版本等信息統一…… 這裡是對一個資料庫的設置,需要在兩邊進行同樣的操作。 SYS@PROD1> select userenv('language') from dual; USERENV('LANGUAGE') AMERICAN_AMERICA.ZHS1 ...
  • 此前在校學習期間,只是知道資料庫很重要,但是並未主動去學習瞭解。現在的學習過程中學了一遍mysql,就簡單的做一個總結吧。 首先記住三個概念: 1.資料庫(Database)是按照數據結構來組織、存儲和管理數據的建立在電腦存儲設備上的倉庫。 2.SQL :結構化查詢語言(Structured Qu ...
  • Document(文檔)是Field(域)的承載體, 一個Document由多個Field組成. Field由名稱和值兩部分組成, 值是要索引的內容, 也是要搜索的內容. Lucene在記憶體中實現了分頁查詢, 這裡通過一個分頁查詢的demo演示分頁的過程. ...
  • 運行後界面空白,Xcode跳轉到APPDelegate.swift文件提示如下 第一種可能原因: 做輸出口後在代碼中重新命名了輸出口 解決方法: 右鍵控制項關閉輸出口的連接,變回+號,將它重新連到代碼的var...處鬆開。 或者直接刪除代碼代碼重新做輸出口。 第二種可能原因: 修改了ViewContr ...
  • 一,效果圖。 二,代碼。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Todo</title> <meta name="viewport" content="initial-scale=1, maximum-scale=1, ...
  • seajs模塊化開發 模塊化開發,把整個文件分割成一個一個小文件。 使用方法 使用方法特別簡單,首先在官網中下載sea.js,然後在頁面中引入。 index.html part1.js 有一些需要註意的地方 另外這一種判斷使用哪個模塊的 require.async 方法用來在模塊內部非同步載入模塊,並 ...
  • import phantom from 'phantom'; const pageToPdf = (url) => { phantom.create().then((ph) { ph.createPage().then((page) => { page.open(url).then((status) ...
  • 閉包 概念 只有函數內部的子函數才能讀取局部變數,所以閉包可以理解成“定義在一個函數內部的函數“。在本質上,閉包是將函數內部和函數外部連接起來的橋梁 例子 作用:比如在一個函數中嵌套一個函數,通過閉包可以讓嵌套函數訪問到包裹它的函數的局部變數。 封裝 閉包陷阱 總結 優點:靈活方便,封裝 缺點:空間 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...