Flex佈局的學習經驗

来源:http://www.cnblogs.com/xujingyuan/archive/2017/05/26/6910360.html
-Advertisement-
Play Games

做為css佈局的又一種新方式,Flex擁有極強的使用效果,相比原來的float,position對元素樣式的操作更加簡潔,本文是我的一點學習經驗和心得吧,如有錯誤以及不足之處,請多多指點。 好進入正題吧,首先借用阮一峰大神的一副圖片: 再來說說flex的幾個屬性吧: 一、容器屬性 1.flex-di ...


做為css佈局的又一種新方式,Flex擁有極強的使用效果,相比原來的float,position對元素樣式的操作更加簡潔,本文是我的一點學習經驗和心得吧,如有錯誤以及不足之處,請多多指點。

好進入正題吧,首先借用阮一峰大神的一副圖片:

 

再來說說flex的幾個屬性吧:

一、容器屬性

1.flex-direction : row | row-reverse | column | column-reverse;

  這個屬性是定義元素在主軸上的排列順序的,也就是上面的(main axis)

  row:元素在主軸上以水平的方向排列的,起點在左端(同時,這個也是預設值)

  row-reverse:元素在主軸上以水平的方向排列的,起點在右端

  column:元素在主軸上以垂直的方向排列的,起點在上方

  column-reverse:元素在主軸上以垂直的方向排列的,起點在下方

光說不練假把式,貼上代碼:

   

效果如下:

2.flex-wrap:nowrap | wrap | wrap-reverse;

  這個屬性是定義如果元素在一根軸線上排列不下後該如何排列:

  nowrap:不換行(預設)

  wrap :換行,並且第一行在上方

  wrap-reverse:換行,第一行在下方,逆向排列

代碼貼上:

    

效果如下:

      

3.flex-flow:flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,預設值為row nowrap

4.justify-content:flex-start | flex-end | center | space-between | space-around

  這個屬性是定義元素在主軸上的對齊方式

  flex-start主軸的起點對齊(預設)

  flex-end主軸的終點對齊

  center:主軸的中點對齊

  space-between:倆端對齊,元素之間的間隔相等

  space-around:元素的倆側間隔相等,以元素及倆端為對齊方式

代碼貼上:

    

效果如下:

5.align-items:flex-start | flex-end | center | baseline | stretch

  這個屬性是相對justify-content來說的,他是規定元素在交叉軸上的對齊方式的

  flex-start:交叉軸的起點對齊

  flex-end:交叉軸的終點對齊

  center:交叉軸的中點對齊

  baseline:項目的第一行文字對齊

  stretch:如果元素的高度沒有設置或者設置為auto,則元素將占滿容器的高度

貼上代碼:

   

效果如下:

6.align-content:flex-start | flex-end | center | space-between | space-around | stretch;

  這個屬性是規定有多根軸線時的對齊方式,如果只有一根軸線,不起作用

  flex-start:與交叉軸的起點對齊

  flex-end:與交叉軸的終點對齊

  center:與交叉點的終點對齊

  space-between:與交叉軸的倆端對齊,軸線之間的距離相等

  space-around:每根軸線的倆側距離相等

  stretch:軸線占滿整個交叉軸

二、元素屬性

1.order:<integer>

  這個屬性定義元素的排列順序,數值越小,排列越靠前,預設是0

貼上代碼:

結果如下:

2.flex-grow<number>

  該屬性定義元素放大比例,預設為0,0表示的是即使有剩餘空間也不放大

  如果所有的元素的這個值都為1,那麼這些元素將等分剩餘空間,如果其中有一個大於1的元素,那麼這個元素占有的剩餘空間比別的大N倍

貼上代碼:

效果如下:

3.flex-shrink:<number>

  這個屬性是定義元素的縮小比例,預設值為1,如果剩餘空間不足,則元素縮小

  如果所有元素的這個屬性都為1時,當空間不足時,將等比例縮小。如果一個元素的這個屬性為0,其餘都為1,那麼空間不足時,屬性為0的元素不縮小

