本节目标

  1. 掌握 flex-basis 的用法。
  2. 了解 flex-basis 和 width 的不同。
  3. 阅读时间大约5分钟。

内容摘要

本篇介绍了 flex 项目属性的第一个 flex-basis ,用于设置占据主轴空间的大小。

阅读时间10~15分钟。

flex项目属性

flex项目属性总共有6个:

flex-basis
flex-grow
flex-shrink
flex
align-self
order

见名知意,项目属性就是设置在项目上的属性,实务中不同的项目显示的样子一般就是通过这些属性实现。

比如:不同的背景、宽高等等,后面逐一对各个属性进行讲解。

flex-basis属性

flex-basis 属性定义项目占据主轴空间的大小,因为flex布局默认的主轴都是横向的(可以想象成数学坐标轴的X轴)。

所以在这里可以先理解成 宽(width)属性,用法和 width 的一致,只是优先级比 width 更高。

语法格式:

.item {flex-basis: <length> | auto; /* 默认值 auto */
}

示例1,接上例,设置项目宽度为120px:

接上一篇例子,有一个div(容器),容器内包含3个div(项目),容器设置为 flex 弹性布局。

容器内项目的宽度是根据内容自适应的,这个也就是 flex-basis 默认值为 auto 的含义了。

下面设置项目的宽度为120px:

.item {/* flex-basis属性定义了项目占据主轴空间(main size)大小。 */flex-basis: 120px;
}

运行效果:

可以看到3个项目的宽度都为120px了,这个就是 flex-basis 的含义了。

思考:

如果设置 width: 100px,那么项目实际为多宽呢?

解答:因为 flex-basis 属性的优先级比 width 高,所以项目的宽度还是120px。

思考:

设置宽度为什么不直接用 width 属性?还要再多一个 flex-basis 属性,不是多此一举吗?

解答(难点):

flex-basis 这边并没有说是定义项目的宽度,而是说:占据主轴空间的大小。
因为设置容器属性 flex-direction 为 column或者column-reverse 的时候主轴会变成纵向的(可以想象成数学坐标轴的Y轴)。
在这种情况下,flex-basis 就是设置高,可以理解成 height 属性。
从这个意义上来讲,flex-basis 不全等于 width。

示例2,设置项目的宽度为200px。

这个例子看起来和上面的例子没有什么差别,就是把宽度调整大一些。细心的童靴会发现如果项目的宽度都为200px,那么3个就是600px,会超过容器宽度了。

代码很简单:

.item {/* flex-basis属性定义了项目占据主轴空间(main size)大小。 */flex-basis: 200px;
}

运行效果:

其中:

1. 项目被压缩显示了,运行效果图里可以看到缩小的区间。
2. 缩小后项目的宽度是150px,3个刚好为450px,等于容器的宽度。

由此可知:

如果项目的总宽度超过容器的宽度,那么会缩小到容器范围内。

本节总结

  1. flex-basis 属性设置在项目上的。
  2. flex-basis 是设置项目 占据主轴空间的大小、不全等于width。
  3. flex-basis 优先级比 width 更高。

