flex布局justify-content屬性和align-items屬性設置


前言:

flex最常用的就是justify-content和align-items了,這里把這兩個屬性介紹下,大家更多關於flex布局可以查看阮一峰的日志,寫的非常清楚!

阮一峰flex布局的日志:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

 

1、justify-content(在父元素設置)
    設置彈性盒子元素在主軸(橫軸)的對齊方式。

    取值:

  • justify-content: flex-start | flex-end | center | space-between | space-around;


flex-start: 彈性盒子元素將向行起始位置對齊。第一個元素與左起始邊界對齊,后面的元素接着第一個元素進行排列。

flex-end: 彈性盒子元素將向行結束位置對齊。整體靠着行結束的位置排列。

center:整體居中顯示。

space-between: 彈性盒子元素均勻分布。第一個元素的邊界與行的主起始位置的邊界對齊,同時最后一個元素的邊界與行的主結束位置的邊距對齊,而剩余的伸縮盒項目則平均分布,並確保兩兩之間的空白空間相等。

space-around: 彈性盒子元素均勻分布。兩端保留子元素與子元素之間間距大小的一半

2、align-items, align-self 

     設置彈性盒子元素在垂直方向上(縱軸)的對齊方式。其中align-items屬性用於彈性容器,而align-self用於彈性項目。

  • align-items: flex-start | flex-end | center | baseline | stretch;
  • align-self: auto | flex-start | flex-end | center | baseline | stretch;

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>flex布局justify-content屬性</title>
    <style rel="text/stylesheet">
        .box {
            display: -webkit-flex;
            display: flex;
            width: 400px;
            height: 100px;
            margin: 0;
            padding: 0;
            border-radius: 5px;
            list-style: none;
            background-color: #eee;
        }

        .box li {
            margin: 5px;
            padding: 10px;
            border-radius: 5px;
            background: #aaa;
            text-align: center;
        }

        #box {
            -webkit-justify-content: flex-start;
            justify-content: flex-start;
        }

        #box2 {
            -webkit-justify-content: flex-end;
            justify-content: flex-end;
        }

        #box3 {
            -webkit-justify-content: center;
            justify-content: center;
        }

        #box4 {
            -webkit-justify-content: space-between;
            justify-content: space-between;
        }

        #box5 {
            -webkit-justify-content: space-around;
            justify-content: space-around;
        }
    </style>
</head>
<body>
    <h2>justify-content: flex-start</h2>
    <ul id="box" class="box">
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>

    <h2>justify-content: flex-end</h2>
    <ul id="box2" class="box">
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>

    <h2>justify-content: center</h2>
    <ul id="box3" class="box">
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>

    <h2>justify-content: space-between</h2>
    <ul id="box4" class="box">
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>

    <h2>justify-content: space-around</h2>
    <ul id="box5" class="box">
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>
</body>
</html>
View Code

 

 

 

3、flex的兼容性

 兼容性檢測網址:www.caniuse.com

  

  • 兼容IE10以上,但是要加前綴 -ms-
  • Edge全部支持
  • firfox 版本28以上,低版本要加 -moz-
  • chrome 21以上,低版本要加 -webkit-

 

微信小程序中經常使用flex布局非常方便:

彈性盒子布局:

1、 首先找到使用彈性盒子布局的容器元素view,首先將他變成一個flex

a)      display:flex;   //設置完后默認的每個元素都是從左往右放置的

   

b)     目標一:每個元素獨占一行,自上而下放置

        flex-direction: column;

   

c)      目標二:自上而下放置時在垂直方向上均勻分布;元素在垂直方向上間隔一致,而且第一個和最后一個元素離頂部和底部都有一定的間距;

       justify-content: space-around;

  

   

d)     目標三:元素在水平方向上居中 

    align-items: center;

   

彈性盒子布局優點:

.container {

  background-color: #eee;

  height: 100vh;

  // 下面是彈性盒子布局

  display: flex;

  flex-direction: column;  // 縱向排列

  justify-content: space-around;

  align-items: center;

// flex-wrap: wrap;  // 一行顯示不了可以換行,用於pc端多個item排列時

}
  1. 就算下面再增加幾個text,依然會自動垂直,水平居中
  2. 比較直觀,只需要在容器中設置,一目了然
  3. 非常高效,靈活的應對頁面結構的變化

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM