博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
清除浮动专题
阅读量:5080 次
发布时间:2019-06-12

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

1.三个已经混淆的概念

(1)不浮动float:none;

(2)清除周围的浮动元素

(3)清除子元素浮动对父元素的影响

 

2.什么是清除浮动

清除浮动不是把当前标签的浮动给清楚了,如果这样,还加浮动做什么。

其实清除浮动指的是清除当前元素旁边的浮动元素,但是当前元素又不能影响别人,打不赢就跑,所以自己就跑到下面去了。

 

3.为什么要清楚浮动

在布局的时候我们经常希望某些内容能够水平排布,水平排布后,由于内部内容不确定,高度不能简单的给一个定值。而如果不给高度,子元素又都浮动了,父盒子就会因为没有子盒子的支持而塌陷。

利用清除浮动的这个特性,我们可以给父元素中最后一个不浮动的盒子使用clear:both从而把父盒子的高度撑起来,并且能够根据内部内容的变化而改变高度。

 

4.清除浮动的方法

(1)额外标签法

原理:单独使用一个标签加上clear:both跑到浮动元素下面,从而消除子盒子浮动造成的父盒子塌陷。

典型网站:京东

优点:通俗易懂,容易掌握

缺点:添加很多无意义的空标签,不符合结构与表现分离的原则,不利于后期的维护。

 

(2)父元素设置overflow:hidden

原理:让父盒子形成BFC,BFC的特性之一就是可以承载浮动元素

优点:不存在结构和语义化问题,代码量极少。

缺点:内容增多时候不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素。

BFC(block formatting content)快格式化上下文,是W3C规定的一种独立渲染区域。

其特性为:

  • BFC会阻止外边距折叠
  • BFC可以承载浮动元素
  • BFC可以阻止元素被浮动元素覆盖

总而言之,就是独立了。

哪些情况会触发BFC

  • float除了none以外的值
  • overflow除了visible以外的值(hidden,auto,scroll)
  • display(table-cell,table-caption,inline-block)
  • position(absolute,fixed)
  • 根元素

(3)单伪元素

.clearfix:after {

  content: "";

  height: 0;

  visibility: hidden;

  overflow: hidden;

  display: block;

  clear: both;

}

.clearfix {

  zoom: 1;/*IE67*/

}

典型网站:新浪、网易

 

(4)双伪元素

.clearfix:before, .clearfix:after {

  content: "";

  display: table;

}/*在内部元素的前面和后面添加元素*/

.clearfix:after {

  clear:both;

}/*只要after两侧有浮动元素,after就会跑到最下面,从而撑开带有该类名的父盒子*/

.clearfix {

  *zoom: 1;/*用于兼容IE/7/6*/

}

用display:table是因为display:block有空隙

加了一个before是为了防止外边合并

典型网站:小米、淘宝

 

转载于:https://www.cnblogs.com/Jerry-MrNi/p/6339613.html

你可能感兴趣的文章
python numpy sum函数用法
查看>>
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
HDU 4635 Strongly connected
查看>>
ASP.NET/C#获取文章中图片的地址
查看>>
Spring MVC 入门(二)
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
BZOJ 1047 HAOI2007 理想的正方形 单调队列
查看>>
各种语言推断是否是手机设备
查看>>
这个看起来有点简单!--------实验吧
查看>>
PHP count down
查看>>
JVM参数调优:Eclipse启动实践
查看>>
(旧笔记搬家)struts.xml中单独页面跳转的配置
查看>>
不定期周末福利:数据结构与算法学习书单
查看>>
strlen函数
查看>>
python的列表与shell的数组
查看>>