浮动高度塌陷,清除浮动

要求:清除浮动

<!DOCTYPE html>
<html>
<head>
<title>清除浮动</title>
<style type="text/css">
  .outer {
    width: 200px;
    background: tomato;
    margin: 10px;
    position: relative;
  }
  .inner {
    height: 100px;
    width: 100px;
    background: pink;
    margin: 10px;
    float: left;
  }
  /* 伪元素 */
  .outer1::after {
    content: '';
    display: block;
    clear: both;
  }
  /* 创建 BFC */
  .outer2 {
    overflow: hidden;
  }
</style>
</head>
<body>
<div class="outer outer1">
  <div class="inner"></div>
</div>
<div class="outer outer2">
  <div class="inner"></div>
</div>
</body>
</html>
高度塌陷问题通常在父元素包含浮动子元素时出现,因为浮动元素脱离了标准流,父元素无法自动计算其高度。以下是几种清除浮动以解决高度塌陷问题的方法: ### 额外标签法 在浮动元素的末尾添加一个空的块级元素,并为其设置 `clear: both` 属性。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Extra Tag Method</title> <style> .parent { border: 1px solid black; } .float-left { float: left; width: 100px; height: 100px; background-color: lightblue; } .clear { clear: both; } </style> </head> <body> <div class="parent"> <div class="float-left"></div> <div class="clear"></div> </div> </body> </html> ``` 在上述代码中,通过在浮动元素后添加一个 `clear` 类的空 `div` 元素,清除浮动,使父元素能够包含浮动元素的高度。 ### 父元素设置 `overflow` 属性 为父元素设置 `overflow: hidden` 或 `overflow: auto` 属性,可以触发 BFC(块级格式化上下文),从而包含浮动元素的高度。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Overflow Method</title> <style> .parent { border: 1px solid black; overflow: hidden; } .float-left { float: left; width: 100px; height: 100px; background-color: lightblue; } </style> </head> <body> <div class="parent"> <div class="float-left"></div> </div> </body> </html> ``` 这里,父元素设置了 `overflow: hidden`,创建了一个新的 BFC,使得父元素能够包裹浮动的子元素。 ### 伪元素法 使用 `::after` 伪元素为父元素添加一个清除浮动的元素。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Pseudo Element Method</title> <style> .parent { border: 1px solid black; } .parent::after { content: ""; display: block; clear: both; } .float-left { float: left; width: 100px; height: 100px; background-color: lightblue; } </style> </head> <body> <div class="parent"> <div class="float-left"></div> </div> </body> </html> ``` 通过为父元素的 `::after` 伪元素设置 `clear: both`,可以清除浮动,解决高度塌陷问题。 ### 相关问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值