貼上代碼:

效果如下:

註意:負值對該屬性沒有作用

4.flex-basis:<length> | auto

   這個屬性定義在分配多餘空間前,元素占主軸的大小,以此來計算主軸上是否還有多餘空間,預設值為auto,也就是元素原本大小

5.flex:none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

   這個屬性是flex-growflex-shrink 和 flex-basis的簡寫,預設值為(0 1 auto)

   該屬性有倆個快捷值:auto和none

貼上代碼

 

效果如下:

對於這三個屬性,我是這樣理解的:flex-grow相當於一大堆地主,準備瓜分主軸的“土地”,但地主裡面也有相對厲害的,比如屬性值更高的,他就瓜分的土地多,

flex-shrink相當於一群很好的朋友,互幫互助,主軸的“土地”不夠的話,大家一起減少“土地”,但是裡面卻出現了一個惡霸,也就是屬性值為0的,他不管這麼多

在他看來,愛咋咋滴,沒我事情。最後flex-basis相當於算賬的,計算主軸剩餘的“土地”還剩下多少,計算後,再讓那倆個屬性自己去分剩餘的“土地”。

 

當然,flex也有缺點,就是他對於手機瀏覽器的相容還沒做到位,有些手機瀏覽器還不能辨識。

 

 

 

 

 

  

 


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

-Advertisement-
Play Games
更多相關文章
  • 在java里, 我們可以使用Executors.newFixedThreadPool 來創建線程池, 然後就可以不停的創建新任務,並用線程池來執行了。 在提交任務時,如果線程池已經被占滿,任務會進到一個隊列里等待執行。 這種機制在一些特定情況下會有些問題。今天我就遇到一種情況:創建線程比線程執行的速 ...
  • hljs.initHighlightingOnLoad(); SetConsoleScreenBufferSize函數 來源:https://msdn.microsoft.com/en us/library/windows/desktop/ms686044(v=vs.85).aspx 作用 指定控制 ...
  • 一些事情久久不能釋懷,於是最近學習了下最短路的演算法,希望我能變得輕鬆些。 dijkstra是一種單源最短路演算法。在沒有負權值的圖上,vi..vj..vk是vi到vk最短路的話,一定要走vi到vj的最短路。所以每次取出到起點距離最小的點,從該點出發更新鄰接的點的距離,如果更新成功則把新點加入prior ...
  • 也許很多朋友在學習NIO的時候都會感覺有點吃力,對裡面的很多概念都感覺不是那麼明朗。在進入Java NIO編程之前,我們今天先來討論一些比較基礎的知識:I/O模型。下麵本文先從同步和非同步的概念 說起,然後接著闡述了阻塞和非阻塞的區別,接著介紹了阻塞IO和非阻塞IO的區別,然後介紹了同步IO和非同步IO... ...
  • 在實際的應用場景中,兩個實體之間不只是簡單的一對一關係,還會出現多對多關係,同時還有可能會出現多對多關係還附帶有其他欄位的情況。本文通過幾個例子,對錶間多對多關係的實體類代碼表示方法進行描述。這種設計方法,並不只是在使用 ORM 框架時需要,事實上,它是 POCO 及簡單 Java 類(POJO)的... ...
  • 圓角邊框以及陰影製作卡片式圖片 圓角邊框 border-radius 卡片使用陰影 box-shadow 利用陰影給圖片底部創造一個長方形 內部的元素會直接覆蓋整個陰影 HTML 部分 CSS 部分 圖片展示 此文到此結束 此文參考鏈接 http://www.w3school.com.cn/cssr ...
  • Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 re ...
  • 前文提要:【js實例】js中的5種基本數據類型和9種操作符 Array類型的9個數組方法 Array中有9個數組方法: 1.檢測數組 2.轉換方法 3.棧方法 4.隊列方法 5.沖排序方法6.操作方法 7.位置方法 8.迭代方法 9.歸併方法 在實例中介紹,實例如下 Date類型的41個日期方法 D ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...