弹性布局flex

2023-11-07

布局的传统解决方案,都是基于盒状模型。它依靠display,poristion,float来实现。对于有一些布局想实现就特别不方便,如:垂直居中

Flex,即flaxible box,弹性布局的意思,用来为盒状模型提供最大的灵活性。
任何一个容器都可以执行为Flex布局,只需要改变容器的display属性为flex.
行内元素也可以实现弹性布局,将display属性改为inline-flex即可。像如webkit内核属性的浏览器,我们还必须加上-webkit-前缀。

    display:flex;
    display:inline-flex;

注意:将容器设置为flex布局后,项目的float,clear及vertical-align样式将不起作用。

我们将使用flex布局的元素称为flex container,容器,将其硒元素称为容器成员,称为flex-item ,即项目。flex容器,flex项目等。

容器默认存在两个轴,水平的主轴main axis和垂直的交叉轴cross axis.
项目默认沿主轴排列,单个项目占据的主轴空间叫main size,占据的交叉轴叫做cross

flex容器设置为display:flex||inline-flex后就会成为弹性布局的元素。他还要设置一些个属性。

flex-direction,方向,这个属性决定主轴的方向,及flex项目的排列方式,方向。
row:row也是默认值,及主轴为水平方向排列,起点从左开始
row-reverse:主轴为水平方向,起点从右开始。
column:主轴为垂直方向:起点从上面开始。
column-reverse:主轴也是垂直方向,起点从底端开始。

flex-wrap:我们的flex项目默认情况下都是排在一条线上,使用flex-wrap属性定义我们的flex项目如果占满轴线是否需要换行,或者是如何换行。
nowrap:默认,表示不进行换行。
wrap:表示换行,第一行在上方
wrap-reverse:第一行在下方。

flex-flow:这个是flex-direction和flex-wrap两个属性的简写。
flex-flow:flex-direction || flex-wrap;

justify-content:
justify-content属性定义了项目在主轴上的对齐方式。
flex-start:默认值,左对齐
flex-end:右对齐
center:居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等,这样,flex项目之间的间距会比flex容器间距大一倍。

align-item属性定义flex项目在交叉轴上如何对齐
flex-start:交叉轴的起点对齐
flex-end:交叉轴的终点对齐
cetner:交叉轴的中点对齐
baseline:flex项目的第一行文字的基线对齐
stretch:默认值,如果项目未设置高度或者高度为auto,将占满整个容器的高度。

align-content:
align-content属性定义了多根轴线的对齐方式。如果只有一根轴线就不会起作用。
flex-start:与交叉轴的起点对齐,
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间平均间隔。
space-around:每个轴线间隔相等,轴线间比举例容器的边距会大一倍。

flex项目上的属性

order;
order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0;
flex-grow:
flex-grow属性定义项目的放大比例,默认为0.即如果存在剩余空间,也不放大。

如果所有的项目的flex-grow属性都为1,则他们将等分剩余空间(如果有的话)
如果一个flex项目的flex-grow属性为2,其他项目为1,则前者占据的空间将大一倍。

flex-shrink:
flex-shrink定义了项目的缩小比例,默认为1。

如果所有的flex项目的flex-shrink都为1,当空间不足时都将等比例的缩小。
如果有一个flex项目的flex-shrink为0,其他都为1,当空间不足时,前者不会进行缩小。

flex-basis:
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间main size.浏览器根据这个属性,计算是否有多余空间。默认值为auto,即项目本来的大小。

flex属性:
flex属性是flex项目flex-grow,flex-shrink,flex-basis的简写,默认值为:0 1 auto.

align-self属性:
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

