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>

更多相关文章

  1. 利用flex布局模仿某商城首页
  2. 2021-03-28:定义一种数:可以表示成若干(数量>1)连续正数和的数 。比
  3. 是德科技:高速数字化仪上自定义信号实时处理应用
  4. flex项目上的三个属性及移动商城首页的页眉和页脚的布局
  5. 函数的声明和定义
  6. 210325 CSS flex布局 项目属性
  7. 【案例】使用flex弹性布局仿写移动端苏宁首页并了解grid布局的相
  8. 210324 CSS flex 布局
  9. css之flex项目属性与商城首页布局实战

随机推荐

  1. Android中的xml解析
  2. 五个XML技巧
  3. 怎样让Asp与XML交互
  4. XML的快速入门教程
  5. 利用xml实现rss订阅
  6. XML解析基础
  7. 四种获取RSS源xml文件的方法
  8. XML文档类型声明
  9. 解说xml中的空格
  10. XML基本语法介绍