flex(弹性布局)教程之常用布局

目录
  • 一、Flex 布局是什么?
    • 任何一个容器都可以指定为 Flex 布局。
    • 行内元素也可以使用 Flex 布局。
    • Webkit 内核的浏览器,必须加上-webkit前缀。
  • 二、常用布局
    • 公共样式:
    • 垂直居中 子元素左右分布
    • 水平垂直居中
    • 水平垂直居中 图标在上文字在下
    • 子元素平分父元素,且自适应等高
    • 子元素平分父元素,两边对齐中间自适应相同宽度间隔,且自动换行
    • 三栏布局,两边固定宽中间自适应

2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。

一、Flex 布局是什么?

Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

任何一个容器都可以指定为 Flex 布局。

.box{
  display: flex;
}

行内元素也可以使用 Flex 布局。

.box{
  display: inline-flex;
}

Webkit 内核的浏览器,必须加上-webkit前缀。

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

注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。

二、常用布局

公共样式:

    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .has-flex {
            display: flex;
        }
    </style>

垂直居中 子元素左右分布

css

        .father-one {
            width: 100%;
            height: 200px;
            background-color: #fffcef;
            align-items: center; /*纵轴)方向上的对齐方式。*/
            justify-content: space-between; /* 均匀排列每个元素 首个元素放置于起点,末尾元素放置于终点,中间元素的中间间隔相等 */
            justify-content: space-around; /* 均匀排列每个元素 每个元素周围分配相同的空间 */
            justify-content: space-evenly; /* 均匀排列每个元素   每个元素之间的间隔相等 */
        }

        .fa-one-child1 {
            height: 30px;
            width: 30px;
            background-color: #a6acde;
        }

        .fa-one-child2 {
            height: 40px;
            width: 40px;
            background-color: #e4b9f0;
        }

        .fa-one-child3 {
            height: 50px;
            width: 50px;
            background-color: #f3b009;
        }

        .fa-one-child4 {
            height: 60px;
            width: 60px;
            background-color: #f77c4f;
        }

html

<!--垂直居中 子元素左右分布 star-->
<h3>垂直居中 子元素左右分布</h3>
<div class="father-one has-flex">
    <div class="fa-one-child1"></div>
    <div class="fa-one-child2"></div>
    <div class="fa-one-child3"></div>
    <div class="fa-one-child4"></div>
</div>
<!--垂直居中 子元素左右分布 end-->

水平垂直居中

css

        .father-two {
            width: 100%;
            height: 200px;
            align-items: center; /*纵轴)方向上的对齐方式。*/
            justify-content: center; /*    横轴)方向上的对齐方式*/
            background-color: red;
        }

        .child {
            width: 50%;
            height: 60px;
            background-color: rosybrown;
        }

html

<!--水平垂直居中 star-->
<h3>水平垂直居中</h3>
<div class="father-two has-flex">
    <div class="child"></div>
</div>
<!--水平垂直居中 end-->

水平垂直居中 图标在上文字在下

css

        .father-three {
            height: 80px;
            background-color: #f77c4f;
            align-items: center;
            justify-content: center;
            flex-direction: column;
        }

html

<!--水平垂直居中 图标在上文字在下 star-->
<h3>水平垂直居中 图标在上文字在下</h3>
<div class="has-flex father-three">
    <i class="fa fa-file-text-o" aria-hidden="true"></i>
    <p>测试</p>
</div>
<!--水平垂直居中 图标在上文字在下 end-->

子元素平分父元素,且自适应等高

css

        .father-four {
            background-color: #ffd5eb;
        }

        .fa-four-child {
            flex: 1;
            text-align: center;
            background-color: #ffffff;
            border: 1px solid;
        }

html

<!--子元素平分父元素,且自适应等高   star-->
<h3>子元素平分父元素,且自适应等高 </h3>
<div class="has-flex father-four">
    <div class="fa-four-child">第一个</div>
    <div class="fa-four-child">第二个</div>
    <div class="fa-four-child">第三个</div>
    <div class="fa-four-child" style="height: 90px">第四个</div>