弹性布局flex 的相关文章

  • 悬停 CSS 仅适用于 Chrome

    嘿 我正在尝试使用 CSS 悬停类 它在 Chrome 上运行良好 但在 Firefox 上运行不佳 任何帮助表示赞赏 这是我的 CSS albumbox labeltext visibility hidden albumbox hover
  • 删除下拉链接并在导航栏菜单中显示其所有项目

    我正在使用 Twitter Bootstrap 及其响应式设计来实现顶部典型的 Twitter Bootstrap 导航栏菜单 在那里我有一些链接和一个下拉菜单 当我将浏览器大小调整为768px或者更少 它会转变为一种新的导航菜单 这一切开
  • 表单 CSS:根据选中/未选中状态设置单选框的父级(标签)样式

    所以我有一个表格 表格中提出的大多数问题都是使用无线电输入 我要和
  • 标题的下边框小于宽度

    我需要创建一个下划线效果底部边框小于h2标题的宽度 通常我不上传图片 但我认为这可能有助于进一步解释问题 您可以为此使用伪元素 例子 http jsfiddle net SZ39x pseudo border position relati
  • 深层嵌套 Flexbox 布局是否会导致性能问题?

    我一直在开发一个 ReactJS 项目 其中我使用 Flexbox 布局创建了大部分组件 由于使用 React 我们可以拥有深度嵌套的组件 因此我的布局具有嵌套的 Flexbox 布局 现在我的问题是 这对性能有任何问题吗 在一个页面上 有
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 如何反转包裹上的弹性盒方向以实现“蛇形包裹”?

    我想找到一种方法 让单个容器中的元素换行到与前一行相反的方向的新行 就像一条蛇向后弯曲一样 我无法使用 flexbox 以及 flex direction 和 flex wrap 属性的任何组合来实现此结果 Flexbox 结果与期望结果的
  • 禁用 WebView 中 div 上的橙色突出显示

    我正在制作 PhoneGap Android 应用程序 无法关闭橙色突出显示可点击元素 我已经尝试了 CSS 的所有组合 webkit tap highlight color webkit focus ring color 和 webkit
  • 使用 ul 和 li 标签选择框

    我想插入 img 每个中的标签
  • Twitter Bootstrap 按钮组控制单选按钮/复选框

    我正在尝试使用Twitter Bootstrap 按钮组 http twitter github com bootstrap javascript html buttons作为一组实际的表单输入控件 默认情况下 这些按钮组的功能类似于单选按
  • 仅对小型设备使用偏移的中心引导列

    我正在尝试在图像旁边显示文本 我希望它仅在设备宽度低于 767px 时才堆叠 否则 我希望他们肩并肩 在此堆叠过程中 图像具有响应性 因此它占据了文本上方的整行 为了避免这种情况 我尝试在列为xs时限制列的大小 这可确保图像在指定的列大小内
  • 检测计算机是否可以正确支持 3D 变换

    当我检测到 webkit 时 我使用 3D Transforms 属性添加额外的样式表 尽管它在许多不同的计算机上运行良好 全部使用相同的 chrome 版本 有些无法正确渲染动画 这些是较旧的计算机 具有更便宜的显卡 我猜这就是导致问题的
  • 外部 CSS 是否应用于 jsPDF 生成的 pdf

    我已经开始使用 jspdf 制作一些演示 我有一个 html 文件 我的 css 在外部文件中 我写了下面的代码来生成我的pdf pdfButton on click function var pdf new jsPDF p in lett
  • 名称属性的 CSS 选择器?

    这可能是一个愚蠢的问题 但是属性的 CSS 选择器是什么 a 那是 名字 document body innerHTML myString anchor HTML String 这段 JavaScript 创建了一个 a 带有名称的元素 H
  • 使用渐变获取颜色条中特定位置的颜色值

    我生成了一个带有 CSS3 样式的渐变颜色条 fiddle http jsfiddle net eDEWk 现在想要该颜色条中特定位置的颜色值 通过 x 和 y 坐标 据我所知 没有直接的方法可以做到这一点 我看到两个选择 在 JavaSc
  • 如何使 superfish 下拉菜单响应式?

    我正在使用带有骨架框架的 superfish 下拉菜单 我希望它也能在手机上运行 默认情况下 它显示下拉项目 但它将鼠标悬停在其下方的项目上 我想以某种方式拥有它 以便它将父项推到它下面 有什么解决办法吗 这是一个更好的答案 我能够将 Su
  • 如何根据子宽度设置 div 的宽度?

    我想使用 HTML 和 CSS 创建一个类似于 UI 的线程视图 聊天收件箱 http jsfiddle net 7mbaksvj http jsfiddle net 7mbaksvj 我的问题是 div 的宽度 它以固定宽度的形式出现 但
  • 背景大小:封面在 Google Chrome 中突然停止工作?

    还有其他人有这个问题吗 我以创建网站为生 有些网站使用了 css 属性background size cover 大约 1 周前突然间 所有具有此属性的网站都不再在 Google Chrome 中正确显示 所有其他浏览器都工作正常 还有其他
  • 隐藏行时更新奇数/偶数行颜色

    我在一页上有几个表格和一个复选框 用于根据其中一个单元格的内容显示 隐藏行 虽然所有行都是可见的 但一切都很完美 并且行颜色根据需要交替 当我隐藏行时 交替的行颜色不再正确 显然 如何轻松更新类以在选中复选框时保持交替行颜色 然后在取消选中
  • 是否可以将选择框中的文本居中?

    我试过这个 http jsfiddle net ilyaD KGcC3 http jsfiddle net ilyaD KGcC3 HTML

