flex弹性布局练习

6 篇文章 0 订阅

01.骰子的点数

  • flex弹性布局适合在一维布局运用,多维适合用网格布局
  • 示例:
    在这里插入图片描述
  • 代码
  • css
#box1,#box2,#box3,#box4,#box5,#box6{float: left;}
#box1{width: 100px; height: 100px; border: 1px solid black; border-radius: 5px; display: flex; justify-content: center; align-items: center;}
#box1 div{width: 40%; height: 40%; border-radius: 50%; background: red;}

#box2{width: 100px; height: 100px; border: 1px solid black; border-radius: 5px; display: flex;justify-content: space-between;}
#box2 div:nth-child(2){align-self: flex-end;}
#box2 div{width: 40%; height: 40%; border-radius: 50%; background: blue;}

#box3{width: 100px; height: 100px; border: 1px solid black; border-radius: 5px; display: flex;justify-content: space-between;}
#box3 div{width: 35%; height: 35%; border-radius: 50%; background: blue;}
#box3 div:nth-child(2){align-self: center;}
#box3 div:last-child{align-self: flex-end;}

#box4{width: 100px; height: 100px; border: 1px solid black; border-radius: 5px; display: flex;flex-wrap: wrap;}
#box4 div{width: 100%;height: 50%; display: flex;justify-content: center; justify-content: space-between;}
#box4 div:last-child{display: flex; align-items: flex-end;}
#box4 i{display: block; width: 35%; height: 70%; border-radius: 50%; background: blue;}

#box5{width: 100px; height: 100px; border: 1px solid black; border-radius: 5px; display: flex;flex-wrap: wrap; justify-content: center;}
#box5 div{width: 100%; display: flex;justify-content: center; justify-content: space-between;}
#box5 div:last-child{display: flex; align-items: flex-end;}
#box5 div:nth-child(2){width: 30%; height: 30%; border-radius: 50%; background: blue;align-self: center;}
#box5 i{display: block; width: 30%; height: 120%; border-radius: 50%; background: blue;}

#box6{width: 100px; height: 100px; border: 1px solid black; border-radius: 5px; display: flex;flex-wrap: wrap;}
#box6 div{width: 100%; display: flex;justify-content: center; justify-content: space-between;}
#box6 div:last-child{display: flex; align-items: flex-end;}
#box6 i{display: block; width: 30%; height: 90%; border-radius: 50%; background: blue;}
  • html
<div id="box1">
<div></div>
</div>
<div id="box2">
    <div></div>
    <div></div>
</div>
<div id="box3">
    <div></div>
    <div></div>
    <div></div>
</div>
<div id="box4">
    <div>
        <i></i>
        <i></i>
    </div>
    <div>
        <i></i>
        <i></i>
    </div>
</div>
<div id="box5">
    <div>
        <i></i>
        <i></i>
    </div>
    <div></div>
    <div>
        <i></i>
        <i></i>
    </div>
</div>
<div id="box6">
    <div>
        <i></i>
        <i></i>
    </div>
    <div>
        <i></i>
        <i></i>
    </div>
    <div>
        <i></i>
        <i></i>
    </div>
</div>

02.实现两列固定宽度,一列自适应

  • 效果:
    在这里插入图片描述
  • 代码
  • css
*{margin: 0; padding: 0;}	/*取消浏览器默认的margin、padding*/
#main{width: 100%; height: 150px; display: flex;}
.left{width: 200px; background: yellowgreen;}
.center{flex: 1; background: purple;}	/*让中间部分自动填充区域剩余空间*/
.right{width:200px; background: pink;}
  • html
<div id="main">
   <div class="left"></div>
   <div class="center"></div>
   <div class="right"></div>
</div>

03.百度弹性导航

  • 示例
    在这里插入图片描述
  • 实现效果(第一个图片右侧距离是左边的两倍,中间图片两侧距离相同)
    在这里插入图片描述
  • 使用flex弹性布局不论图片个数是多少都能实现这个效果,如果使用浮动、设置左右间隔距离的话,图片个数变化后还要调整左右间隔
  • 代码
<style>
        *{margin: 0px; padding:0;}
        ul,li{margin: 0px; padding: 0px;}
        li{list-style: none;}   /*list-style: none -> 去掉ul标签前的小圆点*/
        a{text-decoration: none; color: #000;}      /*text-decoration: none -> 去掉a标签的下划线*/
        img{display: block;}

        div{width: 800px; height: 130px; border: 1px solid black;}
        div ul:last-child{margin-top: 30px;}	/*使上下两行分隔*/
        ul{display: flex; flex-direction: row;justify-content: space-around;}	/*主要使用了justify-content: space-around;*/
    </style>
</head>
<body>
    <div id="box1">
        <ul>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
        </ul>
        <ul>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
            <li><a href="#"><img src="baidu.png" alt="#"></a></li>
        </ul>
    </div>
</body>
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值