发表于: 2018-08-12 22:20:19

1 686


今天完成的事情:

·浮动元素的高度

-标准流中元素高度可以撑起父元素的高度

-浮动流中浮动的元素不能撑起父元素的高度

 

·浮动元素高度的问题

-清除浮动的方式一:给前面一个父元素设置一个高度,但是用的很少

-清除浮动的方式二:给后面的盒子设置clear属性,left/right/both,添加clear之后,盒子margin失效,没有margin

-清除浮动的方式三:隔墙法,不常用

-外墙法:两个盒子间设置一个空盒子,加上clearboth; 外墙法可以让第二个盒子的margin-top,不能让第一个盒子设置margin-bottom

-内墙法:第一个盒子中元素最后设置一个空盒子,加上clearboth; 外墙法可以让第二个盒子的margin-top,可以让第一个盒子设置margin-bottom

-清除浮动的方式四:通过伪元素选择器给box1设置一个空的块级元素,设置clear;both属性,设置visibilityhidden,隐藏,还要注意ie6并不兼容,需要加一个css

.Box1::after

Content:“”;

Display:“”;

Height: 0 “”;

Visibility:hidden;

Clear:both;

.box1{

/*兼容ie6*/

*zoom:1;

}

·清除浮动的方式五:overflowhidden; 可以将超出标签范围的内容裁剪掉,也可以清除浮动(还要加*zoom:1;),可以通过overflowhidden;让里面的盒子设置margin-top后,外面的盒子不被顶下来(解除坍塌)

  ·清除浮动的方式六:设置父元素浮动,但是父元素的宽度就不会是auto了。 跟overflow一样都是利用bfc的特性。

 

`BFC:块格式化上下文

块格式化上下文(BFC)有下面几个特点:

· 内部的块级元素会在垂直方向,一个接一个地放置;

·  块级元素垂直方向的距离由margin决定。属于同一个BFC的两个相邻的块级元素会发生margin合并,不属于同一个BFC的两个相邻的块级元素不会发生margin合并;

·  每个元素的margin box的左边,与包含border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此;

·  BFC的区域不会与float box重叠;

·  BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素;外面的元素也不会影响到容器里面的子元素;

·  计算BFC的高度时,浮动元素也参与计算。

 

 

·如何创建一个bfc

一个BFC可以被显式触发,只需满足以下条件之一:

·float的值不为none

·overflow的值不为visible

·position的值为fixed / absolute

·display的值为table-cell / table-caption / inline-block / flex / inline-flex

 

当元素设置了overflow样式,且值不为visible时,该元素就建构了一个BFC。在我们的例子中,盒子因设置了值为auto或者hiddenoverflow样式,所以该元素建构出一个BFC,按照第7个特点,BFC的高度是要包括浮动元素的,所以盒子的高度被撑起来,达到了清除浮动影响的目的

那么只要能构建BFC就能达到清除浮动的原理,设置displayinline-block;能设置bfc,所以他也能清除浮动,同理其他的也一样。但是最常用的是overflow

 

 

 

·伪元素选择器:给指定标签的内容前、后添加一个子元素、

标签名称::before{

Content: 你好 

}

标签名称::after

Content:“你好” ;



明天计划的事情:

html,css大部分都复习了一边,继续做任务。在任务中熟练。



遇到的问题:

准备去上海线下,没有宿舍,坑!


收获:

复习


返回列表 返回列表
评论

    分享到