彈性盒子模型使用技巧

来源:https://www.cnblogs.com/z937741304/archive/2018/08/24/9531545.html
-Advertisement-
Play Games

很早之前就學過了彈性盒子,就感覺自己什麼都學會了,沒想到到了實際的運用過程中,其實並不是那麼一回事,自己根本想不到會用到哪些屬性,該怎麼使用。 這一次就只把我使用過程中遇到的一些坑來總結一下。 使用彈性盒子的情況還是需要去看佈局的,這個屬性使用起來非常爽,不需要考慮那麼多,直接幾行代碼就完成了之前浮 ...


  很早之前就學過了彈性盒子,就感覺自己什麼都學會了,沒想到到了實際的運用過程中,其實並不是那麼一回事,自己根本想不到會用到哪些屬性,該怎麼使用。

  這一次就只把我使用過程中遇到的一些坑來總結一下。

  使用彈性盒子的情況還是需要去看佈局的,這個屬性使用起來非常爽,不需要考慮那麼多,直接幾行代碼就完成了之前浮動佈局要完成的情況,而且自適應頁面的能力也要強出好多,不需要自己再去調整好久的樣式像素。

  直接上佈局的樣子吧。

    頁面一

  

  比如說上面的樣式,你們可能有別的更好的佈局思路,可以分享一下的哈。 我就說說我猜到的坑,因為之前根本就沒有這樣去寫過,所以有一些細節的部分根本沒有考慮過,後來寫過一次之後,在看到這種佈局就變得容易多了。

  佈局思路

    一般我們都會把一個頁面分為三部分,我們把最上面的設備監控是頭部

    內容部分為中間的那一大堆

    底部就是下麵的三個按鈕的那一些

  佈局思路大概是下麵的代碼那個樣子的,中間的部分肯定是要自適應的了,直接把剩下的高度都占滿。

  

#box{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.header{
    height: 100px;
}
.content{
    flex-grow: 1;   // 這裡的這個屬性  因為之前用這個用的少,所以沒有想到,這個屬性是定義項目放大比例,預設是0,將他規定一下,然後就會把剩餘的空間都給占掉
}
.footer{
    height: 200px;
}


<div id="box">
    <div class="header"></div>
    <div class="content"></div>
    <div class="footer"></div>
</div>

 

  重點的是中間的那一部分,因為中間部分下麵的表格部分超出之後要出現滾動條,所以就是表格內容的高度的父元素的高度我拿不准,最開始直接用的是rem給寫死了,後來發現有很多弊端,因為是第一次寫這樣的頁面所以講下麵的那個沒有考慮到的屬性。

  中間的部分分為兩部分,黃色的一部分,六個框框,用的彈性盒子,把他們的寬度寫成百分比平分,三個分一行,用的33.3%,

  大概代碼就是下麵的樣子的。

  

ul{
    display: flex;
    flex-wrap: wrap;
}
ul li{
    width: 33.3%;
    height: xxx;
}

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

  下麵的那個表格要超出出現滾動條,剛纔說了我第一次佈局的過程中把他父元素的高度給寫死了,然後在自適應的過程中出現了一些問題,可以把中間的部分也寫成一個彈性盒子,然後上面的那個八個黃色框框的父元素高度給定住,然後下麵的部分用到那個flex-grow屬性,直接把下麵的那一些東西都給占住。

  大概和最開始頭部中間部分底部的佈局差不多。

  

 

  頁面二

  

 

  還是只看中間的部分吧

  中間的部分是左右劃分的,所以也可以使用彈性盒子,左右的寬度用百分比規定好, 30%  70% 然後就可以橫排顯示,註意寫好他們的高度

  右邊部分又分為上下兩部分

  這裡是右邊上半部分的佈局,寫的好多了,所以也就沒有考慮其他的東西了,左右部分大概就兩種寫法了我

  第一種

    左邊用rem固定死, 右邊使用flex-grow 分配多餘的剩餘的空間。

  第二種

    兩部分都使用百分比

   裡面的小東西在使用自己的方式寫就好了,右邊的綠色的也可以使用彈性盒子。

