flex弹性布局教程-07容器属性flex-direction

2023-11-17

本节目标

  1. 掌握flex-direction的使用。
  2. 了解主轴变化的概念。

内容摘要

本篇讲解了容器属性 flex-direction,用来设置主轴的方向。

阅读时间大约10~15分钟。

flex容器属性

前面讲的属性都是设置在项目上的,另外还有6个设置在容器上的:

1. flex-direction
2. flex-wrap
3. flex-flow
4. justify-content
5. align-items
6. align-content

项目属性可以理解成对项目的单独设置,容器属性可以理解成对容器内项目的统一设置,后面分每小节对这些属性进行讲解。

flex-direction基础

flex-direction用来设置主轴的方向,共有4个值:

.container {
	flex-direction: row(这个是默认值) | row-reverse | column | column-reverse
}

其中:

1. row 主轴是水平方向,起点在左(可以理解为x轴,这个是默认值)。
2. row-reverse 主轴是水平方向,起点在右(可以理解为x轴)。
3. column 主轴是垂直方向,起点在上(可以理解为y轴)。
4. column-reverse 主轴是垂直方向,起点在下(可以理解为y轴)。

如下图所示:
在这里插入图片描述
图中黑色的箭头表示主轴方向

难点:

设置 flex-direction 会改变主轴方向,相关属性如:flex-basis、order等的视觉效果会根据主轴方向的变化而变化。
但是这些属性都是沿着主轴方向进行渲染显示的,记住这个关键点,我觉得就OK了。

下面举例子说明。

示例1,前面的例子我们实现了flex布局,默认项目是在水平方向上排列,这边设置项目沿水平方向上反序排列。

因为是在水平方向,并且是反序排列,我们在container上设置属性 flex-direction 为 row-reverse 即可。参考如下代码:

.container {
	/* 设置子元素的布局为flex布局 */
	display: flex;
	/* 设置主轴方向:主轴是水平方向,起点在右 */
	flex-direction: row-reverse
}

运行效果:
在这里插入图片描述
可以看到,项目的排列在水平方向上反序排列了。这个不难理解,项目都是沿着主轴方向排列。

思考:

如果项目2的order设置为-1,请问项目排列的顺序是?

解答:

项目1、项目2和项目3的order分别为0、-1、0,因为项目的排序是从小到大排列,所以应该是:项目2、项目1、项目3。

因为主轴方向是水平方向反序,所以运行效果如下:
在这里插入图片描述
示例2,接上例,设置项目沿垂直方向正序排列。

在box上设置属性 flex-direction 为 column 即可。参考如下代码:

.container {
	/* 设置子元素的布局为flex布局 */
	display: flex;
	/* 设置主轴方向:主轴是垂直方向,起点在上 */
	flex-direction: column;
}

运行效果:
在这里插入图片描述
思考:

前面讲解 flex-basis 的时候有提到过 flex-basis 是设置主轴方向的占用空间。那么请问这边设置 flex-basis 为 50px,是相当于设置 宽(width)、还是高(height)?

解答:

因为当 flex-direction 设置为 column 的时候,主轴方向变成了垂直方向,所以这里相当于设置 flex-basis 相当于设置高(height)。

运行效果如下:
在这里插入图片描述
示例3,接上例,设置项目沿垂直方向反序排列:

.container {
	/* 设置子元素的布局为flex布局 */
	display: flex;
	/* 设置主轴方向:主轴是垂直方向,起点在下 */
	flex-direction: column-reverse;
}

运行效果:
在这里插入图片描述

