grid实现12列栅格布局的组件并且实例圣杯布局

1.建立12列栅格布局组件

  1. * {
  2. margin: 0;
  3. padding: 0;
  4. box-sizing: border-box;
  5. }
  6. /* 建立body是 grid主体 并且定义让多行容器居中 */
  7. body {
  8. /* border: 1px solid; */
  9. width: 100vw;
  10. height: 100vh;
  11. display: grid;
  12. place-content: center;
  13. }
  14. .container {
  15. width: 80vw;
  16. display: grid;
  17. gap: 0.5em;
  18. }
  19. .container > .row {
  20. /* 定义这行是gird容器,并且分成12列 */
  21. display: grid;
  22. /* 用repeat函数块数分列 */
  23. grid-template-columns: repeat(12, 1fr);
  24. min-height: 3em;
  25. gap: 0.5em;
  26. }
  27. .container .row .item {
  28. border: 1px solid;
  29. padding: 1em;
  30. background: lime;
  31. }
  32. /* 设置项目 列数合并从1到12列 */
  33. .columns-12 {
  34. grid-area: auto / span 12;
  35. }
  36. .columns-11 {
  37. grid-area: auto / span 11;
  38. }
  39. .columns-10 {
  40. grid-area: auto / span 10;
  41. }
  42. .columns-9 {
  43. grid-area: auto / span 9;
  44. }
  45. .columns-8 {
  46. grid-area: auto / span 8;
  47. }
  48. .columns-7 {
  49. grid-area: auto / span 7;
  50. }
  51. .columns-6 {
  52. grid-area: auto / span 6;
  53. }
  54. .columns-5 {
  55. grid-area: auto / span 5;
  56. }
  57. .columns-4 {
  58. grid-area: auto / span 4;
  59. }
  60. .columns-3 {
  61. grid-area: auto / span 3;
  62. }
  63. .columns-2 {
  64. grid-area: auto / span 2;
  65. }
  66. .columns-1 {
  67. grid-area: auto / span 1;
  68. }

建立的好处就是,只要你想布局,可以随时利用里面的小组件,按照你自己的想法来实现布局,下面来实现一个经典的圣杯布局。

2.圣杯布局

如果传统方式用flex或者定位来做这个布局的话,非常的麻烦,而grid不到10行代码就可以把这个布局给写出来,当然,要用到我们上面写好的小组件才行,现在我们来看看是怎么样写的。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>grid圣杯布局</title>
  8. <style type="text/css">
  9. @import url(grid.css);
  10. .row:nth-of-type(2){
  11. height: 80vh;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <!-- 页眉 -->
  17. <div class="container">
  18. <div class="row">
  19. <div class="item columns-12">header</div>
  20. </div>
  21. <!-- 主体 -->
  22. <!-- 分成2列 8列 2列的形式 -->
  23. <div class="row">
  24. <div class="item columns-2" style="background: violet;">left</div>
  25. <div class="item columns-8" style="background:lawngreen;"> main</div>
  26. <div class="item columns-2" style="background: violet;">right</div>
  27. </div>
  28. <!-- 页脚 -->
  29. <div class="row">
  30. <div class="item columns-12">footer</div>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </body>
  36. </html>

更多相关文章

  1. CSS中flex布局的属性及应用
  2. 0322作业-CSS基础1
  3. 0322作业(选择器的优先级,id,class,tag); (前端组件样式模块化的
  4. 进程终止,环境表以及在内存中布局和非局部跳转
  5. 使用grid实现layui/bootstrap中的12列栅格布局组件
  6. Grid布局中的栅格布局
  7. 【布局】教你用Grid网格布局详细教程入门笔记+实战案例
  8. 0329作业
  9. 数据调度组件:基于Azkaban协调时序任务执行

随机推荐

  1. 2011.08.12(3)——— android AudioTrack
  2. android 设置textview边框以及点击效果
  3. [Android] 环境配置之正式版Android Stud
  4. 从android 里面读取配置文件
  5. android软键盘隐藏总结
  6. Android resources
  7. TextView中style的应用
  8. Android 解决Handler在运行时加载报空指
  9. Android各版本的SDK Platforms和API Leve
  10. Android旋转屏幕不销毁数据的方法