</div>
<!--子元素平分父元素,且自适应等高  end-->

子元素平分父元素,两边对齐中间自适应相同宽度间隔,且自动换行

css

        .father-five {
            height: 100px;
            background-color: #a6acde;
            justify-content: space-between;
            flex-wrap: wrap;
        }

        .fa-five-child {
            width: 21%;
            background-color: #f77c4f;
        }

html

<!--子元素平分父元素,两边对齐中间自适应相同宽度间隔,且自动换行   star-->
<h3>子元素平分父元素,两边对齐中间自适应相同宽度间隔,且自动换行 </h3>
<div class="has-flex father-five">
    <div class="fa-five-child">第一个</div>
    <div class="fa-five-child">第二个</div>
    <div class="fa-five-child">第三个</div>
    <div class="fa-five-child">第四个</div>
    <div class="fa-five-child">第五个</div>
    <div class="fa-five-child">第六个</div>
    <div class="fa-five-child">第七个</div>
    <div class="fa-five-child">第八个</div>
</div>
<!--子元素平分父元素,两边对齐中间自适应相同宽度间隔,且自动换行  end-->

三栏布局,两边固定宽中间自适应

css

        .father-six {
            height: 100px;
        }

        .one-child,
        .three-child {
            width: 300px;
            background-color: #a6acde;
        }

        .two-child {
            flex: 1;
            background-color: #eeeeee;
        }

html

<!--三栏布局,两边固定宽中间自适应   star-->
<h3>三栏布局,两边固定宽中间自适应 </h3>
<div class="has-flex father-six">
    <div class="fa-six-child one-child">第一个</div>
    <div class="fa-six-child two-child">第二个</div>
    <div class="fa-six-child three-child">第三个</div>
</div>
<!--三栏布局,两边固定宽中间自适应  end-->

