css-11. 浮动

浮动规则

  • 块级元素的盒子会发生遮盖现象
  • 元素的内容不会发生遮盖(可以用以实现文字环绕)

浮动特征

  • 浮动的元素从左到右(从右到左)紧密排列
  • 浮动的元素具有块级元素的特征(可以设置宽高、margin、padding),但没有换行符
  • 浮动的元素不存在margin塌陷问题
  • 浮动的元素脱离了标准流,不再占有原来的位置–>子元素设置浮动之后,父元素如果没有设置高度,会呈现塌陷的效果
  • 浮动的元素自适应宽度为包裹内容的宽度

以上特性不止针对块级元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 550px;
            height: 400px;
            background: pink;
        }
        h1 {
            float: left;
            background: teal;
        }
        <!--浮动后的行内元素span可以设置margin-top、width等-->
        span {
            float: left;
            width: 150px;
            margin-top: 100px;
            background: snow;
        }
    </style>
</head>
<body>
    <div class="box">
        <h1>Hello World</h1>
        <h1>Hello World</h1>
        <h1>Hello World</h1>
        <span>Hello World</span>
        <span>Hello World</span>
        <span>Hello World</span>
    </div>
</body>
</html>

清除浮动

  • 给父元素设置高度

    缺点:无法根据内容的多少控制容器的大小

  • 外墙法:在父元素后面,添加父元素的一个同级空元素并设置为清除浮动(clear:both)

    缺点:无法显示背景颜色

    经测试:设置空span无效

  • 内墙法:
    在父元素内部后,添加一个空元素并设置为清除浮动

    注意:空元素的宽度要足够

  • 将父元素设置为浮动

  • 设置父元素为行内块元素
    display:inline-block

    缺点:如果父级元素为div,将不会独占一行

  • 设置overflow

    设置为scroll:不管溢出不溢出,显示滚动条

    设置为auto:溢出时显示滚动条

    设置为hidden:隐藏溢出

    设置为visible,不能清除浮动

  • 使用伪元素:将伪元素添加到父级容器的后面,代替内墙法插入的元素,并设置伪元素为块级元素和清除浮动

    .box:after{
        content:"";
        display:block;
        clear:both;
    }
    

margin对浮动元素的影响

  • 首先分析所贴的元素
  • 在分析相对所贴的元素的移动距离
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值