本节总结

  1. flex-direction 用于设置容器的主轴方向,值有4个:row(这个是默认值) 、 row-reverse 、 column 、 column-reverse。
  2. 关键点:项目都是沿着主轴方向排列。
  3. flex-direction 主轴改变比较难理解,实务中 row 属性用的最多,熟练掌握配合其他属性的变化即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flex弹性布局教程-07容器属性flex-direction 的相关文章

  • Bootstrap 4.1.1 form-check form-check-inline 单选按钮

    我正在尝试将单选按钮显示为内联选项 在 Bootstrap 4 1 1 文档中 示例代码是 div class form check form check inline div
  • 如何让 AppBar 组件填充所有 div 的宽度和高度的 10%?

    class MyStupidComponent extends React Component render return div div div div
  • 有没有办法设置独立 TableView 列的样式?

    我可以使用 CSS 来设置单元格样式 但如果我只想为一列使用不同的样式 例如使用不同的文本颜色 怎么办 也许我错过了一些东西 你应该使用TableColumn setCellFactory http docs oracle com java
  • 如何防止在 CSS 中调整图像大小?

    我有以下代码来创建图像库 他们需要做出反应 但问题是 当窗口宽度发生变化时 图像也会调整大小并失去纵横比 我怎样才能解决这个问题 我是 CSS 新手 padding 0 margin 0 HEADER STYLES header width
  • CSS位置绝对和全宽问题

    我想改变 dl 下面占据全屏宽度而不更改换行和包含它的标题元素 当我尝试定位 dl 元素 参见 problematic code 部分 下面 导航获取最大宽度为 1003px 的包装器的 100 我希望它在不改变换行和标题 div 的情况下
  • 已弃用的代码: vs style="font-weight:bold;"

    我一直用 b 标记为粗体 因为这是我很久以前就被教做的方式 但现在我的 IDE 总是告诉我 b 已弃用并使用 css 样式 假设他们希望我使用 div style font weight bold Bold Text div 我的 IDE
  • 将背景图像保留在底部

    我一直在研究将图像保留在底部页面的解决方案 我目前得到的代码是 footer background image url images footer png background repeat repeat x position absolu
  • 悬停时连续 CSS 旋转动画,悬停时动画回到 0deg

    我有一个元素 当你将鼠标悬停在它上面时 它会无限旋转 当您将鼠标悬停在外面时 动画就会停止 简单的 webkit keyframes rotate from webkit transform rotate 0deg to webkit tr
  • 媒体查询在 VueJS 样式标签中不起作用

    我正在尝试在 VueJS 组件的样式标签中使用 media media 中的样式始终有效 而不是使用宽度规则
  • 调整浏览器大小时CSS边框影响宽度

    我使用以下方法制作了两个简单的导航菜单ul and li 一种是无边框的 另一种是有边框的 两个菜单的宽度固定为 400px 在第一个菜单中我给了每个li固定宽度为 100px 在第二个菜单中 根据宽度计算 我给出了固定宽度 98px 左右
  • 如何让图片在div中居中?

    我的 HTML 代码如下所示 div class ctn img src some img jpg div The ctn应该是固定大小 例如 150 150 但 IMG 的尺寸可能更大或更小 200 50 50 200 50 50 等 如
  • LessCSS 中的 @media 和 @font-face 支持

    你好 有谁知道如何使用 LessCSS 进行媒体查询吗 media screen and max width 600px container width 480px 给我以下错误 Syntax Error on line 23 expect
  • 使用 CSS 首字下沉

    我怎样才能使每个段落的第一个字符看起来像这样 我更喜欢只使用 CSS p first letter float left font size 5em line height 0 5em padding bottom 0 05em paddi
  • 如何在 CSS 选择器中使用 JSF 生成的带有冒号“:”的 HTML 元素 ID?

    我一直在使用 JSF 处理一个简单的 Java EE 项目
  • SVG 视图框显示屏幕外项目

    我正在使用 HTML5 制作游戏svg标签为图形提供多分辨率显示 游戏的大部分内容已经完成 但在测试中我刚刚遇到了一个主要错误 其中涉及 SVG 对象可见 尽管在非本机分辨率下位于视图框之外 我不确定这是否是我的代码或浏览器本身的缺陷 Go
  • CSS - a:访问过:悬停?

    如何应用字体color仅指向已经存在的超链接visited并且正在被hover通过鼠标 本质上 我想做的是 a visited hover color red 是的 这是可能的 这是一个例子 a href http www google c
  • 定义 CSS @Font-Face 粗体斜体

    我正在开展一个项目 其中我正在使用的字体有六种粗细 样式 这些包括 常规 斜体 半粗体 半粗斜体 粗体和粗体斜体 我有 font face 标签设置 理论上 它们应该显示的方式 然而 现实中发生的情况是粗体始终是斜体 是否有办法声明这些粗体
  • 垂直滚动不适用于 Mobile Safari

    由于某些原因 当我在移动 Safari iOS 9 1 iPhone 5 Safari 8 1 上访问我的网站时 垂直滚动无法正常工作 https sleepy anchorage 3222 herokuapp com https slee
  • 如何根据 URL 路径添加 CSS 类?

    如何根据我所在的路径将 CSS 类添加到 div 中 包括如果我在其中包含 则不应该出现问题 div class popup ul li a href vs Example 1 a li li a href bod Example 2 a
  • 使列在引导程序中固定位置

    使用 Bootstrap 我有一个网格列 class col lg 3 我想将其放置在位置 固定 而另一个 col lg 9 是正常位置 可滚动页面 div class row div class col lg 3 Fixed conten

