清除浮动的几种方法

柔情只为你懂 2022-11-12 13:52 322阅读 0赞

1. 浮动

  1. 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  2. 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
  3. 也就是说浮动的元素脱离了文档流,导致其他元素到了浮动元素的下面,被浮动的元素覆盖等现象。

简单案例代码1

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .parent{
  10. width: 500px;
  11. height: 500px;
  12. background-color: brown;
  13. }
  14. .child1,.child2,.child3{
  15. width: 50px;
  16. height: 50px;
  17. margin: 10px;
  18. border: 5px solid green;
  19. }
  20. .child1{
  21. background-color: black;
  22. /*float: left;*/
  23. }
  24. .child2{
  25. background-color: skyblue;
  26. }
  27. .child3{
  28. background-color: slateblue;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="parent">
  34. <div class="child1"></div>
  35. <div class="child2"></div>
  36. <div class="child3"></div>
  37. </div>
  38. </body>
  39. </html>

上面是没有浮动的代码,效果图1如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdsZjUyMQ_size_16_color_FFFFFF_t_70

  1. ** child1浮动时,即 floatleft;时,效果图2如下:**

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdsZjUyMQ_size_16_color_FFFFFF_t_70 1

当然,浮动的案例还有很多。这里只简单介绍这个,像上面的情况发生了,我们需要清除浮动带来的效果。

2. 清除浮动的方法

2.1 overflow:hidden/auto;

  1. 给被浮动元素覆盖的元素添加 overflow:hidden/auto; css样式。父元素最好也加上overflow:hidden/auto属性,避免margin属性不生效的问题。
  2. 浮动前的**案例代码2**如下:
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="UTF-8">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9. <title>Document</title>
  10. <style>
  11. .parent{
  12. width: 500px;
  13. height: 500px;
  14. background-color: brown;
  15. }
  16. .child1,.child2,.child3{
  17. width: 50px;
  18. height: 50px;
  19. margin: 10px;
  20. border: 5px solid green;
  21. }
  22. .child1{
  23. background-color: black;
  24. float: left;
  25. }
  26. .child2{
  27. background-color: skyblue;
  28. }
  29. .child3{
  30. background-color: slateblue;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="parent">
  36. <div class="child1"></div>
  37. <div class="child2"></div>
  38. <div class="child3"></div>
  39. </div>
  40. </body>
  41. </html>

效果图3

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdsZjUyMQ_size_16_color_FFFFFF_t_70 2

清除浮动后的案例代码3如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .parent{
  10. width: 500px;
  11. height: 500px;
  12. background-color: brown;
  13. overflow: hidden; /*或者auto*/
  14. }
  15. .child1,.child2,.child3{
  16. width: 50px;
  17. height: 50px;
  18. margin: 10px;
  19. border: 5px solid green;
  20. }
  21. .child1{
  22. background-color: black;
  23. float: left;
  24. }
  25. .child2{
  26. background-color: skyblue;
  27. overflow: hidden;/*或者auto*/
  28. }
  29. .child3{
  30. background-color: slateblue;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="parent">
  36. <div class="child1"></div>
  37. <div class="child2"></div>
  38. <div class="child3"></div>
  39. </div>
  40. </body>
  41. </html>

效果图4如下

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdsZjUyMQ_size_16_color_FFFFFF_t_70 3

2.2 clear:both;

  1. 在浮动元素的后面加一个空标签,样式设置为 clear:both;

浮动前的案例代码如 案例代码2,效果图如效果图3

清除浮动后,案例代码4如下

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .parent{
  10. width: 500px;
  11. height: 500px;
  12. background-color: brown;
  13. }
  14. .child1,.child2,.child3{
  15. width: 50px;
  16. height: 50px;
  17. margin: 10px;
  18. border: 5px solid green;
  19. }
  20. .child1{
  21. background-color: black;
  22. float: left;
  23. }
  24. .child2{
  25. background-color: skyblue;
  26. }
  27. .child3{
  28. background-color: slateblue;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="parent">
  34. <div class="child1"></div>
  35. <div style="clear: both;"></div>
  36. <div class="child2"></div>
  37. <div class="child3"></div>
  38. </div>
  39. </body>
  40. </html>

效果图5如下

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdsZjUyMQ_size_16_color_FFFFFF_t_70 4

2.3 ::after伪元素

  1. 如果父元素没有设置高度,内部的子元素都设置了浮动,那么这个父元素没有被撑开,高度是0,这种情况下,可以给父元素添加清除浮动的伪元素,父元素自动被撑开。

浮动前的案例代码5如下

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .parent{
  10. width: 500px;
  11. background-color: brown;
  12. }
  13. .child1,.child2,.child3{
  14. width: 50px;
  15. height: 50px;
  16. margin: 10px;
  17. float: left;
  18. }
  19. .child1{
  20. background-color: black;
  21. }
  22. .child2{
  23. background-color: skyblue;
  24. }
  25. .child3{
  26. background-color: slateblue;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <div class="parent">
  32. <div class="child1"></div>
  33. <div class="child2"></div>
  34. <div class="child3"></div>
  35. </div>
  36. </body>
  37. </html>

浮动前的效果图6如下

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdsZjUyMQ_size_16_color_FFFFFF_t_70 5

使用伪元素清除浮动后的案例代码6如下

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .parent{
  10. width: 500px;
  11. background-color: brown;
  12. }
  13. .child1,.child2,.child3{
  14. width: 50px;
  15. height: 50px;
  16. margin: 10px;
  17. float: left;
  18. }
  19. .child1{
  20. background-color: black;
  21. }
  22. .child2{
  23. background-color: skyblue;
  24. }
  25. .child3{
  26. background-color: slateblue;
  27. }
  28. .clearfix::after{
  29. content: '';
  30. display: block;
  31. height: 0;
  32. clear: both;
  33. }
  34. .clearfix{
  35. zoom: 1;
  36. }
  37. </style>
  38. </head>
  39. <body>
  40. <div class="parent clearfix">
  41. <div class="child1"></div>
  42. <div class="child2"></div>
  43. <div class="child3"></div>
  44. </div>
  45. </body>
  46. </html>

清除浮动后的效果图7如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdsZjUyMQ_size_16_color_FFFFFF_t_70 6

清除图

发表评论

表情:
评论列表 (有 0 条评论,322人围观)

还没有评论,来说两句吧...

相关阅读

    相关 清除浮动方法

    1. 浮动        浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。        由于浮动框不在文档的普通流中,所以文档的普通流中

    相关 清除浮动方法

    1.浮动元素下加空div 为了统一样式,我们新建一个样式选择器class命名为“.clear”,并且对应选择器样式为“clear:both”,然后我们在父级“</div>”

    相关 清除浮动方式

    清除浮动的几种方式 今天碰到了一个浮动导致元素没有高度的问题,网上搜了以下,有片文章写的比较好,拿过来自己在补充以下。不算纯粹原创,文末注明了出处,以表示对作者的尊重。本

    相关 清除浮动方法

    浮动产生负作用 1.背景颜色不能使用 子元素float ,如果父元素设置了background,而父级不能被撑开,所以导致背景颜色不能显示 2.边框不能撑开 如果父

    相关 清除浮动方法

    标准流:盒子会各占整行位置。子盒子若是标准流,父盒子虽然没有高度,但是会撑开父盒子高度。   浮动:盒子浮了起来,不会占据原来的位置,若父盒子没有定义高度,则不会撑开父盒子,