高度塌陷的问题:

当开启元素的BFC以后,元素将会有如下的特性

1 父元素的垂直外边距不会和子元素重叠
    开启BFC的元素不会被浮动元素所覆盖
    开启BFC的元素可以包含浮动的子元素

如何开启元素的BFC

设置元素浮动
    设置元素绝对定位
    设置元素为inline-block

float:left; (不好)  虽然可以撑开父元素 会导致父元素宽度丢失了

而且使用这种方式导致下边的元素上移。

display:inlink-block;

布局好了,但是宽度又没有了。但是会导致宽度丢失,不推荐使用这种方式

4 将元素的overflow  设置非visible值

overflow:visible

overflow:auto;  解决父元素高度塌陷 副作用最小的
            hidden;

兼容性

在IE6中没有BFC, 但是具有另一个隐含的属性叫hasLayout.

该属性的作用和BFC类似,所在IE6浏览器通过开启hasLayout来解决问题。

方式:

元素的zoom设置为1即可

zoom:1

在 IE6中如果为一个元素指定了一个宽度,则会默认开启一个

hasLayout.

clear:  both 清楚对他影响最大的那个元素的浮动

解决高度塌陷的方案二

可以直接在高度塌陷的父元素的最后,添加一个空白的div

由于这个div并没有浮动,他是可以撑开父元素高度的

然后对其进行清除浮动,这样可以通过这个空白的div来撑开父元素的高度,基本没有副作用

虽然可以解决问题啊,但是在页面中添加多余的结构。

**********************************    ==>     通过after伪类 设置为块级元素 清除两边浮动 解决父类塌陷的问题

通过after伪类,选中box1的后边

.box1:after{

content:"";
         display:block;

//清除两侧的浮动

clear:both;

}

IE6不支持伪类。  zoom:1;

.clearfix:after{
         /*添加一个内容*/
         content:"";
         /*转换为一个块元素*/
         display:block;
         /*清除两侧的浮动*/
         clear:both;
     }

/*在IE6中不支持after伪类,
     所以在IE6中还需要使用hasLayout来处理*/

.clearfix{
         zoom:1;
     }

IE6中如果上面的是内联元素    也是浮不上去的

终极版:

//经过修改后的clearfix是一个多功能的
//既可以解决高度塌陷,又可以确保父元素
和子元素的垂直外边距重叠

.clearfix:before,
.clearfix:after{
    content:"";
    display:table;
    clear:both;
}

html高度塌陷问题解决的更多相关文章

  1. 关于float高度塌陷问题

    和所有刚入门的菜鸟一样,我发现float有高度塌陷问题,又很偶然的发现float元素后加<img/>能消除float带来的破坏性. 后来百度了一下,大部分的float高度塌陷问题都没有提及 ...

  2. CSS高度塌陷

    问题描述:当父元素只包含浮动的元素的时候,且父元素没有设置高度,如果父元素设置了边框border,那么看起来子元素不在父元素之内. 比如这样: html: <div id="paren ...

  3. 学习微信小程序之css15解决父盒子高度塌陷

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. css float父元素高度塌陷

    css float父元素高度塌陷 float 使父元素高度塌陷不是BUG,反而是标准. float 原本是为了解决文字环绕才出现的. 当然有的时候要解决高度塌陷的问题 以下几个方法可以解决float ...

  5. CSS: inline-block的应用和float块高度塌陷

    普通流高度塌陷: 当块float浮动时,不会对块布局产生影响,块仍然会按照左右或者上下的顺序排列.但是会影响文档的排列,当文档的高度超过块的高度时,块的高度会产生塌陷现象.   高度塌陷解决方法:   ...

  6. html高度塌陷以及定位的理解

    高度塌陷的含义: 父元素的高度,默认被子元素撑开,目前来讲box2多高,box1就多高.此时如果子元素设置浮动,则会导致其完全脱离文档流,子元素脱离文档流将无法撑开父元素, 导致父元素的高度丢失,就是 ...

  7. CSS高度塌陷问题与解决办法

    问题描述: 在文档流中,父元素默认被子元素撑开(父多高子多高),一旦子浮动,脱离文档流,父无撑起元素便塌陷,父下的所有元素会上移. (不推荐)可以将父高度写死避免塌陷,但高度写死后,父高度不能自动适应 ...

  8. __x__(29)0908第五天__高度塌陷 问题

    高度塌陷 在文档流中,父元素的高度默认是被子元素撑开的. 但是当为 子元素 设置 float 时,子元素会完全脱离文档流,无法再撑开父元素,导致父元素高度塌陷...以致于布局混乱 变成 BFC块级格式 ...

  9. __x__(43)0910第六天__ clearfix 解决:垂直外边距重叠,高度塌陷

    <div class="box1"> <tabl></table> <div class="box2">< ...

随机推荐

  1. WPF中的DataGridTemplateColumn实现点击列标题排序

    在DataGrid中使用模板列时,默认功能中对点击列标题是不对列值进行排序的,要排序就需要添加以下两个属性: 1.CanUserSort="True" 2.SortMemberPa ...

  2. Python的__getattribute__二三事

    本来以为自己对__getattribute__已经比较了解了,结果用到的时候,才发现有一些知识点之前一直没有真正弄明白,记录如下(针对python3,python2差异较大): object类有__g ...

  3. MPMoviePlayerViewController不能播放本地mp4的解决办法.

    之前一直用MPMoviePlayerViewController进行网络播放,最近下载文件然后本地播放,发现怎么播放都是黑屏.后来发现MPMoviePlayerViewController的本地URL ...

  4. 51 Nod 1067 博弈 SG函数

    1067 Bash游戏 V2 1 秒 131,072 KB 10 分 2 级题   有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3,4颗,拿到最后1颗石子的人获胜.假设A B都非常聪 ...

  5. PHP将多维数组变成一维数组

    function reduceArray($array) { $return = []; array_walk_recursive($array, function ($x) use (&$r ...

  6. anaconda安装出现failed to create anacoda menue

    1.卸载Anaconda后重新安装Anaconda出现各种问题,粗暴解决方式:直接将安装目录放在C盘主路径下,完美解决. 2.然后无选择忽略,忽略,忽略,提示安装成功,依旧没有 菜单 进入 cmd,找 ...

  7. PHP会话cookie类的封装

    <?php header('content-type:text/html;charset=utf-8');/** * 完成cookie的设置.删除.更新.读取 */class Cookie{   ...

  8. AXI协议(一)

    最近弄Zynq,不懂AXI协议Zynq很难玩儿的转.这些笔记主要攻克AXI中的一些难题. 所有的AXI4包含了5个不同的通道:     (1)读/写地址通道(Read/Write address ch ...

  9. proxyTable设置跨域

    如何设置跨域 1.在config--index.js 中配置 proxyTable: { '/api': { target: 'http://www.xxx.com', //目标接口域名 change ...

  10. UNIX SHELL基础知识总结(一)

    1. Unix常目录结构与作用: 2.  基本命令: $echo $date $who $who am i 3.  创建文件的几种方式: A. touch FileName 创建空文件 B. > ...