随机推荐

  • SAGE(SAGEMATH)密码学基本使用方法

    求逆元 inv inverse mod 30 1373 print 30 inv 1373 1 扩展欧几里得算法 d u v xgcd 20 30 print d 0 u 1 v 2 format d u v d 10 u 1 v 1 孙子
  • win10系统显示打印机未连接到服务器,解决win10提示“Windows无法连接到打印机”的方法...

    打印机是我们办公室中必备的设备 如今各种打印方式也是层出不穷 最近有用户在使用win10系统进行打印的时候遇到了这样的提示信息 windows 无法连接到打印机 在更详细的信息提示界面中已经告诉我们是由于本地打印店额后台服务程序没有启用导致
  • void、void 的使用

    void的使用 1 对函数返回值的限定 函数无返回值 void test int a int num a 2 void 限定函数的返回值为任意类型的指针 void test int a 5 int p a return p 3 对函数参数的
  • ASCII unicode utf8 编码、解码的那些事

    ASCII unicode gbk utf8 编码 解码的那些事 对应编码这块一直处于一种懵懵懂懂的状态 有的时候去查了资料 当下理解了 过一段时间又遗忘了 今天又重新查阅了一番资料 记录一下所感所悟 阮一峰老师 关于编码的总结 1 ASC
  • 【学一点儿前端】box-sizing以及flex:1的解释

    box sizing box sizing 是一种用于控制CSS盒子模型行为的CSS属性 它的作用是指定元素的宽度和高度的计算方式 以确定元素的总尺寸 具体来说 box sizing 可以有两个可能的取值 1 content box 默认值
  • hive加载数据权限报错

    前提 上传数据至hdfs 的 user root 下 创建了hive的orc表 准备load数据 创建了临时的ordertmp的textfile格式表 后面用insert overwrite进目标表 执行load data 从 user r
  • 2020-06-07

    Arcgis engine实现栅格运算功能 有大佬能帮助一下吗 arcgis是10 2版本的 环境是vs2015
  • linux的-Mtime 命令

    我在写shell脚本的时候 定时删除一些文件的时候 也经常用得到 mtime这个参数 所以打算好好看看 把它弄明白一下 man find里的解释 mtime n File s data was last modified n 24 hour
  • java ee 运行环境_EE质量检查:为我们的网站开发和运行自动测试

    java ee 运行环境 Introduction 介绍 This article is the last of three articles that explain why and how the Experts Exchange QA
  • 【Python_requests学习笔记(九)】基于requests和threading模块实现多线程爬虫

    基于requests和threading模块实现多线程爬虫 前言 此篇文章中介绍基于 requests 和 threading 模块实现多线程爬虫 并以 抓取Cocos中文社区中 热门主题下的帖子名称及id数据 为例进行讲解 因主要介绍如何
  • 华大单片机HC32L130 / HC32L136 / HC32F030 系列硬件开发指南

    适用对象 系列 产品型号 HC32L130 HC32L130E8PA HC32L130F8UA HC32L130J8TA HC32L130J8UA HC32L136 HC32L136J8TA HC32L136K8TA HC32L130 HC
  • 三角函数常见基本公式

    定义式 图形 正弦 sin 余弦 cos 正切 tan或tg 余切 cot或ctg 正割 sec 余割 csc 函数关系 商数关系 倒数关系 平方关系 和差角公式 二角和差公式 三角和公式 积化和差公式 倍角公式 二倍角公式 三倍角公式 四
  • centos7初始化操作-时间同步/网络防火墙/本地源/ssh/等

    一 chrony安装及配置 验证 说明 协议 NTP协议 时间同步必要场景 集群 日志 加密协议等 相关文章 https blog csdn net weixin 44515412 article details 106875753 1 安
  • 使用Lodop控件打印表单和二维码

    文章目录 1 了解Lodop 1 1Lodop的定义 1 2Lodop主要函数 1 3Lodop的下载 2 在页面中引入Lodop 3 支持的浏览器 4 Lodop的应用 4 1使用Lodop打印表单 4 2打印二维码 1 了解Lodop
  • Python学习笔记(十二)————判断语句相关

    目录 1 布尔类型的定义 2 比较运算符 3 if语句 4 if else语句 5 if elif else语句 1 布尔类型的定义 布尔类型的字面量 True 表示真 是 肯定 False 表示假 否 否定 布尔类型的数据 不仅可以通过定
  • UNI APP---Android端原生插件开发实战(一)

    1 前言 最近一个项目要求我们的产品必须走网络隧道 并且提供了对应的SDK 很明显只能通过原生开发的方式才能实现这个流程 笔者没有做过原生开发 也没有学过java 所以也踩了不少坑啊 花了两天时间总算完成任务 今天系统的总结下步骤 由于是根
  • 第一章 Qt入门

    2017 10 20 HelloZEX 感谢奇趣科技公司 Trolltech Qt门户 https www qt io 为我们提供了Qt 一种图形用户界面框架 利用Qt提供的C 应用程序开发框架 可以轻松实现 一次编写 随处编译 跨平台解决
  • 深度学习过程中测试准确率先上升后下降是为什么?

    很典型的过拟合问题 过拟合问题的表现 在训练过程中的验证准确率前上升 后下降 即在验证集上的表现先好后差 造成过拟合的原因 数据相对模型来说比较简单 即模型的表达能力过剩 在初始训练阶段 模型逐渐开始学习到一些信息 因而在验证集上的表现是提
  • setTimeout引发的刨根问底

    setTimeout 定时器 是JavaScript中一个比较重要且常用的方法 该方法用于在指定的毫秒数后调用函数或计算表达式 平时开发可能基本都是使用 setTimeout fn ms 的形式 当然还有比较神奇的用法 特别是在前端面试中
  • flex弹性布局教程-07容器属性flex-direction

    本节目标 掌握flex direction的使用 了解主轴变化的概念 内容摘要 本篇讲解了容器属性 flex direction 用来设置主轴的方向 阅读时间大约10 15分钟 flex容器属性 前面讲的属性都是设置在项目上的 另外还有6个