前端.关于清除浮动和盒子无法撑开的问题(图文解释)
2016-11-06 20:24
656 查看
在打码的时候遇到了一个问题
main_left盒子是包在one盒子里的,但是显示和审查元素却是这样的
这是什么个操作?
想不明白,问了学霸明,他说要撑开盒子有个套路,即
在后面加一串这东西,盒子就能被撑开了。
果然,加了之后的显示是
所以咸鱼我翻了一些博文和帖子,自己总结了有关这方面的一点只是
1.产生的原因:浮动
如图中所示,如果按照普通文档流,两个黑盒子本应该在红盒子中。但是因为
两个盒子被float给浮起来了,于是它们脱离了普通普通文档流,所以红盒子包不住它们了
2.所带来的坏处
⑴就像我遇到的情况,因为父级无法被撑开。背景与边框无法显示
⑵设置的外边距内边距无法正常显示
3.解决方案
这个在网上查了下,发现不止一种解决方法
⑴对父级设置适合CSS高度
即计算好所要包含的盒子的高度+边框的高度等等,然后父级的高度大于之和就有了
但是前提是对象内容高度要能确定并能计算好
⑵clear:both清除浮动
实现这种方法的手段有多种,上面提到的在one后加伪元素after是一种方法
还有一种方法,即在CSS中定义 .clear{clear:both;}
在盒子末尾加上一个
就行了
即:
⑶父级div定义 overflow:hidden
在one中加上overflow:hidden。即
个人推荐第二种,在咸鱼看过的各个实例中也用的多
若有错误,欢迎大佬指正
以上。
<!DOCTYPE html > <head> <title>something about float</title> </head> <style> #one{ background-color:#CCCCCC;} .mid{ float: left;} .main{float: left;} .main_left{float: left;} </style> <body > <div id="one"> <div class="mid"> <div class="main_left"> <h2>TTTTTTTTTTTTTTTTTTT</h2> <p>11111111111111111111111111111111111</p> </div> </div> </div> </body> </html>
main_left盒子是包在one盒子里的,但是显示和审查元素却是这样的
<h2>并没有背景色。即main_left盒子并没有被one盒子给包进去,但是main_left盒子在HTML中确实是在one盒子里面
这是什么个操作?
想不明白,问了学霸明,他说要撑开盒子有个套路,即
在后面加一串这东西,盒子就能被撑开了。
果然,加了之后的显示是
h2拥有了背景色,main_left盒子被包进去了,还有这种操作的?
所以咸鱼我翻了一些博文和帖子,自己总结了有关这方面的一点只是
1.产生的原因:浮动
如图中所示,如果按照普通文档流,两个黑盒子本应该在红盒子中。但是因为
两个盒子被float给浮起来了,于是它们脱离了普通普通文档流,所以红盒子包不住它们了
2.所带来的坏处
⑴就像我遇到的情况,因为父级无法被撑开。背景与边框无法显示
⑵设置的外边距内边距无法正常显示
3.解决方案
这个在网上查了下,发现不止一种解决方法
⑴对父级设置适合CSS高度
即计算好所要包含的盒子的高度+边框的高度等等,然后父级的高度大于之和就有了
但是前提是对象内容高度要能确定并能计算好
⑵clear:both清除浮动
实现这种方法的手段有多种,上面提到的在one后加伪元素after是一种方法
还有一种方法,即在CSS中定义 .clear{clear:both;}
在盒子末尾加上一个
就行了
即:
<!DOCTYPE html > <head> <title>something about float</title> </head> <style> #one{ background-color:#CCCCCC;} .mid{ float: left;} .main{float: left;} .main_left{float: left;} </style> <body > <div id="one"> <div class="mid"> <div class="main_left"> <h2>TTTTTTTTTTTTTTTTTTT</h2> <p>11111111111111111111111111111111111</p> </div> </div> <div style="clear: both;"></div> </div> </body> </html>
⑶父级div定义 overflow:hidden
在one中加上overflow:hidden。即
个人推荐第二种,在咸鱼看过的各个实例中也用的多
若有错误,欢迎大佬指正
以上。
相关文章推荐
- 关于li:hover的怎么清除浮动问题实现代码
- 子div浮动无法撑开火狐下的父div问题
- [WEB前端开发]-关于Velocity中Map与List操作-解决velocity无法识别Map对象key的问题
- 关于清除浮动的问题。一招解决
- 解决li设置浮动ul高度无法被撑开问题
- 关于css清除浮动,解决内容溢出的问题
- 关于对同一个盒子同时设置相对定位和浮动或者绝对定位和浮动的问题
- 关于元素高度不会被内部浮动元素撑开的问题
- CSS中关于清除浮动的问题
- web前端面试常见问题三------浮动原理和清除浮动
- css父盒子没有高度让子盒子撑开 且子盒子有浮动 清除浮动
- 关于浮动居中与清除浮动的问题
- 关于text-decoration无法清除继承的问题
- 关于使用LayoutParams清除设置以及DateFormat无法正确转换格式化日期的问题
- 关于浮动撑开父元素宽度的兼容性问题
- 清除因为浮动,DIV的高度不能自动撑开的问题
- 关于清除浮动的问题
- 关于前端页面在IE浏览器下无法显示的问题
- 关于overflow:auto | hidden清除浮动的一些问题
- 关于mysql已经载入服务,但是无法启动的问题