博客
关于我
关于清除浮动的四种方法
阅读量:176 次
发布时间:2019-02-28

本文共 1302 字,大约阅读时间需要 4 分钟。

清除浮动的几种常见方法及其优缺点

在网页设计中,浮动布局是非常常见的布局方式,但当浮动对页面布局产生不期望的影响时,如何清除浮动就显得尤为重要。本文将详细介绍几种常见的清除浮动方法,并分析其优缺点。

一、浮动对页面的影响

当一个父盒子中有子盒子进行浮动布局时,如果父盒子没有设置高度,子盒子的浮动可能会导致父盒子的高度被拉伸为0。这种情况下,下方内容会自动补位,可能会导致页面布局异常。为了解决这种问题,通常需要对父盒子进行浮动清除处理。

清除浮动的方式

一、使用overflow属性清除浮动

一种常见的方法是通过设置overflow属性来清除浮动。具体操作如下:

.ovh {    overflow: hidden;}

这种方法通过将超出区域的内容隐藏来清除浮动。然而,这种方式有一个潜在问题:一旦超出区域的内容被隐藏,无法通过其他方式访问这些内容,可能会影响用户体验。

二、使用额外标签法清除浮动

另一种方法是在浮动盒子之下添加一个清除标签,并在该标签中设置clear:both属性。这种方法有两种实现方式:

  • 内部标签:添加一个标签在浮动盒子之下,并设置clear:both属性。这种方式会将浮动盒子的父盒子高度重新撑开。

  • 外部标签:添加一个标签在浮动盒子的外部,并设置clear:both属性。这种方式会清除浮动,但不会撑开父盒子。

  • 不过,使用额外标签法的缺点是增加了页面的复杂性,可能会导致结构混乱,因此这种方法不常用。

    三、使用伪元素清除浮动

    第三种方法是使用伪元素来清除浮动。这种方法通过在父盒子顶部或底部添加伪元素来清除浮动。以下是一个常见的实现方式:

    .clearfix:after {    content: "";    height: 0;    line-height: 0;    display: block;    visibility: hidden;    clear: both;}.clearfix {    zoom: 1; /* 兼容IE浏览器 */}

    这种方法的优势是代码简洁,且不会增加实际的标签数量。同时,伪元素不会对页面的可用性造成影响,适合大多数情况。

    为什么不选择第四种方法?

    虽然第四种方法(双伪元素清除浮动)是第三种方法的改良版,但它并不严谨。第四种方法的实现方式如下:

    .clearfix:before,.clearfix:after {    content: "";    display: block;    clear: both;}.clearfix {    zoom: 1;}

    虽然这种方法简单,但它存在一定的兼容性问题,且在某些情况下可能无法完全清除浮动。因此,开发者通常会选择第三种方法来确保清除浮动的准确性。

    总结

    在清除浮动时,选择合适的方法至关重要。第一种方法(overflow:hidden)会隐藏超出内容,不适用于需要保留超出内容的情况。第二种方法(额外标签法)会增加标签复杂性,不够简洁。第三种方法(伪元素清除浮动)是目前最常用的方法,因其代码简洁且兼容性好。第四种方法虽然简便,但不够严谨,因此一般不推荐使用。

    转载地址:http://crwn.baihongyu.com/

    你可能感兴趣的文章
    MySQL集群解决方案(4):负载均衡
    查看>>
    MySQL高级-视图
    查看>>
    nacos集群搭建
    查看>>
    Navicat for MySQL 查看BLOB字段内容
    查看>>
    Neo4j的安装与使用
    查看>>
    Neo4j(2):环境搭建
    查看>>
    nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    netsh advfirewall
    查看>>
    Netty WebSocket客户端
    查看>>
    Netty 异步任务调度与异步线程池
    查看>>
    Netty中集成Protobuf实现Java对象数据传递
    查看>>
    Netty工作笔记0006---NIO的Buffer说明
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0013---Channel应用案例4Copy图片
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0020---Selectionkey在NIO体系
    查看>>
    Vue踩坑笔记 - 关于vue静态资源引入的问题
    查看>>