博客列表 >12月30日作业:grid布局手写和grid属性实战演示

12月30日作业:grid布局手写和grid属性实战演示

李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰原创
2019年12月31日 15:50:35753浏览

作业一:grid代码手写

作业二:通过一个demo.html中两个grid布局,把所学的grid的属性全部演示一遍,同个属性只展示一种效果。
1、demo.html中第一个grid布局
主要展示
(1)grid容器属性:划网格线、网格项目命名、间隙设置、以及项目对其方式和内容对其方式
(2)grid项目属性:项目中某个特定的item的对其方式
2、demo.html中第二个grid布局
主要展示:
(1)grid容器属性:划网格线、网格项目命名、以及项目和内容(item)对其方式、隐式网格的宽高、网格项目流动方向
(2)grid项目属性:网格命名定位、网格线定位
3、实战演示代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>12月30日作业</title>
  6. <style>
  7. * :not(body){
  8. outline: 1px dashed blue;
  9. }
  10. body {
  11. width: 1200px;
  12. min-height: 1000px;
  13. margin: 0 auto;
  14. }
  15. /*grid容器属性:*/
  16. .contraption1 {
  17. /*网格基本布局:划网格线,网格项目命名,设置网格间隙*/
  18. width: 1000px;
  19. height: 1000px;
  20. display: grid;
  21. grid-template-columns: repeat(3,200px);
  22. grid-template-rows:repeat(3,200px);
  23. /*grid-column-gap:10px;*/
  24. /*grid-row-gap:15px;*/
  25. grid-gap:15px 10px;
  26. /*grid-gap:row column; */
  27. grid-template-areas:'one two three' 'four five six' 'seven eight nine';
  28. /*网格布局项目对其方式*/
  29. /*justify-content: end;*/
  30. /*align-content:center;*/
  31. place-content: end end ;
  32. /*place-content: align justify ;*/
  33. /*项目内容对其方式*/
  34. /*justify-items:end;*/
  35. /*align-items:center;*/
  36. place-items:center end ;
  37. /*place-items:align justify;*/
  38. }
  39. .item {
  40. width: 150px;
  41. height: 150px;
  42. text-align: center;
  43. line-height: 150px;
  44. background-color: #ff0000;
  45. }
  46. /*设置网格容器中某个特定项目的对其方式*/
  47. .contraption1 > :nth-child(3) {
  48. /*justify-self: center;*/
  49. /*align-self: end ;*/
  50. place-self:start start;
  51. background-color: #55a532;
  52. }
  53. .contraption2 {
  54. width: 1000px;
  55. height: 1000px;
  56. display: grid;
  57. grid-template-columns: repeat(3,200px);
  58. grid-template-rows:repeat(3,200px);
  59. grid-template-areas:'one one three' 'four five six' 'seven eight nine';
  60. /*隐式网格李宽和高*/
  61. grid-auto-columns:150px;
  62. grid-auto-rows:150px;
  63. /*网格容器和内容对其方式:*/
  64. justify-content: center;
  65. align-content: center;
  66. place-items:center center;
  67. /*网格中项目流动方向:默认值:row*/
  68. grid-auto-flow:column;
  69. }
  70. .contraption2 > :first-child {
  71. /*通过网格命名定位网格区域*/
  72. grid-area:one;
  73. }
  74. .contraption2 > :nth-child(3) {
  75. /*通过网格线定位网格区域*/
  76. /*grid-row-start:2;*/
  77. /*grid-row-end:4;*/
  78. /*grid-column-start:1;*/
  79. /*grid-column-end:2;*/
  80. grid-area: 2/1/4/2;
  81. }
  82. </style>
  83. </head>
  84. <body>
  85. <div class="contraption1">
  86. <div class="item"><span>第1个项目</span></div>
  87. <div class="item"><span>第2个项目</span></div>
  88. <div class="item"><span>第3个项目</span></div>
  89. <div class="item"><span>第4个项目</span></div>
  90. <div class="item"><span>第5个项目</span></div>
  91. <div class="item"><span>第6个项目</span></div>
  92. <div class="item"><span>第7个项目</span></div>
  93. <div class="item"><span>第8个项目</span></div>
  94. <div class="item"><span>第9个项目</span></div>
  95. </div>
  96. <hr>
  97. <h1>两个案例,不同属性值展示</h1>
  98. <hr>
  99. <div class="contraption2">
  100. <div class="item"><span>第1个项目</span></div>
  101. <div class="item"><span>第2个项目</span></div>
  102. <div class="item"><span>第3个项目</span></div>
  103. <div class="item"><span>第4个项目</span></div>
  104. <div class="item"><span>第5个项目</span></div>
  105. <div class="item"><span>第6个项目</span></div>
  106. <div class="item"><span>第7个项目</span></div>
  107. <div class="item"><span>第8个项目</span></div>
  108. <div class="item"><span>第9个项目</span></div>
  109. </div>
  110. </body>
  111. </html>

4、实战演示效果展示:(在火狐浏览器下展示,并标注网格线)

总结:
1、grid网格布局适合大布局和整体布局
2、grid整体思路,划网格线——项目定位(网格线和网格域)——项目对其方式——内容在项目中对其方式——单个项目内容对齐调整
3、项目流动方向对隐式项目宽高的影响:
(1)自然方向流动(row)-宽度随网格布局大小,高度可自行设置
(2)column流动方向-高度随网格布局大小,宽度可自行设置
4、place-self优先place-items属性显示

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议