CSS的浮动(float)布局效果

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8" />

    <title>浮动(float)布局效果</title>

    <style>

         *{

            margin: 0;

            padding: 0;

            box-sizing: border-box;

        }

        /*.box1{

            width: 300px;

            height: 300px;

            background-color: red;

            float: left;

        }

        .box2{

            width: 100px;

            height: 100px;

            background-color: aqua;

            float: left;

            float:right;

        } */

        .product{

            margin: 0 auto;

            width: 1226px;

            height: 628px;

            background-color: pink;

        }

        li{

            list-style: none;  

        }

        /* 两个盒子一左一右 */

        .left{

            width:234px;

            height: 628px;

            background-color: skyblue;

            float: left;

        }

        .right{

            width: 978px;

            height: 628px;

            background-color: brown;

            float: right;

        }

        .right li {

            width: 234px;

            height: 300px;

            background-color: orange;

            float: left;

            margin-bottom: 14px;

            margin-right: 14px;

        }

        /* 找到第四个li和第八个li去掉右侧的margin */

        .right li:nth-child(4n){

            margin-right:0px;

        }

    </style>

</head>

<body>

    <!-- 浮动本质的作用是实习图文混排的效果 -->

   

    <!-- 标准流

    标准流也叫文档流,指的是标签在页面默认的排布规则,例如:块级元素独占一行,行内元素可以一行显示多个

    -->

    <!-- 浮动

    作用:让块级元素水平排列

    特点:顶对齐,具备行内块显示模式特点

    属性名:float

    属性值:

    left:左对齐

    right:右对齐

    注意:加了浮动属性的盒子,会脱标(不会占有标准流的位置)

    -->

    <!-- <div class="box1">box1</div>

    <div class="box2">box2</div> -->

    <!-- 产品布局

    版心:左右,右面:8个产品相当于 8个li标签

    细节:如果父级宽度不够,浮动的盒子会掉出父级区域

    -->

    <!-- 清除浮动

    场景:浮动元素会脱标,如果父级没有高度,子级无法撑开父级高度(可能会导致页面布局混乱)

    解决方法:清除浮动(清除浮动带来的影响)

    1.额外标签法:在父级元素内容的最后添加一个块级元素,设置css属性clear:both(清除两侧浮动的影响)

    注意:得加一个空标签并设置css属性

    2.单伪元素法:直接在div加clearfix类

    .clearfix::after{

        content:'';

        display:block;

        clear:both;

    }

    注意:同一个div用两个类,只需用空格隔开

    如<div class='box1 box2'></div>

    3.双伪元素(推荐):直接在div加clearfix类

    .clearfix::before,

    .clearfix:after{

        content:'';

        display:table;(一个大格子,里面有行,行里面是一个一个的单元格)

    }

    .clearfix::after{

        clear:both;

    }

    before是用来解决外边距塌陷问题的,after是解决浮动问题

    4.overflow:父元素添加css属性overflow:hidden

    原理:有问题的原因是父级无法被子级撑开高度范围,overflow:hidden会检查父级的范围,这样高度就检查到了

    -->

    <div class="product">

        <div class="left"></div>

        <div class="right">

            <ul>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

            <li></li>

        </ul>

        </div>

    </div>

</body>

</html>

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小程序员.¥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值