清除浮动

1.浮动的负作用

<1>背景不能显示

      由于浮动的产生,对父级设 background背景/背景颜色背景图片,而父级不能被撑开,导致CSS背景不能显示

<2>边框不能撑开

     如果对父级设置边框属性( border),而子级里使用了float属性,产生浮动,则父级不能被撑开,故导致边框不能随内容而被撑开

<3>margin padding值不能正确显示

        浮动导致父级子级之间设置的css padding、css margin属性值不能正确表达。特别是上下边的padding和margin不能正确显示

2.清除浮动的方法(此方法兼容各大浏览器)

《1》方式一:给前面一个元素设置高度

注意点:在企业开发中,我们能不写高度就不写高度,所以这种方式用的比较少

《2》方式二:给后面一个元素添加clear属性

取值:none:默认取值,按浮动元素的规则来排序(右浮动找右浮动,左浮动找左浮动)

left:不要找前面的左浮动

right:不要找前面的右浮动

both:不要找前面的左浮动和右浮动

注意点:当给某个元素添加clear属性之后,那么这个属性的margin属性就会失效

《3》方式三:隔墙法

(1)外墙法:在两个盒子之间添加一个额外的块级元素,并且给这个块级元素添加clear:both;属性

注意点:外墙法可以让第二个盒子使用margin-top属性,但不可以让第一个盒子使用margin-bottom属性。一般在企业开发中,是直接给额外添加的块级元素添加一个高度

(2)内墙法:在第一个盒子中所有子元素最后添加一个额外的块级元素,并且给这个块级元素添加clear:both;属性

注意点:内墙法可以让第二个盒子使用margin-top属性,也可以让第一个盒子使用margin-bottom属性。

(3)区别:外墙法不能撑起第一个盒子的高度,而内墙法可以撑起第一个盒子的高度

《4》方式四:伪元素选择器:

作用:给指定标签的内容前面添加一个子元素或者给指定标签的内容后面添加一个子元素

(1)格式一:给指定标签的内容前面添加一个子元素

标签名称::before{

属性名称:值;

content:;

给指定添加的子元素中存储的内容

width: ;

height: ;

给指定添加的子元素的宽度和高度

display:block;

给指定添加的子元素的显示模式

visibility:hidden;

隐藏添加的子元素}

(2)格式二:给指定标签的内容后面添加一个子元素

标签名称::after{

属性名称:值;

content:;

设置添加的子元素的内容为空

height:0 ;

设置添加的子元素的高度为0

display:block;

设置添加的子元素为块级元素

visibility:hidden;

隐藏添加的子元素

clear:both;

}

兼容IE6:给第一个盒子添加

.box1{*zoom:1;}

《6》 方式六:overflow:hidden;

作用:

(1)可以将超出标签范围的内容裁剪掉

(2)可以清处浮动

(3)可以通过overflow:hidden;让里面的盒子设置margin-top之后,外面的盒子不被顶下来(给外面的盒子添加边框也可以防止里面的盒子被顶下来)

注意点:可以让第二个盒子使用margin-top属性,也可以让第一个盒子使用margin-bottom属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,814评论 1 92
  • 盒子的高度问题 1.标准流中盒子的高度可以被内容高度撑起来;2.浮动流中浮动的内容不能撑起盒子的高度; 为什么要清...
    壹点微尘阅读 407评论 0 0
  • 第128课 浮动元素高度问题 1、在标准流中内容的高度可以撑起父元素的高度2、在浮动流中浮动的元素是不可以撑起父元...
    S大偉阅读 169评论 0 0
  • 浮动元素高度问题 在标准流中内容的高度可以撑起父元素的高度 在浮动流中浮动的元素是不可以撑起父元素的高度的 清除浮...
    MGd阅读 358评论 0 0
  • 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素的特征: 不占据普通文档流的空...
    南山码农阅读 275评论 0 1