• 学点flex


    从头开始flex

    笔者习惯,看别人的笔记先写边学,以下内容来自Flex 布局语法教程 | 菜鸟教程 HTML行内元素与块级元素有哪些及区别

    块级元素与行内元素组成的盒状模型

    块级元素 block:

    • 默认起一个新行

    • 通常来说每一行只有一个块级元素,除非使用float浮动

    • 高度、行高可控制

    • 外边距、内边距可控制

    • 宽度缺省为父容器的100%

    • 可容纳行内元素和其他块元素

    • div是最常用的块级元素,display:block也可指定为块级元素

    行内元素 inline :

    • 和其他元素在同一行

    • 高度、行高不可改变

    • 设置margin时上下不可改变,左右可改变

    • 设置padding时上下不可改变,左右可改变

    • 宽度不可改变,固定为其文字或图片的宽度

    • 只能容纳行内元素或文本

    • display:inline可指定为行内元素

    写过前端的同学们肯定都清楚,在电脑前调整元素的各种position、float、align……耗尽万般心血才排版好,然后稍微改变一下窗口大小查看后排版就全乱了,此时的心是死的。

    flex布局与flex容器

    flex布局是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局,而且目前来说已经获得了所有浏览器的支持(甚至IE,泪目)。

    任何一个块级元素或行内元素都可以通过display:flex转换为flex容器 (flex container)。此时,其所有的子元素将转变为flex项目 (flex item)。

    需要注意的是,flex项目的子元素的float、clear、vertical-align属性会失效。

    flex容器内存在着两个基础的概念:

    • main 主方向,默认水平:

      • main axis:主轴

        • main start/end:主轴与容器左右边缘的交点
      • main size:每个flex项目的沿主轴方向长度

    • cross 与主方向交叉,默认垂直:

      • cross axis:交叉轴

        • cross start/end:交叉轴与容器上下边缘的交点
      • cross size:每个flex项目的沿交叉轴方向长度

    同时,flex容器拥有六个主要属性:

    • flex-direction:决定了主轴方向

      • row:水平方向且起点在左端

      • column:垂直方向且起点在上沿

      • row-reverse:水平方向且起点在右端

      • column-reverse:垂直方向且起点在下沿

    • flex-wrap:决定如果一条轴线拍不下所有flex项目时,如何换行

      • nowrap:不换行,挤在一起

      • wrap:换行,且第一行在上

      • wrap-reverse:换行,且第一行在下

    • flex-flow:等同于<flex-direction>\ <flex-wrap>的简写形式

    • justify-content:定义了flex项目在主轴上的对齐方式

      • flex-start:左对齐

      • flex-end:右对齐

      • center:居中

      • space-between:两端对齐,且项目间隔相同,且最边缘项目与容器边沿相接

      • space-around:两端对齐,且项目间隔相同,但是最边缘项目与容器边沿也有相同间隔

    • align-items:定义了flex项目在交叉轴上的对齐方式

      • flex-start:略

      • flex-end:略

      • center:略

      • stretch:若项目未设置高度或auto,则占满整个容器高度

      • baseline:项目的第一行文字的基线相互对齐

    • align-content:定义了不同轴线的对齐方式(与flex-wrap有关,当我们进行了换行,就会出现多条主轴)

      • flex-start:与交叉轴的起点对齐。

      • flex-end:与交叉轴的终点对齐。

      • center:与交叉轴的中点对齐。

      • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。

      • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。

      • stretch(默认值):轴线占满整个交叉轴。

    对flex项目,也有六个主要属性:

    • order:定义项目的排序键值,键值越小,排序越靠前

    • flex-grow:定义项目的放大键值。当主轴存在剩余空间时,项目间所占的main size比例将严格遵守占比键值的比例放大

    • flex-shrink:定义项目的缩小键值。当主轴拥挤时,项目间所占的main size比例将严格遵守占比键值的比例的缩小,0表示不缩小

    • flex-basis:定义项目所占的main size。auto表示为本来大小,也可指定为特定值

    • flex:相当于flex-grow、flex shrink、flex-basis的简写

    • align-self:允许单个项目与其他项目对齐方式不同(将覆盖父容器的align-items属性),其可选值与flex容器的align-items属性相同。缺省为auto,表示继承

  • 相关阅读:
    单片机 C语音开发 sbit使用方法··
    android笔记JSON数据解析
    android软键盘挡住输入框问题解决方法
    android学习
    View.setTag()与View.getTag()的作用
    【Android学习专题】数据存储篇:SharedPreferences/Files/SDCard
    android完美退出程序
    Looper.prepare()
    各种Adapter的用法
    android 界面布局 很好的一篇总结 【转】
  • 原文地址:https://www.cnblogs.com/neumy/p/16310625.html
Copyright © 2020-2023  润新知