随机推荐

  • STM32局部变量过大导致栈溢出

    最近项目调试中发现只要使用memset函数对一个局部数组赋值时 就会导致其他全局变量值被更改 接着就进入HardFault错误 后来发现局部变量和全局变量地址重叠 Data Write结构体为全局变量 OTA Data为局部数组 看了启动文
  • 利用类实现rand函数,以及相应的优化

    亮点 实现了一个非常高效的跳越性调用函数 见代码part 4 include
  • IDEA将jar包部署到Docker中使用TLS认证

    一 无CA认证 1 修改服务器配置 开放Docker的远程连接访问 root localhost vim usr lib systemd system docker service 将ExecStart属性value值改为 usr bin
  • vue + elementui:分页查询,el-pagination,纯前端分页

    效果 新建pages js文件 文件内容 数据分页 function pageData total pageRow currentPage allTableDataList var dealData var onePageList var
  • ChatGPT在指尖跳舞: open-interpreter实现本地数据采集、处理一条龙

    更多详情请点击查看原文ChatGPT在指尖跳舞 open interpreter实现本地数据采集 处理一条龙 Python教学专栏 旨在为初学者提供系统 全面的Python编程学习体验 通过逐步讲解Python基础语言和编程逻辑 结合实操案
  • vue集成汉字转拼音(附多音字解决方案)

    1 结果显示 输出首字母 N 输出拼音 NiHaoMa 2 js调用 import HanziToPinyin from hanziToPinyin export default class Message extends Vue moun
  • Intellij IDEA的激活(使用破解补丁永久激活)

    1 先下载个idea 给个官网下载吧 https www jetbrains com idea 这里只介绍破解补丁方式 个人觉得破解补丁方式是最一劳永逸的 破解步骤如下 2 从http idea lanyus com 这个网址下载破解补丁
  • HTTPS加密流程详解

    文章目录 HTTPS与HTTP的关系 HTTPS基本工作过程 对称密钥 非对称密钥 中间人攻击 证书 HTTPS与HTTP的关系 HTTPS协议基于HTTP 只是比HTTP多了一个加密层 为什么要加密呢 因为网络传输的过程中 明文传输的数据
  • 华为OD机试 - 找终点(Java)

    题目描述 给定一个正整数数组 设为nums 最大为100个成员 求从第一个成员开始 正好走到数组最后一个成员 所使用的最少步骤数 要求 第一步必须从第一元素开始 且1 lt 第一步的步长
  • css-赛博朋克风动画组件

    css 赛博朋克风动画组件 目录 文章目录 前言 结果展示 代码 前言 Tutorials收费课程中的一种实现 实现思路 先绘制盒子 制作动画 通过颜色位置变化来实现流转 webkit box reflect below 2px linea
  • 李宏毅机器学习课程笔记1:Regression、Error、Gradient Descent

    台湾大学李宏毅老师的机器学习课程是一份非常好的ML DL入门资料 李宏毅老师将课程录像上传到了YouTube 地址 NTUEE ML 2016 这篇文章是学习本课程第1 3课所做的笔记和自己的理解 Lecture 1 Regression
  • android开发:gradle 3.X中dependencies依赖api、compile和implementation的区别

    参考 Android Studio3 X中dependencies依赖api compile和implementation的区别 注意 文中的Android Studio3 X应该是gradle3 x
  • golang数据结构初探之动态数组slice

    动态数组slice slice 又称动态数组 依托于数组实现 可以方便的进行扩容和传递 实际使用时比数组更灵活 但正是因为灵活 实际使用时更容易出错 避免出错的最好方法便是了解其实现原理 特性速览 初始化 声明和初始化切片的方式主要有以下几
  • Jupyter Notebook常用快捷键(在命令模式中按H也可查看)

    命令模式 按键 Esc 开启 Enter 转入编辑模式 Shift Enter 运行本单元 选中下个单元 Ctrl Enter 运行本单元 Alt Enter 运行本单元 在其下插入新单元 Y 单元转入代码状态 M 单元转入markdown
  • chatgpt赋能python:Python如何读取npz文件?

    Python 如何读取 npz 文件 在 Python 中 我们可以使用多种方式读取 npz 格式的文件 npz 文件是 numpy 的压缩文件格式 可以用于存储多个数组数据 什么是 npz 文件 npz 文件是一个多个数组数据的压缩文件格
  • 推荐一款超厉害的国产Java工具类Hutool

    文章目录 Hutool 是什么 入门和安装 Maven Gradle 非Maven项目 编译安装 包含组件 日期时间工具 DateUtil 转换 Date long Calendar之间的相互转换 字符串转日期 格式化日期输出 获取Date
  • 关于RNA-seq 的那点事Count 数的标准化 (一) RPKM 和FPKM,TPM及C(R)PM

    图片来自网络 我们都知道 在RNA seq 测序的过程中 我们测完序的最终目的是想根据测序的结果 最终分析得到差异基因以及潜在可能的功能分析 那么在进行差异分析以及对表达量进行分析的时候 对基因原始的Count 进行标准化 消除由于测序过程
  • 数据结构day6(2023.7.20)

    一 Xmind整理 二 课上练习 练习1 个栈的入栈次序ABCDE 则栈的不可能的输出序列是 D A ABCDE B DECBA C EDCBA D DCEAB 栈的特点是先进后出 后进先出 D不符合该思想 根据题意 可以推测D选项首先入栈
  • mysql 将时间格式化为yyyy-MM-dd或者yyyy-MM-dd HH:mm:ss

    DATE FORMAT函数 yyyy MM dd DATE FORMAT contract time Y m d select contract time DATE FORMAT contract flag time Y m d as co
  • 弹性布局flex

    布局的传统解决方案 都是基于盒状模型 它依靠display poristion float来实现 对于有一些布局想实现就特别不方便 如 垂直居中 Flex 即flaxible box 弹性布局的意思 用来为盒状模型提供最大的灵活性 任何一个