博客列表 >弹性盒布局之弹性元素 九期第七课

弹性盒布局之弹性元素 九期第七课

叮叮当当
叮叮当当原创
2019年11月07日 00:50:38692浏览

1.设置弹性元素的增长因子


2.设置弹性元素的缩减因子




3.设置弹性元素的基准尺寸


4.简化弹性元素的基本设置


5.单独设置元素在交叉轴上排列方式

  1. <body>
  2. <h2>单独设置元素在交叉轴上排列方式</h2>
  3. <div class="container flex">
  4. <span class="item">item1</span>
  5. <span class="item">item2</span>
  6. <span class="item">item3</span>
  7. </div>
  8. </body>
  1. @import "public.css";
  2. .container {
  3. width: 500px;
  4. height: 300px;
  5. /*以主轴垂直为例进行演示*/
  6. flex-flow: column nowrap;
  7. /*默认元素紧贴终止线排列*/
  8. align-items: flex-end;
  9. }
  10. /*设置元素的默认大小*/
  11. .item {
  12. width: 100px;
  13. height: 60px;
  14. }

  1. /*默认值: auto,表示继承父元素的align-items,如果没有父元素,则等价于stretch*/
  2. /*最后一个调整, 紧贴起始线排列*/
  3. .item:last-of-type {
  4. align-self: flex-start;
  5. }
  6. /*第一个调整到中间位置排列*/
  7. .item:first-of-type {
  8. align-self: center;
  9. }
  10. /*第二个使它自动扩*/
  11. .item:nth-last-of-type(2) {
  12. background-color: #fff;
  13. /*为自动扩展,需还原元素宽度到初始大小*/
  14. width: auto;
  15. align-self: stretch;
  16. }

  1. /*order:弹性元素的排列顺序,默认为0,值越小越靠前排列*/
  2. .item:last-of-type {
  3. order:-1;
  4. }

6. 试着将之前的一些案例用flex布局改定, 例如圣杯布局

  1. <head>
  2. <meta charset="UTF-8">
  3. <title>圣杯布局:弹性盒子</title>
  4. <style>
  5. * {
  6. margin: 0;
  7. padding: 0;
  8. }
  9. body {
  10. height: 100vh;
  11. display: flex;
  12. /*!*垂直轴(交叉轴)方向,不换行*!*/
  13. flex-flow: column nowrap;
  14. }
  15. header, footer {
  16. min-height: 60px;
  17. text-align: center;
  18. line-height: 60px;
  19. background-color: lightyellow;
  20. /*flex: none 不增长,不缩放,宽度auto,原尺寸*/
  21. flex: 0 0 auto;
  22. }
  23. main {
  24. height: 90vh;
  25. background-color: lightgray;
  26. /*flex: auto; 1 1 auto 可增可缩,完全适应容器*/
  27. flex: 1;
  28. display: flex;
  29. }
  30. article {
  31. box-sizing: border-box;
  32. background-color: lavender;
  33. flex:4 ;
  34. }
  35. aside:first-of-type {
  36. box-sizing: border-box;
  37. background-color: lightcyan;
  38. flex:1 ;
  39. order: -1;
  40. }
  41. aside:last-of-type {
  42. box-sizing: border-box;
  43. background-color: lightpink;
  44. flex:1 ;
  45. }
  46. </style>
  47. </head>
  48. <body>
  49. <header>头部</header>
  50. <main>
  51. <article>中间</article>
  52. <aside>左侧</aside>
  53. <aside>右侧</aside>
  54. </main>
  55. <footer>底部</footer>
  56. </body>

7.总结:

  • (1) . order : 定义项目排列顺序,索引越小超靠前,默认为0
  • (2) . flex-grow: 定义项目的放大比例,默认0表示不放大, 即就算存在剩余空间也不放大
  • (3) . flex-shrink: 定义了项目的缩小比例,默认为1,即空间不足时,自动缩小项目来填充
  • (4) . flex-basis:定义了项目占据的主轴空间,默认值为auto, 即项目原始大小
  • (5) . flex:是flex-grow,flex-shrink,flex-basis简写,默认值: 0 1 auto
  • (6) . align-self:个性化定制某单个项目的对齐方式,可覆盖容器 align-items 属性, 默认auto
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议