flex布局

flex布局

.box{
  display: -webkit-flex; /* Safari */
  display: flex;

  flex-direction: row | row-reverse | column | column-reverse;
  /*
  row(默認值):主軸為水平方向,起點在左端。
  row-reverse:主軸為水平方向陵吸,起點在右端。
  column:主軸為垂直方向介牙,起點在上沿壮虫。
  column-reverse:主軸為垂直方向,起點在下沿耻瑟。
  */

  flex-wrap: nowrap | wrap | wrap-reverse;
  /*
  nowrap(默認):不換行
  wrap:換行旨指,第一行在上方
  wrap-reverse:換行赏酥,第一行在下方
  */

  flex-flow: <flex-direction> || <flex-wrap>;
  /*flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,默認值為row nowrap谆构。*/

  justify-content: flex-start | flex-end | center | space-between | space-around;
  /*
  flex-start(默認值):左對齊
  flex-end:右對齊
  center: 居中
  space-between:兩端對齊裸扶,項目之間的間隔都相等。
  space-around:每個項目兩側(cè)的間隔相等搬素。所以呵晨,項目之間的間隔比項目與邊框的間隔大一倍。
  */

  align-items: flex-start | flex-end | center | baseline | stretch;
  /*
  flex-start:交叉軸的起點對齊熬尺。
  flex-end:交叉軸的終點對齊摸屠。
  center:交叉軸的中點對齊。
  baseline: 項目的第一行文字的基線對齊粱哼。
  stretch(默認值):如果項目未設(shè)置高度或設(shè)為auto季二,將占滿整個容器的高度。
  */

  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
  /*
  flex-start:與交叉軸的起點對齊揭措。
  flex-end:與交叉軸的終點對齊胯舷。
  center:與交叉軸的中點對齊。
  space-between:與交叉軸兩端對齊绊含,軸線之間的間隔平均分布桑嘶。
  space-around:每根軸線兩側(cè)的間隔都相等。所以躬充,軸線之間的間隔比軸線與邊框的間隔大一倍逃顶。
  stretch(默認值):軸線占滿整個交叉軸。
 */

  /*
  order:屬性定義項目的排列順序充甚。數(shù)值越小以政,排列越靠前,默認為0津坑。
  flex-grow:屬性定義項目的放大比例妙蔗,默認為0,即如果存在剩余空間疆瑰,也不放大眉反。
  flex-shrink:屬性定義了項目的縮小比例,默認為1穆役,即如果空間不足寸五,該項目將縮小。
  flex-basis:屬性定義了在分配多余空間之前耿币,項目占據(jù)的主軸空間(main size)梳杏。瀏覽器根據(jù)這個屬性,計算主軸是否有多余空間。它的默認值為auto十性,即項目的本來大小叛溢。
  flex:屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值為0 1 auto劲适。后兩個屬性可選楷掉。
  align-self:屬性允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items屬性霞势。默認值為auto烹植,表示繼承父元素的align-items屬性,如果沒有父元素愕贡,則等同于stretch草雕。
  */
}

注意:設(shè)為Flex布局以后,子元素的float固以、clear和vertical-align屬性將失效墩虹。

經(jīng)典案例——上下固定 中間滾動條

<style>
  .wrap{
      display:-webkit-box;
      display:-webkit-flex;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:vertical;
      -webkit-flex-direction:column;
      -ms-flex-direction:column;
      flex-direction:column;
      width:100%;
      height:100%;
  }
  .header,.footer{
      height:40px;
      line-height:40px;
      text-align: center;
      background-color:#D8D8D8;
      text-align:center;
      flex-shrink: 0;
  }
  .main{
      -webkit-box-flex:1;
      -webkit-flex:1;
      -ms-flex:1;
      flex:1;
      width:100%;
      padding:10px;
      box-sizing: border-box;
      overflow: auto;
  }
  .contain{
    height: 5000px;
  }
</style>

<body>
  <div class="wrap">
    <div class="header"></div>
    <div class="main">
      <div class="contain"></div>
    </div>
    <div class="footer"></div>
  </div>
</body>

經(jīng)典案例——圣杯布局

要實現(xiàn)上下固定高度,左右兩邊固定寬度嘴纺,中間內(nèi)容自適應(yīng)的布局败晴。

<!DOCTYPE html>
<html lang="zh">
<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圣杯布局</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        .HolyGrail{
          display: flex;
          min-height: 100vh;
          flex-direction: column;
        }
        header,
        footer{
          height: 50px;
          background: #f00;
        }
        .HolyGrail-body{
          display: flex;
          flex: 1;
        }
        .HolyGrail-content{
         /* 自動填充剩余部分 */
          flex: 1;
          background: #0f0;
        }
        .HolyGrail-nav,
        .HolyGrail-ads{
          /* 兩個邊欄的寬度設(shè)為12em */
          flex: 0 0 12em;
        }
        .HolyGrail-ads{
          background: #ffff00;
        }
        .HolyGrail-nav{
          order: -1;
          background: #0ff;
        }
    </style>
</head>
<body>
    <div class="HolyGrail">
      <header>header</header>
      <div class="HolyGrail-body">
        <nav class="HolyGrail-nav">left</nav>
        <main class="HolyGrail-content">center</main>
        <aside class="HolyGrail-ads">right</aside>
      </div>
      <footer>footer</footer>
    </div>
</body>
</html>
圣杯布局效果圖

來源:http://www.runoob.com/w3cnote/flex-grammar.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市栽渴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稳懒,老刑警劉巖闲擦,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異场梆,居然都是意外死亡墅冷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門或油,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寞忿,“玉大人,你說我怎么就攤上這事顶岸∏徽茫” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵辖佣,是天一觀的道長霹抛。 經(jīng)常有香客問我,道長卷谈,這世上最難降的妖魔是什么杯拐? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上端逼,老公的妹妹穿的比我還像新娘朗兵。我一直安慰自己,他們只是感情好顶滩,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布余掖。 她就那樣靜靜地躺著,像睡著了一般诲祸。 火紅的嫁衣襯著肌膚如雪栓拜。 梳的紋絲不亂的頭發(fā)上雏吭,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼怨酝。 笑死,一個胖子當(dāng)著我的面吹牛柄瑰,可吹牛的內(nèi)容都是我干的换吧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼甲抖,長吁一口氣:“原來是場噩夢啊……” “哼漆改!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起准谚,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挫剑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后柱衔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體樊破,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年唆铐,在試婚紗的時候發(fā)現(xiàn)自己被綠了哲戚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡艾岂,死狀恐怖顺少,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情王浴,我是刑警寧澤脆炎,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站叼耙,受9級特大地震影響腕窥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜筛婉,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一簇爆、第九天 我趴在偏房一處隱蔽的房頂上張望癞松。 院中可真熱鬧,春花似錦入蛆、人聲如沸响蓉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枫甲。三九已至,卻和暖如春扼褪,著一層夾襖步出監(jiān)牢的瞬間想幻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工话浇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脏毯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓幔崖,卻偏偏與公主長得像食店,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赏寇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容