1. 程式人生 > >如何使用 Flexbox 和 CSS Grid,實現高效佈局

如何使用 Flexbox 和 CSS Grid,實現高效佈局

(點選上方公眾號,可快速關注)

來源:葡萄城控制元件

www.cnblogs.com/powertoolsteam/p/combine-flexbox-and-css-grids-for-layouts.html

CSS 浮動屬性一直是網站上排列元素的主要方法之一,但是當實現複雜佈局時,這種方法不總是那麼理想。幸運的是,在現代網頁設計時代,使用 Flexbox 和 CSS Grid 來對齊元素,變得相對容易起來。

使用 Flexbox 可以使元素對齊變得容易,因此 Flexbox 已經被廣泛使用了。

同時,CSS Grid 佈局也為網頁設計行業帶來了很大的便利。雖然 CSS Grid 佈局未被廣泛採用,但是瀏覽器逐漸開始增加對 CSS Grid 佈局的支援。

雖然 Flexbox 和 CSS Grid 可以完成類似的佈局,但是本次,我們學習的是如何組合使用這兩個工具,而不是隻選擇其中的一個。在不久的將來,當 CSS Grid 佈局獲得完整的瀏覽器支援時,設計人員就能夠利用每個 CSS 組合的優勢,來建立最有效和最有趣的佈局設計。 

測試 Flexbox 和 CSS Grid 的基本佈局

我們從一個很簡單且熟悉的佈局型別開始,包括標題,側邊欄,主要內容和頁尾等部分。通過這樣一個簡單的佈局,來幫助我們快速找到各種元素的佈局方法。

下面是需要建立的內容:

要完成這個基本佈局, Flexbox 需要完成的主要任務包括以下方面:

  • 建立完整寬度的 header 和 footer

  • 將側邊欄放置在主內容區域左側

  • 確保側邊欄和主內容區域的大小合適

  • 確保導航元素定位準確

基本 HTML 結構

<div class="container">

    <header>

        <nav>

          <ul>

            <li></li>

            <li></li>

            <li></li>

          </ul>

        </nav>

        <button></button

>

    </header>

    <div class="wrapper">

        <aside class="sidebar">

            <h3></h3>

        </aside>

        <section class="main">

            <h2></h2>

            <p></p>

        </section>

    </div><!-- /wrapper -->

    <footer>

        <h3></h3>

        <p></p>

    </footer>

</div><! -- /container -->

使用 Flexbox 建立佈局

Header 樣式

我們從外到內,逐層開始設計,首先將 display: flex; 新增到 container,這也是所有 Flexbox 佈局的第一步。接著,將 flex-direction 設定為 column,確保所有部分彼此相對。

.container{

displayflex;

flex-directioncolumn;

}

通過 display: flex; 自動建立一個全寬的 header(header 預設情況下是塊級元素)。通過這個宣告,導航元素的放置會變得很容易。

導航欄的左側有一個 logo 和兩個選單項,右側有一個登入按鈕。導航位於 header 中,通過 justify-content: space-between; 可以實現導航和按鈕之間的自動間隔。

在導航中,使用 align-items: baseline; 能夠實現所有導航專案與文字基線的對齊,這樣也使得導航欄看起來更加統一。

程式碼如下:

