博主信息
博文 70
粉丝 4
评论 5
访问量 123949
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
grid实现12列栅格布局的组件并且实例圣杯布局
JiaJieChen
原创
1205人浏览过

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>
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学