Flex布局-实例

一、基本网格布局

最简单的网格布局,就是平均分布。

clipboard01.png

HTML代码如下:

<div class="box">
    <span class="item">1</span>
    <span class="item">2</span>
    <span class="item">3</span>
</div>

CSS代码如下:

/* 本文中布局默认都加上 border-box */
* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
.box {
    display: flex;
}
.item {
    flex: 1;
}

二、左边固定,右边自适应布局

左边网格的宽度固定,右边网格自适应。

clipboard02.png

CSS代码如下:

.item {
    flex: 1;
}
.item:nth-child(1) {
    flex: 0 0 50%;
}

三、圣杯布局

圣杯布局指的是一种常见的网站布局。页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer)。其中躯干又水平分成三栏,从左到右为:导航、主栏、副栏。

clipboard03.png

HTML代码如下:

<body class="page">
  <header>Header</header>
  <section>
    <nav>Nav</nav>
    <main>Main</main>
    <aside>Aside</aside>
  </section>
  <footer>Footer</footer>
</body>

CSS代码如下:

.page {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}
header, footer {
  flex: 0 0 50px;
}
section {
  display: flex;
  flex: 1;
}
main {
  flex: 1;
}
nav, aside {
  flex: 0 0 200px;
}

四、固定的底栏

有时,页面内容太少,无法占满一屏的高度,底栏就会抬高到页面的中间。这时可以采用Flex布局,让底栏总是出现在页面的底部。

clipboard04.png

HTML代码如下:

<div class="page">
    <header>Header</header>
    <section>Content</section>
    <footer>Footer</footer>
</div>

CSS代码如下:
.page {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}
section {
  flex: 1;
}

五、流式布局

每行的项目数固定,会自动分行。

clipboard05.png

CSS代码如下:

.parent {
  display: flex;
  flex-flow: row wrap;
  align-content: flex-start;
}

.child {
  flex: 0 0 25%;
  height: 50px;
  border: 1px solid red;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上一篇文章介绍了Flex布局的语法,今天介绍常见布局的Flex写法。你会看到,不管是什么布局,Flex往往都可以几...
    君临天下夜未央阅读 9,201评论 1 12
  • 先来看看几种常见的布局方式 我的主要参考资料是Landon Schropp的文章和Solved by Flexbo...
    Sylvie_9459阅读 3,865评论 0 2
  • 前言: Flex布局的灵活性让它可以应用在任何场景,彻底代替了传统布局,除了IE基本都可以兼容,是PC和移动端的布...
    Chris__Liu阅读 2,981评论 0 0
  • 一、基础网格布局 最简单的网格布局,就是平均分布。在容器里面平均分配空间,需要设置项目的自动缩放。 二、百分比布局...
    wuyadream阅读 11,947评论 0 3
  • 作者: 阮一峰日期: 2015年7月14日 上一篇文章介绍了Flex布局的语法,今天介绍常见布局的Flex写法。你...
    vimtest阅读 2,383评论 0 3