flex弹性布局教程-03-项目属性flex-basis相关推荐

  1. flex弹性布局教程-04项目属性flex-grow

    本节目标 掌握flex-grow的使用. 掌握flex-grow放大的计算公式(难点). 掌握编写导航条的技巧. 内容摘要 本篇介绍了项目属性 flex-grow,用于定义项目的扩大系数,用于分配容器 ...

  2. flex弹性布局教程-10容器属性justify-content

    本节目标 掌握justify-content的基础使用. 掌握项目多列排列使用justify-content对齐的技巧. 内容摘要 本篇介绍了容器属性justify-content,用来设置项目在主轴 ...

  3. flex弹性布局教程-09-容器属性flex-flow

    本节目标 掌握flex-flow的使用,flex-flow是flex-direction和flex-wrap的合集. 掌握上左右下的布局编写技巧. 内容摘要 本篇介绍了容器属性 flex-flow,是 ...

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

    本节目标 掌握flex-direction的使用. 了解主轴变化的概念. 内容摘要 本篇讲解了容器属性 flex-direction,用来设置主轴的方向. 阅读时间大约10~15分钟. flex容器属 ...

  5. flex弹性布局教程-12容器属性align-content

    本节目标 掌握align-content的基础使用. 掌握align-content和justify-content的区别. 掌握align-content和align-items的区别. 内容摘要 ...

  6. Flex 弹性布局教程以及对主轴 交叉轴的理解 :语法篇

    弹性布局的主轴交叉轴的理解 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main ...

  7. CSS中使用flex弹性布局实现上下左右垂直居中排列并设置子元素之间的间距

    场景 Flex是Flexible Box的缩写,意为"弹性布局". 怎样使用弹性布局实现页面上下两个元素上下左右垂直居中排列. 实现如下类似布局 最外层是是一个div,div里面是 ...

  8. 移动端基础(2)—— flex弹性布局

    一.flex弹性布局 flexible-box-layout 弹性盒式模型,它能更加高效的控制元素的对齐.排列,更重要的是能够自动计算布局内元素的尺寸,无论这个元素的尺寸是固定的还是动态的. 父元素( ...

  9. 移动web现状、viewport视口、二倍图、移动web开发主流方案、布局技术选型(流式布局、flex弹性布局、less+rem+媒体查询布局、混合布局、媒体查询、bootstrap)

    移动端web现状: 移动端常见浏览器:UC浏览器,QQ浏览器,Opera浏览器,百度手机浏览器,360安全浏览器,谷歌浏览器,搜狗手机浏览器,猎豹浏览器及杂牌浏览器.移动端常见的浏览器都是基于webk ...

最新文章

  1. 如何掌握并在实践中自如运用设计模式
  2. canvas合成海报所遇问题及解决方案总结
  3. WCF系列教程之WCF服务宿主与WCF服务部署
  4. Ubuntu16.04深度学习环境+个人桌面配置(CUDA10.1 + cudnn8.0.4 + pytorch1.7)
  5. Django访问静态资源
  6. 零基础学模拟电路--2.运算放大器的虚短和虚断
  7. 了解最新升级手持式频谱仪版本和各项性能
  8. 机器学习笔记21——决策树之CART算法原理及python实现案例
  9. 魔百和CM311-1a_YST代工_安卓9.0_S905L3A_卡刷固件包
  10. 你无法访问计算机,计算机无法访问,您可能没有权限使用网络资源.请与这台服务器的管理员联系的解决办法...
  11. CSMA/CD-CSMA/CA
  12. 腾讯云实时音视频( TRTC)通话质量监控仪表盘
  13. 战舰帝国服务器维护,【图片】9月17日更新公告亲爱的司令官:《战舰帝国》于9月17日维护,成功更新后可以获得200个钻石的更新补偿_战舰帝国吧_百度贴吧...
  14. 宇视科技设备SDK获取方式
  15. USRP B210驱动安装
  16. win7如何更改文件类型_如何在win10中使用云笔记软件来做pdf手写笔记或绘图? - 敬业签便签...
  17. 微信定位精灵 android,微信定位精灵安卓版下载
  18. mysql没有for循环语句(使用while替代)
  19. 中国银联-无跳转支付token(银联侧开通)
  20. 统计学怎么求加权指数_暨南大学《统计学》中文习题 第十二章 统计指数

热门文章

  1. 傅立叶变换在图像处理中的应用
  2. 为什么用企业微信做私域运营
  3. 补充:特殊句型(虚拟语气、情态动词)
  4. Blender赛道建模+Gazebo赛道仿真
  5. pandas 小技巧——用指定列的“非空值”值去填充另一列的“空值”
  6. 背景图片宽高自适应实现
  7. IIS 发布Web网站或接口,提示错误“未能加载文件或程序集“XXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”
  8. 获取微信二维码返回乱码
  9. `Computer-Algorithm` 有向无环图DAG
  10. 创业十诫之三:忽视成本预算