Flex 布局知识点梳理

传统的布局方案,在针对特殊布局时会很不方便,比如垂直居中,把一个容器等分为N列等等。自从 Flex 出现以后,这些都迎刃而解了,本文对Flex相关内容做一个简单梳理。

什么是 Flex

Flex 是 Flexible Box 的缩写,意为”弹性布局”,任何一个容器都可以指定为Flex布局。设为 Flex 布局以后,子元素的 floatclearvertical-align属性将失效。要设置一个元素采用 flex 布局,只需设置器 display 属性取值为 flex 即可。

.flex-box{
    display:flex;     /* or inline-flex*/
}

常用术语

采用 Flex 布局的元素,称为Flex容器。其子元素为flex item,本文称其为”项目”。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。

  1. flex container : Flex容器,简称 容器
  2. flex item : Flex容器的子元素,可称其为 flex 项目,简称 项目
  3. main axis : 主轴, 水平轴,起始位置称为 main start,结束位置称为 main end
  4. cross axis: 交叉轴, 垂直轴,开始位置叫做 cross start,结束位置叫做 cross end

项目默认沿 main axis 排列,单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

容器的属性

  1. flex-direction :flex-direction属性决定主轴的方向(即项目的排列方向)。

    • row(默认值):主轴为水平方向,起点在左端。
    • row-reverse:主轴为水平方向,起点在右端。
    • column:主轴为垂直方向,起点在上沿。
    • column-reverse:主轴为垂直方向,起点在下沿。
  2. flex-wrap: 默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
    • nowrap(默认):不换行。
    • wrap:换行,第一行在上方。
    • wrap-reverse:换行,第一行在下方。
  3. flex-flow : flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

    CSS .box { flex-flow: <flex-direction> || <flex-wrap>; }

  4. justify-content: justify-content属性定义了项目在主轴上的对齐方式。
  5. align-items: align-items属性定义项目在交叉轴上如何对齐。
  6. align-content: align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

项目的属性

  1. order 定义项目的排列顺序,数值越小越靠前
  2. flex-grow 定义项目的放大比例
  3. flex-shrink 定义项目的缩小比例
  4. flex-basis 定义在分配多余空间之前,项目占据的主轴空间
  5. flex 是 grow shrink basis 的简写。取值 none | [ <‘flex-grow‘> <‘flex-shrink‘>? || <‘flex-basis‘> ]
  6. align-self 定义当前项目的对其方式。取值 auto | flex-start | flex-end | center | baseline | stretch

写在后面

本文地址:https://www.cnblogs.com/kelsen/p/8647896.html

关于本文如果您有任何建议或疑问请在下面留言交流,也可通过 Web前端高级工程师 群进行线上沟通。

原文地址:https://www.cnblogs.com/kelsen/p/8647896.html

时间: 2024-11-02 18:38:06

Flex 布局知识点梳理的相关文章

Flex布局知识点

flex弹性布局, 语法 display:-webkit-flex; [指定伸缩容器]-webkit-flex: none | [flex-grow flex-shrink || flex-basis] | initial | auto 取值: none:在任何情况下都不会发生伸缩        flex-grow:扩展比率   flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大.        flex-shrink:收缩比率  flex-shrink属性定义了项

(转)30 分钟学会 Flex 布局

原文链接:https://zhuanlan.zhihu.com/p/25303493 最简单实用的 Flex 布局教程,30 分钟让你学会 Flex 语法基础. 为什么我要写这一篇关于 Flex 布局的教程? 因为它十分简单灵活,区区简单几行代码就可以实现各种页面的的布局,以前我在学习页面布局的时候我深受其 float.display.position 这些属性的困扰.然而学习 Flex 布局,你只要学习几个 CSS 属性,就可以写出简洁优雅复杂的页面布局. 本教程适合人群: 前端小白,不太明白

CSS3弹性伸缩布局(二)——flex布局

上一篇博客<CSS3弹性伸缩布局(一)——box布局>介绍了旧版本的box布局,而这篇博客将主要介绍最新版本的flex布局的基础知识. 新版本简介 新版本的Flexbox模型是2012年9月提出的工作草案,这个草案是由W3C 推出的最新语法.这个版本立志于指定标准,让新式的浏览器全面兼容,在未来浏览器的更新换代中实现统一. 这里我们还是继续上一篇博客中的例子,使用最新版本的flex布局来实现相同的效果. html代码: <div> <p>发生过的空间还是看价格哈健康啊水

谈一谈flex布局使用中碰到的一些问题

起因 工作以后由于大量使用到了flex布局而碰到了一些尚不清楚的问题,以及一些有意思的特性,在此写篇博客记录一下. flex三个值的含义 众所周知,flex布局所有的属性有两种:一种作用在弹性容器(Flex container)上,一种作用在弹性项目(Flex item)上,而flex就是作用在弹性项目上的属性. flex 是 flex-grow.flex-shrink.flex-basis 三个值的简写,这个值规定了弹性项目如何伸长或压缩以适应弹性容器中的可用空间. flex-grow 定义弹

实现响应式:flex布局+媒体查询@media

注意: 1. 这个案例,是我写vue项目修改的,所以思路同样适用于vue框架项目.2. 建议先把代码直接复制过去,先看一下效果. 3. 涉及到知识点,flex布局的属性配合使用 , @media媒体查询的语法 4.  给ul设置 flex-wrap: wrap , 一定要允许li可以换行,我在这个坑里,躺了好几分钟.5.  我写的时候,也花了不少时间,学的人应该更耐心些. <!DOCTYPE html> <html lang="en"> <head>

30分钟彻底弄懂flex布局

目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用flex进行布局了.什么是flex布局以及它的好处,这里就不再赘述. 在这篇文章里,想说说flex布局的属性语法及其细节.那么网上也有不少flex布局的教程,为什么又要再写一篇? 首先,flex布局的迷之属性们,如果一知半解,机械记忆的话,那不到半个月基本忘光光.先感受一下这12个flex布局属性,是不是很“迷”人. 容器属性 flex-flow flex-direction flex-wrap justify-content

Flex布局部分属性困惑解析

开始 最近研究一个框架,刚好里面也实现了flex布局的算法,虽然平时也用到flex做一些简单的布局,但是深入到算法实现的时候,发现自己对flex某些概念倒是没那么清晰,立马谷歌把几个flex涉及的属性都好好理清一下,权当一个自我梳理. main-axis和cross-axis main其实跟flex-direction这个属性相当有关系,关系如下图:根据flex-direction的值不同,main-axis方向相应也不同.既然有方向这个概念,这个时候justify-content属性(just

flex布局

一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ display: flex; } 行内元素也可以使用Flex布局. .box{ display: inline-flex; } Webkit内核的浏览器,必须加上-webkit前缀. .box{ display: -webkit-flex; /* Safari */ display: flex; } 注意,设为Fle

FLEX布局的一些问题和解决方法

前言 露珠最近研究了一下flex的布局方式,发现项w3c推出的这套布局解决方案对于日益复杂的前端开发布局来说是确实是一利器,并且在不同的屏幕上实现了真正的响应式布局:不再单纯地依赖百分比和float的强拼硬凑来达到设计需求,在各个屏幕上显示效果友好,弹性的伸缩元素,简洁易维护的代码.只可惜,这位老兄有一位致命的缺点----除了chrome外几乎所有手机上浏览器都没有兼容它!!,或者支持程度大不一样!这样开发人员头疼的问题就来了,刚刚在手机上忽略掉IE这个强盗的兼容问题,又来一个?!.flex的优