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

    你可能感兴趣的文章
    PostgreSQL 导入 .gz 备份文件
    查看>>
    PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
    查看>>
    PostgreSQL 新增数据返回自增ID
    查看>>
    postgresql 更新多列数据
    查看>>
    PostgreSQL 服务启动后停止
    查看>>
    PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
    查看>>
    PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
    查看>>
    Qt开发——简易调色板QPalette
    查看>>
    PostgreSQL-解决连接时遇到的乱码问题
    查看>>
    PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
    查看>>
    PostgreSQL9.1 双机部署配置(主备数据同步)
    查看>>
    Qt开发——简易网络浏览器(一)
    查看>>
    Qt开发——简易成绩登记系统
    查看>>
    Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
    查看>>
    Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
    查看>>
    Postgresql中的表结构和数据同步/数据传输到Mysql
    查看>>
    Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
    查看>>
    postgreSQL入门命令
    查看>>
    PostgreSQL删除数据库报"ERROR: There is 1 other session using the database."
    查看>>
    Qt开发——爱情公寓人事管理系统
    查看>>