css浮动

15 篇文章 0 订阅
本文详细介绍了网页布局中的浮动布局原理和应用,包括浮动元素的特性、常见布局示例以及浮动带来的问题——父级高度塌陷。为解决这一问题,文章讨论了清除浮动的必要性及本质,并提供了多种清除浮动的方法,如额外标签法、overflow属性法以及伪元素法。此外,还强调了在实际布局中,浮动与标准流的父级元素如何配合使用以实现理想布局。
摘要由CSDN通过智能技术生成

浮动

传统网页布局的三种方式

网页布局的本质—用css来摆放盒子。

css提供了三种传统布局方式(盒子的排列顺序):

标准流、浮动、定位

实际开发中一个页面都包含了这三种布局方式。

标准流:标签按照规定好默认方式排列
  1. 块级元素独占一行,从上向下排列
  • 常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table
  1. 行内元素按照顺序从左到右排列,碰到父元素边缘自动换行
  • 常用元素:spam、a、i、em等
浮动

选择器{float:none | left | right;}

默认不浮动 | 向左浮动 |向右浮动

什么是浮动

创建浮动后会将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

为什么需要浮动

浮动最典型的应用:多个块级元素一行内排列显示

网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动

网页布局第二准则:先设置盒子大小,之后设置盒子的位置

浮动的特性
  1. 脱离标准普通流的控制(浮)移动到指定位置(动),即脱标;

  2. 浮动的盒子不再保留原先的位置;

  3. 多个盒子都设置浮动,它们会按照属性值一行内显示并且顶端对齐排列;

  4. 浮动元素具有行内块元素的特性。

    • 如果块级盒子没有设置宽度,默认宽度和父级一样,但是添加浮动后,它的大小根据内容来决定;
    • 浮动盒子中间没有空隙
    • 行内元素同理
浮动元素经常和标准流父级搭配使用

为了约束浮动元素的位置,网页布局一般采用:

先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置,符合网页布局第一准则。

demo

常见网页布局
        * {
            margin: 0;
            padding: 0;
        }

        li {
            list-style: none;
        }

        .top {
            height: 50px;
            background-color: gray;
        }

        .banner {
            width: 980px;
            height: 150px;
            background-color: gray;
            margin: 10px auto;
        }

        .box {
            width: 980px;
            height: 300px;
            margin: 10px auto;
            background-color: pink;
        }

        .box li {
            width: 237px;
            height: 300px;
            background-color: gray;
            float: left;
            margin-right: 10px;
        }

        .box .last {
            margin-right: 0px;
        }

        .footer {
            height: 200px;
            background-color: gray;
            margin-top: 10px;
        }
    <div class="top">top</div>
    <div class="banner">banner</div>
    <div class="box">
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li class="last">4</li>
        </ul>
    </div>
    <div class="footer">footer</div>

在这里插入图片描述

浮动布局注意点
  1. 浮动和标准流的父盒子搭配
  2. 一个元素浮动了,理论上其余的兄弟也要浮动,以防出现问题
  3. 浮动的盒子不会有外边距合并问题
  4. 浮动的盒子不会压住下面标准流的文字与图片

浮动的盒子只会影响盒子后面的标准流,不会影响前面的标准流

清除浮动

为什么清除浮动

理想中的状态,让子盒子撑开父盒子,有多少孩子,父盒子就有多高。但是浮动撑不开盒子。

  • 父级没高度
  • 子盒子浮动
  • 影响下面的布局
清除浮动的本质

选择器{clear:left | right | both};

  • 清除浮动的本质就是清除浮动元素造成的影响
  • 如果父盒子本身有高度,则不需要清除浮动
  • 清除浮动之后,父级就会根据浮动的子盒子自动检测高度,父级有了高度就不会影响下面的标准流了
清除浮动

策略为:闭合浮动

  1. 额外标签法:在浮动元素末尾添加一个块级空标签(不推荐)
    .clear {
        clear: both;
    }
        <div class="clear"></div>

在浮动元素末尾添加一个空标签,调用该类(隔墙法)

  • 优点:通俗易懂,书写方便
  • 缺点:添加许多无意义的标签,结构化较差
  1. 父级添加overflow属性,将属性值设置为hidden、auto或scroll
  • 优点:代码简洁
  • 缺点:无法显示溢出部分
  1. :after伪元素法

是额外标签法的升级版,也是给父元素添加

    .clearfix:after {
        content: "";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
    }

    .clearfix {
        /*IE6、7专有*/
        *zoom: 1;
    }

直接调用.clearfix即可,大厂常用

相当于用css创建了一个盒子在最后,使浮动闭合

  1. 双伪元素清除浮动

将前后都堵上,给父元素添加

	.clearfix:before,.clearfix:after {
        content: "";
        display: block;
	}
	.clearfix:after{
	    clear:both;
	}	
	.clearfix{
	    *zoom:1;
	}
  • 优点:代码更简洁
  • 缺点:需要照顾低版本浏览器
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

会飞的战斗鸡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值