带你了解CSS浮动的魅力

编程入门 行业动态 更新时间:2024-10-09 04:20:49

<a href=https://www.elefans.com/category/jswz/34/1769690.html style=带你了解CSS浮动的魅力"/>

带你了解CSS浮动的魅力

        

目录

            

一、什么是浮动?

二、浮动产生的影响(问题)

  三、清除浮动--解决浮动带来的问题

1、后续标准流被覆盖

​解决方案:给box2 添加如下代码:

2、父级盒子高度塌陷问题

解决方法

 3、垂直外边距重合

     解决方法如下:

总结


   

今天给大家分享浮动会带来的一些都会遇到的问题。

一、什么是浮动?

1、含义:浮动属性是float用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

2、作用:浮动可以改变元素标签默认的排列方式,可以让多个块级标签一行内排列显示。可以利用浮动完成标准流没办法完成的布局效果。

3、浮动的特点

1.元素一旦浮动,脱离文档流(不占页面空间,后面未浮动元素会上前补位)

2.浮动元素会在当前行,停靠在父元素的左/右边,或者停靠在其他已浮动元素的边缘

3.当父元素横向显示不下所有浮动元素时,最后显示不下的,会自动换行

4.浮动用于解决,多个块级元素在同一行显示的问题

二、浮动产生的影响(问题)

(1)由于浮动元素脱离了文档流,所以父元素的高度无法被撑开,影响了与父元素同级的元素;若没有给父元素设置高度,那么父元素就不会在显示屏上显示。

(2)与浮动元素同级的非浮动元素会跟随其后,因为浮动元素脱离文档流不占据原来的位置

(3)如果该浮动元素不是第一个浮动元素,则该元素之前的元素也需要浮动,否则容易影响页面的结构显示

  三、清除浮动--解决浮动带来的问题

1、后续标准流被覆盖

     由于元素浮动之后,会脱离文档流,不占位置,会让后续不浮动的元素上前补位.浮动的元素就会遮盖住后续标准流。

如果后续元素不想上前补位,需要对此元素设置清除浮动 clear:

取值:1.left  清除左浮动对我的影响

      2.right 清除右浮动对我的影响

      3.both 清除左右浮动对我的影响

      4.none 不清除影响

给box1添加浮动后,box1脱离文档流,box2会向上移动到box1的位置,导致布局紊乱,代码如下:

<style type="text/css">.box1{width:200px;height:200px;float:left;background:pink;}.box2{width:500px;height:500px;background:plum;}</style>
<body><div class="box1">box1</div><div class="box2">box2</div>
</body>


解决方案:给box2 添加如下代码:

clear:both;

2、父级盒子高度塌陷问题

   父元素不写高,靠子元素撑起高度,.所有子元素都浮动,那么所有子元素都脱离文档流,父元素认为自己内部没有元素了,所以父元素就没有高度了。父级盒子里可以装很多浮动盒子,若指定父盒子高度,则溢出的盒子会另起一行。

正常情况下,当父元素不设置宽高时,父元素的高度由子元素撑开,代码如下:

<body><div class="box1"><div class="box2"></div></div>
</body>
.box1{border:10px solid pink;
}
.box2{width:200px;height:200px;background:plum;
}

但是,当给子元素设置浮动后,就造成了父元素高度塌陷,代码如下:

<style type="text/css">.box1{border:10px solid pink;}.box2{width:200px;height:200px;background:plum;float:left;}</style>

解决方法

1、额外标签法:给box1增加一个子元素(必须加在最后),并给这个子元素设置 clear: both

<body><div class="box1"><div class="box2"></div><div class="box3"></div></div>	
</body>
.box3{clear:both;}

2、给父元素box1加 overflow:hidden
3、给父元素加 float
4、最好的解决方案是:给父元素添加如下自定义类 .clearfix

.clearfix:after{content:"";display:table; }

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

 3、垂直外边距重合

  第一种情况:
垂直排列的两个元素,上面元素的下外边距与下面元素的上外边距同时设置时, 会取联两者较大的值而不是取两者之和。
    第二种情况:
父子元素垂直外边距相邻时,给子元素设置外边距,会同时导致父元素也同样拥有外边距的值,即

父元素与子元素同时移动。

     解决方法如下:

1、给子元素设置 border-top (此方法会导致元素多设置border ) ;
2、给父元素设置 padding-top (此方法需要重新计算父元素的高度 );
3、给父元素设置 overflow:hidden(此方法在需要实现溢出功能时,将不能使用)
4、最好的解决方案是:给父元素添加如下自定义类 .clearfix

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

总结

以上就是今天要讲的内容,这些CSS的浮动内容就是我想为大家讲解了我认为比较重要的点。希望大家也能学到有用的内容。谢谢!

 

更多推荐

带你了解CSS浮动的魅力

本文发布于:2024-03-12 11:11:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1731373.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:带你   魅力   CSS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!