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

    你可能感兴趣的文章
    Nginx配置TCP代理指南
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NI笔试——大数加法
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    NR,NF,FNR
    查看>>
    nrf开发笔记一开发软件
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSOperation基本操作
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    nullnullHuge Pages
    查看>>
    numpy 用法
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>