博客列表 >flex模拟移动商城首页页面布局/grid布局的相关属性

flex模拟移动商城首页页面布局/grid布局的相关属性

JiaJieChen
JiaJieChen原创
2021年03月28日 20:13:15781浏览

flex模拟移动商城首页页面布局

1.布局页面导航

大家可以看到图片上的红色边框,用了flex布局,布局了一个多行容器,采用的是无序列表ul。

css代码块

  1. /* 设置导航样式,定义flex容器 */
  2. .main {
  3. background: rgba(223, 223, 223, 0.524);
  4. }
  5. .main .dh {
  6. display: flex;
  7. flex-flow: row wrap;
  8. padding: 1rem;
  9. text-align: center;
  10. background: rgb(255, 255, 255);
  11. border-radius: 3rem;
  12. }
  13. .main .dh img {
  14. height: 4rem;
  15. width: 4rem;
  16. }
  17. .main .dh li {
  18. flex: 1 1 20%;
  19. flex-flow: column nowrap;
  20. /* 设置项目再交叉轴上的对齐方式 */
  21. align-items: center;
  22. }
  23. .main .dh .dhtu span {
  24. display: flex;
  25. /* 定义文字再主轴上的对齐方式,居中 */
  26. justify-content: center;
  27. color: #666;
  28. font-size: 1.2rem;
  29. }

2.布局秒杀商品

大家可以看到图片上的红色边框,框起来的就是每个项目,下面的特价商品使用ul无序列表做的,用了flex布局。

css代码块
  1. /* 定义秒杀区域样式 */
  2. .main .ms {
  3. background: rgb(250, 250, 250);
  4. border-radius: 1rem;
  5. height: auto;
  6. }
  7. /* 设置ms头部样式 */
  8. .main .ms-top {
  9. background: rgb(250, 250, 250);
  10. /* 定义为flex容器 */
  11. display: flex;
  12. /* 把项目两端对齐 */
  13. justify-content: space-between;
  14. /* 把项目垂直居中 */
  15. align-items: center;
  16. /* 设置内边距 */
  17. padding: 1rem;
  18. border-radius: 4rem;
  19. }
  20. /* 定义左边的项目为flex容器 */
  21. .main .ms-top .ms-lefy {
  22. display: flex;
  23. }
  24. /* 定义秒杀时间样式*/
  25. .main .ms .ms-top .ms-lefy .time {
  26. display: flex;
  27. flex-flow: row nowrap;
  28. font-size: 1.1rem;
  29. justify-content: center;
  30. align-items: center;
  31. padding-left: 1rem;
  32. }
  33. .main .ms .ms-top .ms-lefy .time :nth-of-type(1) {
  34. background: red;
  35. color: rgb(250, 250, 250);
  36. border-radius: 2rem;
  37. width: 5rem;
  38. height: auto;
  39. text-align: center;
  40. font-weight: bolder;
  41. }
  42. .main .ms .ms-top .ms-lefy .time :nth-of-type(2) {
  43. background: rgba(208, 206, 206, 0.5);
  44. color: red;
  45. font-weight: bolder;
  46. border-radius: 2rem;
  47. width: 6rem;
  48. height: auto;
  49. text-align: center;
  50. }
  51. /* 定义更多秒杀字体样式 */
  52. .main .ms .ms-top .ms-right .gdms a {
  53. color: red;
  54. }
  55. /* 定义秒杀主体内容区 */
  56. .main .ms .ms-body ul {
  57. display: flex;
  58. flex-flow: row nowrap;
  59. justify-content: space-around;
  60. flex: auto;
  61. }
  62. .main .ms .ms-body img {
  63. display: flex;
  64. flex-flow: row nowrap;
  65. width: 10rem;
  66. height: 10rem;
  67. }
  68. .main .ms .ms-body .jdmstu .money1 {
  69. text-align: center;
  70. font-size: 1.2rem;
  71. color: red;
  72. }
  73. .main .ms .ms-body .jdmstu .money2 {
  74. text-align: center;
  75. font-size: 1.2rem;
  76. color: #666;
  77. text-decoration: line-through;
  78. }