header{

padding15px;

margin-bottom40px;

displayflex;

justify-contentspace-between;

相關推薦

如何使用 Flexbox CSS Grid實現高效佈局

(點選上方公眾號,可快速關注)來源:葡萄城控制元件www.cnblogs.com/powerto

如何使用FlexboxCSS Grid實現高效佈局

CSS 浮動屬性一直是網站上排列元素的主要方法之一,但是當實現複雜佈局時,這種方法不總是那麼理想。幸運的是,在現代網頁設計時代,使用 Flexbox 和 CSS Grid 來對齊元素,變得相對容易起來。

愛創課堂分享“15 個有趣的 JS CSS 庫”

前端 web劃重點 迎來了黃金10 月,在這收獲的季節,我又為你們帶來了哪些新鮮、有趣的前端資源呢?前端開發者們,一起來看看有木有你需要的前端庫。1.DisplayJSDisplayJS 是一個幫助你渲染 DOM 的簡易框架。使用它,你可以更容易地將 JS 變量遍歷到特定的 HTML 元素中,類似

前端後端如何實現高效協作

一、前後端分離 二、儘量避免後端模板渲染 web渲染方式分為伺服器端渲染和客戶端渲染,推薦使用客戶端渲染,資料通過ajax方式互動 三、儘量避免大量線上除錯 做好本地介面模擬開發 四、規範的介面文件 格式簡潔、介面名、介面描述、介面地址、http方法、引數、響應資料等 五

使用Ajax傳遞接收資料實現註冊註冊成功後跳轉

返回狀態資訊實體類省略get和set private String stauts; private String msg; 控制器 @RequestMapping(value = "register", method = RequestMetho

PortAudio採集播放音訊實現一個雙路混音器

混音,顧名思義,就是把多個音源混合的過程,是一個很常見的應用。這兩天我也做了一個雙路混音器,當然,我沒有做多麼專業的音訊訊號處理,只是一個簡單的混音,調節各路音量,並實現了一些音效處理。主要功能有:採集硬體裝置,讀取wav檔案,播放,混音,音量調節,音訊節奏、音調的調節,wa

CentOS 安裝rzsz命令實現ftp上傳下載功能

lrzsz在linux裡可代替ftp上傳和下載。 windows 需要向centos伺服器上傳檔案,可直接在centos上執行命令yum -y install lrzsz 程式會自動安裝好,然後如你要下載者sz [找到你要下載的檔案] 如果你要上傳,者rz 瀏覽找到你

Linux:使用多執行緒程式設計訊息佇列實現兩個程序之間的聊天

思路: 一個檔案:建立一個執行緒和主函式,或者建立兩個執行緒主函式呼叫(我用這種)。 建立兩個訊息佇列, 一共兩個檔案,兩個佇列,四個程序 a.c    一個程序寫(訊息型別為1)   ---->>佇列     一個程序讀(訊息型別為2) b.c   一

利用多執行緒TCP技術實現客戶端與服務端之間的通訊

server.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h>

機智雲在Amazon Alexa平臺釋出SmarthomeCustom Skill實現亞馬遜Echo直接控制Gokit

機智雲在Amazon Alexa平臺率先發布了Smarthome Skill和Custom Skill,實現了亞馬遜Echo直接控制機智雲開源套件Gokit(包括Gokit2.0和Gokit3.0)!這也將意味著:隨著機智雲和亞馬遜賬號的打通,接入機智雲的產品都可以輕鬆實

netty整合springMVC實現高效的HTTP服務請求

參考http://blog.csdn.net/imlsz/article/details/42673507的程式碼,謝謝!不過在處理返回servlet的結果時候,按照上文的方法不行。 首先,你必須要了解netty,說簡單點:客戶端通過TCP連結和伺服器建立長連線

不用棧遞迴實現線索化二叉樹的遍歷(還沒人看的話就沉了吧)

本帖最後由 fzy20062008 於 2012-4-24 13:09 編輯 線索化二叉樹的儲存結構 ElemType struct {       ElemType  data;       struct       ThreadNode    *lichind,*rchild;       int   

Ubuntu下安裝使用lrzsz實現串列埠傳輸檔案&&minicom

一、安裝配置minicom 1、安裝minicom:sudo apt-get install minicom 2、配置minicom:sudo minicom -s ,        A.進入Serial port setup 選擇相應的埠和頻率。       (將選項A的

在資訊過載的今天怎樣排除干擾實現高效學習?

開發十年,就只剩下這套架構體系了! >>>   

基於關係型資料庫ES搜尋引擎實現多源百億級資料的大資料分析方案

背景: 隨著公司各項業務的快速發展與擴張,伺服器和各種應用系統隨之而增加,同時對應用系統、伺服器的穩定性,可持續性提出了更高的要

定期批量改密實現高效運維保障口令安全

隨著企業IT資產規模的不斷增大,各類主機、應用系統的管理也變得愈加困難。 對於系統管理員來說,保證作業系統的密碼安全是其重要工作

SpringBoot2 高階案例(14) : 整合 Drools規則引擎實現高效的業務規則

一、Drools引擎簡介 1、基礎簡介 Drools是一個基於java的規則引擎,開源的,可以將複雜多變的規則從硬編碼中解放出來,以規則指令碼的形式存放在檔案中,使得規則的變更不需要修正程式碼重啟機器就可以立即在線上環境生效。具有易於訪問企業策略、易於調整以及易於管理的特點,作為開源業務規則引擎,符合業內

使用 CSS Grid 實現表單佈局的優勢

表單佈局和設計一直是網頁設計和開發中令人頭疼的一部分。 嘗試過寫 <select> 標籤的樣式,或者在所有瀏覽器中都居中一個 label 的人感觸肯定更深。 原文連結:https://www.sitepoint.com/css-grid-web-form-layout

vue-cli 中是使用css單位rem實現響應式佈局

分享一種vue-lic中使用rem,實現響應式佈局的超簡單的方法。 第一步:封裝設定rem的方法,放在公用類的js檔案中,或者直接放在main.js檔案中。 /** * 設定rem * @param pwidth * @param prem */ export