css嵌套崩塌
- 嵌套崩塌的表现
嵌套崩塌,外边距塌陷也称为外边距合并,是指在正常文档流中的父子元素的块级元素的外边距组合在一起变成单个外边距,当给子元素设置外边距时,父元素会出现样式现象,产生崩塌的现象。 - 嵌套崩塌的解决方法
- 给父元素设置内边距(设置外边距无效)。
下面展示一些 内联代码片
。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
width: 200px;
height: 200px;
margin: 0 auto;
background-color: aqua;
padding-top: 1px;
}
.small-box{
width: 100px;
height: 100px;
background-color: pink;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="box">
<div class="small-box">
</div>
</div>
</body>
</html>
- 给父元素设置边框。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
width: 200px;
height: 200px;
margin: 0 auto;
background-color: aqua;
border: 0.000000001px solid transparent;
}
.small-box{
width: 100px;
height: 100px;
background-color: pink;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="box">
<div class="small-box">
</div>
</div>
</body>
</html>
- 给父元素添加overflow:hidden
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
width: 200px;
height: 200px;
margin: 0 auto;
background-color: aqua;
overflow: hidden;
}
.small-box{
width: 100px;
height: 100px;
background-color: pink;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="box">
<div class="small-box">
</div>
</div>
</body>
</html>
- 通过定位来解决。添加绝对定位或者相对定位可以解决,但会使元素脱离文档流,一般不推荐使用。