3.布局首页商品

这个也是一个flex布局,也是用的ul无序列表做的,但是每行项目要设置两个,才能这样排列。

css代码块

  1. /* 定义显示主体 */
  2. .main .xs {
  3. background: rgb(250, 250, 250);
  4. border-radius: 3rem;
  5. margin: 0.2rem;
  6. }
  7. /* 定义显示主体无序列表 */
  8. .main .xs .xstu {
  9. display: flex;
  10. flex-flow: row wrap;
  11. margin-bottom: 4.4rem;
  12. }
  13. /* 定义显示主体无序子列表 */
  14. .main .xs .xstu li {
  15. display: flex;
  16. flex-flow: column wrap;
  17. flex: 1 1 50%;
  18. align-items: center;
  19. }
  20. /* 定义显示主体图片大小 */
  21. .main .xs .xstu img {
  22. width: 16rem;
  23. height: 10rem;
  24. padding: 0.5rem;
  25. background: rgb(250, 250, 250);
  26. border-radius: 1rem;
  27. }
  28. /* 定义显示图片内容简介*/
  29. .main .xs .xstu .neirong {
  30. display: flex;
  31. font-size: 1rem;
  32. flex-flow: row wrap;
  33. padding: 0.5rem;
  34. }
  35. /* 定义显示主体图片金额 */
  36. .prompt :nth-of-type(1) {
  37. color: red;
  38. font-size: 1.2rem;
  39. font-weight: 600;
  40. }
  41. .prompt a:nth-of-type(1) {
  42. background: #ccc;
  43. font-size: 1rem;
  44. border-radius: 3rem;
  45. padding: 0.2rem;
  46. color: rgb(250, 250, 250);
  47. }
  48. .prompt {
  49. width: 15rem;
  50. display: flex;
  51. justify-content: space-between;
  52. }

最后布局完是呈现的是这样

采用flex布局,模块化开发。

grid布局的相关属性

1.基本属性

元素 含义
grid-template-columns 定义网络轨道中的列宽,可以定义为px绝对值,但是不能自适应宽度,定义auto 和 fr都可以自适应宽度
grid-remplate-rows 定义网格轨道中的行高,第一个值定义第一行,第二个值定义第二行,如果只有一个值是定义全部网格项目的行高
gap 网格轨道间距,第一个值上下间距 第二个值左右间距,如果只有一个值,是上下左右间距
grid-auto-flow 项目在容器中的排列方向,column垂直方向,dense水平方向

2.代码块

  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. .grid {
  10. border: 1px solid;
  11. padding: 0.5em;
  12. /* 定义一个grid网格容器 */
  13. display: grid;
  14. /* 定义网格轨道中的列宽 */
  15. /* 可以定义为px绝对值,但是不能自适应宽度,定义auto 和 fr都可以自适应宽度 */
  16. grid-template-columns: 1fr 1fr 1fr;
  17. /* 定义网格轨道中的行高 */
  18. /* 5em 第一行,2em第二行 */
  19. grid-template-rows: 5em 2em;
  20. /* 网格轨道间距 */
  21. /* 10px上下间距 20px 左右间距,如果是一个值,是上下左右间距 */
  22. gap: 10px 20px;
  23. /* 项目在容器中的排列方向 */
  24. /* column垂直排列 */
  25. /* grid-auto-flow: column; */
  26. /* dense水平排列 */
  27. grid-auto-flow: dense;
  28. }
  29. .grid .itme {
  30. background: lightgreen;
  31. border: 1px solid;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="grid">
  37. <div class="itme">itme1</div>
  38. <div class="itme">itme2</div>
  39. <div class="itme">itme3</div>
  40. <div class="itme">itme4</div>
  41. <div class="itme">itme5</div>
  42. <div class="itme">itme6</div>
  43. </div>
  44. </body>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议