1. 程式人生 > >用Flex實現的百分比佈局

用Flex實現的百分比佈局

彈性佈局在移動端頁面非常的有用,彈性佈局主要利用的是CSS3的flex屬性。

下面分享一個用flex來實現百分比佈局的方法,這在移動端中是很常用的一種適配方法。

程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flex佈局</title>
    <style type="text/css">
    .Grid{
        display: flex;
    }
    .Grid-cell{
        flex: 1;        
    }
    .Grid-cell.u-full{
        flex: 0 0 100%;
    }
    .Grid-cell.u-1of2{
        flex: 0 0 50%;
    }
    .Grid-cell.u-1of3{
        flex: 0 0 33.3333%;
    }
    .Grid-cell.u-1of4{
        flex: 0 0 25%;
    }
    </style>
</head>
<body>
    <div class="Grid">
        <div class="Grid-cell u-1of4" style="background-color: #2D82FF">1/4</div>
        <div class="Grid-cell" style="background-color: #6DDA79">auto</div>
        <div class="Grid-cell u-1of3" style="background-color: #46A0CE">1/3</div>
    </div>
    <p></p>
    <div class="Grid">
        <div class="Grid-cell" style="background-color: #2D82FF">auto</div>
        <div class="Grid-cell u-1of3" style="background-color: #6DDA79">1/3</div>
    </div>
    <p></p>
    <div class="Grid">
        <div class="Grid-cell u-1of2" style="background-color: #2D82FF">1/2</div>
        <div class="Grid-cell" style="background-color: #6DDA79">auto</div>
        <div class="Grid-cell" style="background-color: #46A0CE">auto</div>
    </div>

</body>
</html>

程式執行結果:


flex: 0 0 100%;

引數解釋:

第一個引數:flex-grow定義專案的放大比例,預設為0,即如果存在剩餘空間,也不放大。

第二個引數:flex-shrink定義了專案的縮小比例,預設為1,即如果空間不足,該專案將縮小。

第三個引數:flex-basis定義了在分配多餘空間之前,專案佔據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為auto,即專案的本來大小。

參考文獻:

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

http://www.ruanyifeng.com/blog/2015/07/flex-examples.html

相關推薦

Flex實現百分比佈局

彈性佈局在移動端頁面非常的有用,彈性佈局主要利用的是CSS3的flex屬性。 下面分享一個用flex來實現百分比佈局的方法,這在移動端中是很常用的一種適配方法。 程式碼如下: <!DOCTYPE

神奇的flex,flex實現bootstrap的柵格佈局

<html> <head> <meta charset="UTF-8"> <title> </title> </head> <style> .contaier div{ background-color:

Flex實現常見的幾種佈局

用Flex實現常見的幾種佈局 1.水平,垂直居中。 <style type="text/css"> .container{ display: flex; width: 300px; height: 300px;

iOS xib實現百分比佈局

通過程式碼新增約束時,我們可以新增如下約束[NSLayoutConstraint constraintWithItem:btn attribute:NSL

基於BootStrap 4.x 中的Flex 實現各種佈局

各種佈局,總有一款適合你 基於bootstrap 4.x 中的flex 佈局 1、左右結構(左窄右寬) <div class="d-flex flex-row" style="width: 500px; height: 400px;border:2px solid #ae00e6">

androidProgressBar實現百分比的顯示

顯示水平進度條我想到的有兩種:seekBar和ProgressBar,這兩種都可以顯示進度,最明顯的區別是seekbar是可以用手拖動的,比如,應用程式中使用者可以對音效進行控制,對音樂的播放進度進行控制,等等,都可以使用拖動條來實現 需要實現一個投票百分比的進度條: p

React實現百分比佈局

之前百度,各位大佬說 react各種不能進行百分比佈局。都推薦使用rem佈局,說是 react元件之間插入了一些div,導致百分比設定高度失效了,但是按照這種思路 我在根元素那裡給他設定百分比不就行了嗎 <html> <head la

Flex佈局實現塊級元素垂直居中

塊級元素垂直居中(Flex佈局方法): css部分:  *{padding: 0;margin: 0;} body,html,.wrap{width: 100%;height: 100%;} .wrap{background: yellow;display: flex;-w

Javascript實現國際象棋棋盤的佈局

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, i

利用display:flex; 實現三行佈局,頭尾固定,中間自適應

html如下:<div id="container"> <div id="top"></div> <div id="center"></div> <div id="bottom"&g

flex佈局(基本網格佈局百分比佈局、一側固定一側自適應、聖盃佈局

1、基本網格佈局 分情況討論: (1)如果所有的專案有相同的結構 <!DOCTYPE html> <html> <head> <meta charset

flex實現三欄佈局原理

<style> .flex-box{ display: flex; height:200px; width:100%; background:red; }

瀏覽器實現win10選單的拖拽佈局效果

 效果就是這麼個效果,放個沒有解釋的原始碼,有空再解釋~,可以掃左上角二維碼加我QQ交流 <template> <div class="drag"> <div class="column"> <div clas

android自定義View(2):實現百分比自適應佈局

android介面適配難是歷史原因,我們只能想辦法解決。github上面已有一些佈局自適應的解決方案,今天我分享的是自定義控制元件:RelativieLayout自適應百分比寬高。直接上菜。 一,實現的效果圖 眼見為實,截圖所示,寬高都是50%,實現了自

編譯原理:Flex和 Bison實現一個功能更為強大的計算器

 用Flex和 Bison實現一個功能更為強大的計算器,包含以下運算: a)加、減、乘、除運算 b)乘方、開方運算 c)位運算 – 與 & 、或 |、非 ~... d)階乘運算 !對數運算log 1.進一步完善計算器功能,實現對以下語法結構的

百分比佈局時,子元素那些屬性值取決於父元素的高那些屬性取決於寬

前言 我們先想個問題,帶著問題看這篇文章可能會理解的更好一點:百分比佈局時,子元素豎向的屬性值都是取決於父元素的高嗎? 慢慢向下看 取決於父元素高度的:[max/min-]height、top、bottom 等;後兩者是在有position屬

css3彈性盒子flex實現三欄佈局

如題:高度已知,左右欄寬度300px,中間自適應:彈性盒子本身就是並排的,我們設定寬度即可。用一個容器container包裹三欄,設定comtainer容器的display屬性為flex,左右欄設定寬度為300px,中間欄設定flex:1,這裡的1表示寬度比例,具體數值取決於

經典CSS實現form表單佈局

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><script type="text/

flex實現經典兩欄佈局

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style>

筆試題目 -- css3彈性盒子flex實現三欄佈局

剛開始學習前端的時候,沒有注意到這裡,3-4月份找實習的時候也見過這個題目,在網上找到答案就敲上去了,沒留意。 但是前提做CVTE筆試題目時,又發現的這道題目,決定好好看一下,記下來: 題目: 請用flex實現三欄佈局,高度已知,左右欄寬度30