博主信息
博文 18
粉丝 0
评论 0
访问量 15302
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
210325 CSS flex布局 项目属性
xyphpblog
原创
837人浏览过

flex布局 项目属性

1. 项目整体伸缩属性

  • flex-grow
    • 允许放大
  • flex-shrink
    • 允许收缩
  • flex-basis
    • 设置item在主轴上的大小(覆盖width属性,但会被 min-width 和 max-width 属性覆盖)

以上属性简写:
flex: 放大因子 收缩因子 大小;
例:flex: 2 2 10rem;
默认值:flex: 0 1 auto; (initial)
1 1 auto = auto
0 0 auto = none

默认效果

flex-grow

  • 当容器宽度<=item宽度之和时,每个item宽度一样;
  • 当容器宽度足够,即大于item宽度之和时,item按照flex grow factor进行放大
    例:flex-grow: 1;
    变化如下

CSS

  1. .container>.item {
  2. padding: 1rem;
  3. background-color: lightsteelblue;
  4. border: 1px solid black;
  5. flex-basis: 10rem;
  6. }
  7. .container>.item:first-of-type {
  8. flex-grow: 1;
  9. }
  10. .container>.item:nth-of-type(2) {
  11. flex-grow: 2;
  12. }
  13. .container>.item:nth-of-type(3) {
  14. flex-grow: 3;
  15. }
  16. .container>.item:last-of-type {
  17. flex-grow: 4;
  18. }

flex-shrink

  • 当容器宽度足够容纳所有项目时, 不会收缩
  • 当容器宽度不够够容纳所有项目时从收缩因子最大的开始收缩

CSS

  1. .container>.item {
  2. padding: 1rem;
  3. background-color: lightsteelblue;
  4. border: 1px solid black;
  5. flex-basis: 10rem;
  6. }
  7. .container>.item:first-of-type {
  8. flex-shrink: 1;
  9. }
  10. .container>.item:nth-of-type(2) {
  11. flex-shrink: 2;
  12. }
  13. .container>.item:nth-of-type(3) {
  14. flex-shrink: 3;
  15. }
  16. .container>.item:last-of-type {
  17. flex-shrink: 4;
  18. }

当容器宽度足够容纳所有项目时:

当容器宽度不够时开始收缩:

下图中,容器总width为 366 < 400, 此时子项目大概宽度:
item1-85, item2-89, item3-92, item4-96
注:容器宽度过小时,会从item3-item1开始逐渐妥协,即item3-item1宽度逐渐与item4相等,最后每个item宽度相等

2. 单独设置某个项目 align-self

  1. .container>.item:nth-of-type(3) {
  2. flex-grow: 3;
  3. align-self: flex-start;
  4. }

3. flex项目支持定位,不支持浮动

  1. .container>.item:nth-of-type(3) {
  2. flex-grow: 3;
  3. align-self: flex-start;
  4. position: absolute;
  5. background-color: blanchedalmond;
  6. left: 5rem;
  7. top: 5rem;
  8. }

4. 改变flex项目顺序

order: value;
数字大靠后排列,数字小靠前排列

  1. .container>.item:nth-of-type(3) {
  2. flex-grow: 3;
  3. order: 20
  4. }
  5. .container>.item:last-of-type {
  6. flex-grow: 4;
  7. order: -1;
  8. }

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学