欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

如何清除高度坍塌

发布时间:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 如何清除高度坍塌 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

高度坍塌概念

父元素没有设置高,高度自适应,子元素浮动后,造成父元素高度为0,成为高度坍塌

图一 父元素没有设置高度,靠子元素撑开

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>money</title><style>/* 父元素没有设置高度,靠子元素撑开 */.me{background-color: green;width:100px;height: 100px; }#one{border:1px solid #FF7F50; }</style></head><body><div id="one"><div class="me"></div></div></body> </html>

图二 高度坍塌  父元素没有设置高度,子元素浮动

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>money</title><style>/* 父元素没有设置高度,子元素浮动 */.me{background-color: green;width:100px;height: 100px; float:left;}#one{border:1px solid #FF7F50; }</style></head><body><div id="one"><div class="me"></div></div></body> </html>

解决方法:

1.给父元素设置高度

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>money</title><style>.me{background-color: green;width:100px;height: 100px; float:left;}#one{/* 设置高度 */height:100px;border:1px solid #FF7F50; }</style></head><body><div id="one"><div class="me"></div></div></body> </html>

优点:代码少

缺点:父元素固定高度,违背了高度自适应的原则,不够灵活

2.给父元素定义overflow:hidden,zoom:1(针对ie6兼容)

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>money</title><style>.me{background-color: green;width:100px;height: 100px; float:left;}#one{border:1px solid #FF7F50; /* 添加overflow */overflow:hidden;}</style></head><body><div id="one"><div class="me"></div></div></body> </html>

优点:浏览器支持,简单

缺点:当子元素有定位属性时,设置overflow:hidden;容器意外的部分会被裁剪掉

3.给父元素定义overflow:auto

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>money</title><style>.me{background-color: green;width:100px;height: 100px; float:left;}#one{border:1px solid #FF7F50; /* 添加overflow:auto */overflow:auto;}</style></head><body><div id="one"><div class="me"></div></div></body> </html>

4.在子元素末尾添加空的div,并设置样式clear: both;  height:0;overflow: hidden;

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>money</title><style>.me{background-color: green;width:100px;height: 100px; float:left;}#one{border:1px solid #FF7F50; }/* 设置样式 */#two{clear: both;height:0;overflow: hidden;}</style></head><body><div id="one"><div class="me"></div><!-- 添加新的div并设置样式 --><div id="two"></div></div></body> </html>

优点:所有浏览器支持,并且溢出的部分不会被裁剪

缺点:在页面添加了无意义的div,容易造成代码冗(rong)余

5.万能清除浮动法--在父元素内容中添加一个伪元素

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>money</title><style>.me{background-color: green;width:100px;height: 100px; float:left;}#one{border:1px solid #FF7F50; }/* 父元素添加伪元素 */#one:after{content:'';height:0;clear:both;overflow: hidden;visibility: hidden;display: block;}</style></head><body><div id="one"><div class="me"></div></div></body> </html>

优点:不会造成代码冗余,剩余代码性能优化

总结

以上是生活随笔为你收集整理的如何清除高度坍塌的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。