关于实现flex布局的工字型图标排列

        首先介绍flex:flex是一种弹性盒子模型布局,它使用起来更加的简便。

        想要实现工字型首先需要了解以下内容:

        flex的启动:display:flex。

        容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

        项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

        我们定义七个img,随便插入一个图片,在<head>里面添加<style>,然后定义一个布局flex01,设置宽、高、背景色,启动flex布局。再定义img,设置宽、高、背景色。

        代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flex布局的使用</title>
    <style >
        .flex01{
            width: 800px;
            height: 400px;
            background-color: green;
            display: flex;
        }
        .flex01 img{
            width: 100px;
            height: 80px;
            background-color: yellow;
        }
    </style>
</head>
<body>
<div class="flex01">
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
</div>
</body>
</html>

        结果如下:

        

        flex-direction:用于设置子元素在父元素当中的排列方式。

                其属性有:

属性名作用
row默认值,按从左到右的顺序显示
row-reverse与row相同,但是以相反的顺序显示
column将项目垂直显示,按照从上到下的顺序
column-reverse与column相同,但是以相反的顺序显示

        flex-wrap:默认情况下,项目都排在一条线上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

                tip:值得注意的是,换行操作是子容器的宽度大于父容器的宽度(即内容的宽度大于布局的跨度)时,才会换行,如果不定义换行,则会按比例缩小子容器的宽度来使之始终等于父容器的宽度。

                其属性有:

属性名作用
nowrap默认值,不换行
wrap换行,第一行在上方
wrap-reverse换行,第一行在下方

        

        flex-flow:flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

                使用方法为:flex-flow:flex-direction属性 flex-wrap属性;

        justify-content:属性定义了项目在主轴上的对齐方式。

                其属性有:

属性名作用
flex-start默认值,左对齐
flex-end默认值,右对齐
center居中
space-between两端对齐,项目之间的间隔都相等
space-around每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍

        为了显示的更加美观一些,我们使每个项目两侧的间隔相等。所以需要往flex01中添加代码

                代码如下:

 .flex01{
            width: 800px;
            height: 400px;
            background-color: green;
            display: flex;
            justify-content: space-around;
        }

                整体运行后的结果如图:

        align-items属性:定义项目在交叉轴上如何对齐。

                其属性有:

属性名作用
flex-start与交叉轴的起点对齐
flex-end与交叉轴的终点对齐
center与交叉轴的中点对齐
baseline与 项目的第一行文字的基线对齐
stretch如果项目未设置高度或设为auto,将占满整个容器的高度

        因为我们需要完成工字型图标排列,所以我将工字型分为上中下三部分,两个布局容器(因为上下两部分是完全一样的),所以我们再定义一个布局flex02,并且使之居中对齐。

                代码如下:

.flex02{
            width: 800px;
            height: 400px;
            background-color: green;
            display: flex;
            justify-content: space-around;
            align-items: center;
        }

        定义完flex02后需要对flex02内的子容器进行定义(也就是中间图片)

                代码如下:

.flex02{
             width: 800px;
             height: 400px;
             background-color: green;
             display: flex;
             justify-content: space-around;
             align-items: center;
         }
        .flex02 img{
            width: 100px;
            height: 80px;
            background-color: yellow;
        }

        此时,将布局与定义的七个图标联系到一块,然后再修改布局的容器宽度和高度,不然会太大,修改布局高度为:80px,宽度为100px。得到最终代码

                代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flex布局的使用</title>
    <style >
        .flex01{
            width: 400px;
            height: 100px;
            background-color: green;
            display: flex;
            align-items: center;
            justify-content: space-around;
        }
        .flex01 img{
            width: 100px;
            height: 80px;
            background-color: yellow;
        }
        .flex02{
             width: 400px;
             height: 100px;
             background-color: green;
             display: flex;
             justify-content: space-around;
             align-items: center;
         }
        .flex02 img{
            width: 100px;
            height: 80px;
            background-color: yellow;
        }
    </style>
</head>
<body>
<div class="flex01">
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
</div>
<div class="flex02">
    <img src="/picture/jjc.jpg"></img>
</div>
<div class="flex01">
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
    <img src="/picture/jjc.jpg"></img>
</div>
</body>
</html>

运行结果如图:

        

这就是本次全部内容了,如有问题可以留言评论,看到回会的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值