到此这篇关于flex(弹性布局)教程之常用布局的文章就介绍到这了,更多相关flex常用布局内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • flex 简单例子(含实例效果图 源码)

    温故而知新,简简单单的写了一个例子.以后会在注图形化处理方面多写些例子. 源码: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="top" applicationComplete="init()"

  • flex弹性布局详解

    目录 初了解 基本概念 属性 容器属性(container) flex 项目属性(item属性) 骰子布局实践 初了解 在学习弹性布局之前首先就要明白其概念flex 就是flexible box的缩写,意为弹性布局,用来为盒装模型提供最大的灵活性任何一个容器都可以指定为flex布局 .box{ display: flex; } 行内元素当然也可以使用flex布局 .box{ display: inline-flex; } Webkit 内核的浏览器,必须加上-webkit前缀. .box{ di

  • Flex3 界面布局教程

    对于一个拥有丰富组件的GUI设计工具来说,界面的布局技术成为界面美化的一个重要方面.Flex从控件的功能上大致提供了两种方法:容器(控制布局),组件(提供GUI实质功能处理).使用容器分层次管理GUI是当前的趋势,Flex也使用了此种方式,主观上我们认为它把我们界面上的组件通过容器进行了分组或分类布局管理. 接下来,我将通过简单的示例逐个介绍各种界面布局的设计. Canvas layout容器 Canvas的界面布局,它定义了一个矩形框架的区域,用来放置用户的容器和控件.不像其他的组件,你不能放

  • Flex 3 布局容器学习笔记 整理

    很好的文章Flex3 界面布局教程 (1) http://www.jb51.net/article/20349.htmFlex3 界面布局教程 (2) http://www.jb51.net/article/20350.htmFlex 组件的定位和布局 http://www.adobe.com/cn/devnet/flex/quickstart/layout_modes/ Using Layout Containers http://livedocs.adobe.com/flex/3/html/

  • flex(弹性布局)教程之常用布局

    目录 一.Flex 布局是什么? 任何一个容器都可以指定为 Flex 布局. 行内元素也可以使用 Flex 布局. Webkit 内核的浏览器,必须加上-webkit前缀. 二.常用布局 公共样式: 垂直居中 子元素左右分布 水平垂直居中 水平垂直居中 图标在上文字在下 子元素平分父元素,且自适应等高 子元素平分父元素,两边对齐中间自适应相同宽度间隔,且自动换行 三栏布局,两边固定宽中间自适应 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局

  • 分享五种Android常用布局方式

    现在Android非常疯狂,所以网上关于Android学习的资料如雨后春笋般冒起来,像这些基础的东西更是多如牛毛,我会把用过的东西碰到的困难和怎么解决的记录下来,一来可以供自己复习万一以后又碰到类似的问题就可以直接拿来看下.二来可以给初学者一点小小的帮助. Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:FrameLayout(框架布 局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相

  • 基于Android代码实现常用布局

    关于 android 常用布局,利用 XML 文件实现已经有很多的实例了.但如何利用代码实现呢?当然利用代码实现没有太大的必要,也是不提倡的,但我觉得利用代码实现这些布局,可以更好的了解 SDK API ,所以在此也整理一些,和大家分享一下. 首先看一下,布局所对应的类的 API 继承图: android常用布局的代码实现所有的布局都会对应相关的类,这些类都是继承自 android.view.ViewGroup 类的.而 LinearLayout,RelativeLayout 都是在 andro

  • 基于android布局中的常用占位符介绍

    大家在做布局文件是肯定会遇到过下面的这种情况 填充出现问题,所以需要用到占位符规范填充 汉字常用占位符: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是测试:" android:textSize="22sp" /> <TextView android:layo

  • Android布局之GridLayout网格布局

    网格布局标签是GridLayout.这个布局是android4.0新增的布局.这个布局只有4.0之后的版本才能使用. 不过新增了一些东东 ①跟LinearLayout(线性布局)一样,他可以设置容器中组件的对齐方式 ②容器中的组件可以跨多行也可以跨多列(相比TableLayout直接放组件,占一行相比较) 因为是android 4.0新增的,API Level 14,在这个版本以前的sdk 都需要导入项目,等下会详细介绍 常用属性: 排列对齐: ①设置组件的排列方式:   android:ori

  • Android布局之FrameLayout帧布局

    前言 作为android六大布局中最为简单的布局之一,该布局直接在屏幕上开辟出了一块空白区域, 当我们往里面添加组件的时候,所有的组件都会放置于这块区域的左上角; 帧布局的大小由子控件中最大的子控件决定,如果都组件都一样大的话,同一时刻就只能能看到最上面的那个组件了! 当然我们也可以为组件添加layout_gravity属性,从而制定组件的对其方式 帧布局在游戏开发方面用的比较多,等下后面会给大家演示一下比较有意思的两个实例 (-)帧布局简介 帧布局容器为每个加入的其中的组件创建一个空白的区域称

  • Android布局之TableLayout表格布局

    Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件.当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列. 当为View时,该View将独占一行. 三个常用的属性 android:collapseColumns:设置需要被隐藏的列的序号 android:shrinkColumns:设置允许被收缩的列的列序号 android:stretchColumns:设置运行被拉伸的列的列序号 学习导图 (1)Ta

  • Android布局之RelativeLayout相对布局

    RelativeLayout是相对布局控件:以控件之间相对位置或相对父容器位置进行排列. 相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above----------位于给定DI控件之上 android:layout_below ----------位于给定DI控件之下  android:layout_toLeftOf -------位于给定控件左边 android:layout_toRightOf ------位于给定控件右边  android

  • Android布局之LinearLayout线性布局

    LinearLayout是线性布局控件:要么横向排布,要么竖向排布 常用属性: android:gravity------------设置的是控件自身上面的内容位置 android:layout_gravity-----设置控件本身相对于父控件的显示位置 android:layout_weight----- 给控件分配剩余空间 先给大家展示一下导图: 知识点详解(演示效果方便组件没有设置id) (1)gravity和Layout_gravity android:gravity 属性是对该view

随机推荐