十六、flex应用练习做淘宝按钮界面

目录:

  1. 目标
  2. 小技巧
  3. 实现
  4. 最终代码

一、目标:我们要做一个手机版本的淘宝网,蓝色框住的按钮这部分。

十六、flex应用练习做淘宝按钮界面_第1张图片

二、 小技巧:如何在网页上看手机版本的页面

  • 首先在网页上打开淘宝网,然后按F12,进入调试状态;(mac电脑要按出F12 - 长按fn - bar条上就自动显示F1 - F12 - 然后在点击)
  • 点击这个类似pad按钮,就可以切换成手机版本 -》 然后切换下成手机如iphone12 pro或者其他 -》 然后再点击顶部的刷新按钮 -》 接下来页面就会变成手机版的页面。 -》 观察你要做的页面;
十六、flex应用练习做淘宝按钮界面_第2张图片

三、实现

1.准备工作 - 搭骨架

先后顺序分别是:

  • 最外层容器nav;
  • 两行nav-inner;
  • 每行里面的按钮item;



    
    
    
    Document
    


    
    
    


十六、flex应用练习做淘宝按钮界面_第3张图片

2.优化

缺陷:我们发现即使在外层容器nav,设置了width:100%,右侧依然也有空白。
-这是因为我们设置了nav-inner 为弹性容器后,默认是没有弹性增长系数。 flex-grow 和flex可以去设置。

解决代码:

 /* 设置弹性元素 - 按钮 */
        .item{
            background-color: #bfa;
            /* 设置了这个后,里面元素会随着视口的宽度改变而自动改变,撑满 */
            flex:auto;
        }
十六、flex应用练习做淘宝按钮界面_第4张图片

3.优化item图片样式

缺陷:目前我们的item图片图标,过大,而且随视口大小的变化,也很大。item与item之间没有间隙。
- 这是因为我们设置了flex:auto; 会弹性增长来占空白区域,item对应被拉大。

解决代码:(步骤是按照1,2,3,4来操作的)

  /* 设置每一行的容器 */
        .nav-inner{
            /* 设置为弹性容器 */
            display: flex;
            /* 4. 设置主轴上的空白分布 */
            justify-content: space-around;
  
        }
        /* 设置弹性元素 - 按钮 */
        .item{
            background-color: #bfa;
            /*3. 一定要注释这句 */
            /* flex:auto; */

            /*2. 固定下item的宽度比例,让用户拖动改变视口时,图标大小都差不多符合视觉
            */
             /*这个值越小,item与item之间间隙空间越大
            */
            width:18%;
        }

        /* 防止图片撑大 */
        .item img{
            /* 1. 设置图片的宽度和父元素的宽度一样,所以设置width:100%  */
            width:100%;
        }
十六、flex应用练习做淘宝按钮界面_第5张图片

- item把背景颜色也去掉,最终的代码效果:

	  .nav-inner{
            display: flex;
            justify-content: space-around;
        }
        .item{
            width:18%;
        }
        .item img{
            width:100%;
        }
十六、flex应用练习做淘宝按钮界面_第6张图片

4. 图标下的添加文字span


    
    
    

十六、flex应用练习做淘宝按钮界面_第7张图片

5.调整字的样式 - 至此结束

  • 文字样式
  /* 设置a里面span文字的样式 */
        .item a{
            color:#333;
            font-size: 16px;
            text-decoration: none;
        }

  • 设置span文字的居中效果。
        .item{
            width:18%;
            /* span文字的居中要在item这个父类设置,否则无效 */
            text-align: center;
        }
十六、flex应用练习做淘宝按钮界面_第8张图片

四、最终代码

总结:

  • 通过设置弹性容器display:flex ,可以做到用户拖动改变视口,里面的图标大小自适应。
  • 对于弹性容器出现的空白,我们通过设置item宽度width:18%; 和 分配nav-inner 里面的空白主轴左右环绕 justify-content: space-around; 将多的空白,作为我们item与item之间的间隙。
  • 这样做的好处,可以控制item的大小不过于大,同时自适应。


    
    
    

你可能感兴趣的:(flex,练习)