博客列表 >flex布局

flex布局

CC
CC原创
2020年12月29日 16:40:26439浏览

flex布局

  • flex结构
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>flex布局</title>
  7. <link rel="stylesheet" href="css01.css">
  8. </head>
  9. <body>
  10. <header>页眉</header>
  11. <div class="container">
  12. <aside>左侧</aside>
  13. <main>内容区</main>
  14. <aside>右侧</aside>
  15. </div>
  16. <footer>页脚</footer>
  17. </body>
  18. </html>
  1. /* 从body的所有后代匹配的元素中,去掉某些元素 */
  2. body *:not(.container) {
  3. background-color: lightgreen;
  4. }
  5. header,
  6. footer {
  7. height: 8vh;
  8. }
  9. /* 100vh - 8vh - 8vh = 84vh */
  10. .container {
  11. height: 84vh;
  12. /* 中间主体用felx弹性盒布局实现 */
  13. display: flex;
  14. }
  15. .container aside {
  16. min-width: 15em;
  17. }
  18. .container main {
  19. min-width: calc(100% - 30em);
  20. margin: 0 0.5em;
  21. }
  22. .container {
  23. margin: 0.5em 0;
  24. height: calc(84vh - 1em);
  25. }
  26. .container main {
  27. min-width: calc(100% - 30em - 1em);
  28. }
  • grid结构
  1. body {
  2. height: 100vh;
  3. display: grid;
  4. grid-template-columns: 15em 1fr 15em;
  5. grid-template-rows: 8vh 1fr 8vh;
  6. gap: 0.5em;
  7. }
  8. header,
  9. footer {
  10. grid-column: span 3;
  11. }
  12. body>* {
  13. background-color: lightgreen;
  14. }
  1. 任何元素都可以通过添加display: flex属性,转为弹性盒元素
  2. 转为flex元素后,它的内部的”子元素”就支持flex布局了
  3. 使用了display: flex属性的元素称为: flex容器
  4. flex容器中的”子元素”称之为: flex项目
  5. 容器中的项目自动转为”行内块元素”(不管之前是什么类型)
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>弹性容器与弹性项目</title>
  7. <style>
  8. * {
  9. box-sizing: border-box;
  10. }
  11. .container {
  12. /* 转为flex弹性布局元素 */
  13. display: flex;
  14. height: 15em;
  15. border: 1px solid #000;
  16. padding: 1em;
  17. margin: 1em;
  18. }
  19. .container>.item {
  20. height: 2em;
  21. width: 5em;
  22. background-color: lightcyan;
  23. border: 1px solid #000;
  24. }
  25. /*
  26. 1. 任何元素都可以通过添加display: flex属性,转为弹性盒元素
  27. 2. 转为flex元素后,它的内部的"子元素"就支持flex布局了
  28. 3. 使用了display: flex属性的元素称为: flex容器
  29. 4. flex容器中的"子元素"称之为: flex项目
  30. 5. 容器中的项目自动转为"行内块元素"(不管之前是什么类型) */
  31. .container>.item:nth-child(4) {
  32. display: flex;
  33. }
  34. .container>.item:nth-child(4)>div {
  35. background-color: yellow;
  36. border: 1px solid #000;
  37. }
  38. /* 工作中会存在大量的flex容器的嵌套布局 */
  39. </style>
  40. </head>
  41. <body>
  42. <div class="container">
  43. <div class="item">item1</div>
  44. <div class="item">item2</div>
  45. <div class="item">item3</div>
  46. <div class="item">item4
  47. <div>1</div>
  48. <div>2</div>
  49. <div>3</div>
  50. </div>
  51. </div>
  52. </body>
  53. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议