博客
关于我
关于清除浮动的四种方法
阅读量: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/

    你可能感兴趣的文章
    nacos集群搭建
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    Netty WebSocket客户端
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>
    Netty源码解读
    查看>>
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    查看>>
    Netty相关
    查看>>
    Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
    查看>>