頁面三

  

  也是只介紹一下中間的部分吧。分為左右部分,然後內容超出之後也要出現滾動條。

  這一種的頭部,內容部分,底部用到的還是最開始講的那種,中間部分占掉剩餘下來的空間。

  中間的部分分為左右兩部分,高度的話因為使用了flex-grow這個東西,所以把黃色盒子應該還有一個父元素和他一樣大,不說了,上代碼吧

  這裡大概模擬一下中間的代碼

這個就是中間的所有的東西,大概就是content的高度是中間部分的實際高度, 左部分 div.left部分的東西的高度寫成100%,適應到中間部分的所有高度,然後設置超出產生滾動條  overflow:scroll,裡面的ul就直接那樣就可以了,把ul設置成彈性盒子,然後裡面的東西多的話就會超過 div.left的高度,然後就會產生滾動條了,同理 右邊的大概也是這樣的。

  感覺今天會加班,然後頭有點疼就想寫點東西,沒想到直接可以下班了~~~

  堅持寫完了,如果你看了我的文章學到了東西我會非常高興的,回家咯 嘿嘿

 


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

-Advertisement-
Play Games
更多相關文章
  • 一、什麼是handler? 註:線程分為主線程(主線程又叫UI線程,只能有一個主線程)和子線程(可以有多個)Handler只能在主線程里運行 handler是Android給我們提供用來更新UI的一套機制,也是一套消息處理機制,我們可以發消息,也可以通過它 處理消息。 1 2 因為android在設 ...
  • 我們都知道在UI線程中不能進行耗時操作,例如數據讀寫、網路請求。Android 4.0開始,在主線程中進行網路請求甚至會拋出Android.os.NetworkOnMainThreadException。這個時候,我們就會開始依賴Handler。我們在子線程進行耗時操作後,將請求結果通過Handle ...
  • 首先我們來說說什麼是事件冒泡 事件冒泡:子級尋找父級的過程 當子級觸發事件時,這個事件會形成一個時間流,這個事件流會逐步的向上傳播, 所經過的父級的和子級相同的事件會被執行 事件捕獲:父級查找子級的過程叫事件捕獲 當子級觸發一個事件時會觸發事件流,這個事件流會從父級傳遞到子級,所經過的 所有子級的相 ...
  • Html學習筆記1 特殊符號:html中對換行縮進空格不敏感,都只會解析成一個空格 空格:&nbsp; < : &lt; > :$gt; 版權符號:&copy; 表格:1 表示表格:table表示表格 tr:表示行 td:單元格 tr和td只能寫在表格裡面 2 表格屬性:屬性: boder:邊框 w ...
  • angularjs表單驗證繼續學習,主要內容包括,失去焦點驗證、ngMessages ...
  • redux作為react的狀態狀態管理工具,是十分重要的一部分,但是它在學習起來比較困難。它的寫法一共分為三部分,而且他不像其他的東西一樣可以寫一步,在頁面上查看一下。它必須三個部分全部完成之後,才能查看效果,所以redux在報錯的時候也是非常的頭痛的,不好查找具體是在哪一步寫錯了內容。 下麵簡單的 ...
  • xhtml中隱藏滾動條在用ie6瀏覽有框架的xhtml頁面的時候,預設會水平和垂直滾動條會一起出現,這是ie6的一個bug,在firefox上是正常的,出現的原因是其對XHTML 1.0 transitional doctype的解釋缺陷.對於這個bug一般有3種解決方案,方法1: 代碼如下: ht ...
  • 孔子說:“溫故而知新,可以為師矣。”這幾天參加了一個免費的前端課,每天晚上都有直播,講解一個獨立的案例。在聽前端基礎的時候,發現自己有不少東西沒學會,平時在學校雖說html也寫了不少,但有好大一部分都被忽略掉了。就在剛纔看了一個基礎案例,很是有共鳴,一個簡單的輪播圖,牽扯到的東西實在是多。不得不說, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...