当前位置: 首页 > news >正文

【遇到的问题】父div不能被撑开

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

如何修正DIV float之后导致的外部容器不能撑开的问题 

在写HTML代码的时候,发现在Firefox等符合W3C标准的浏览器中,如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有clear,导致不能被撑开。看下面的例子:

HTML4STRICT代码:

<div style="width:200px;border:1px solid red;">
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
</div>

显示的结果如下:

174004_EUiq_1376153.png

容器DIV没有被撑开

大家可以看到,作为外部容器的边框为红色的DIV,没有被撑开。这是因为内部的DIV因为float:left之后,就丢失了clear:both和display:block的样式,所以外部的DIV不会被撑开。

解决方案1:在子元素最后增加“<div style="clear:both;"></div>

<div style="width:200px;border:1px solid red;">
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div>
    <div style="clear:both;"></div>
</div>

最后撑开的效果为:

174003_mYQs_1376153.png

方案2 :

< div class = "clearfix" >
< div class = "left" ></ div >
< div class = "right" >
</ div >

</div>

父div增加样式clearfix

.clearfix:after {       /*在类名为“clearfix”的元素内最后面加入内容;*/
    content: ".";     /*内容为“.”就是一个英文的句号而已。也可以不写。*/
    display: block;   /*加入的这个元素转换为块级元素。*/
    clear: both;     /*清除左右两边浮动。*/
    visibility: hidden;     /*可见度设为隐藏。注意它和display:none;是有区别的。visibility:hidden;仍然占据空间,只是看不到而已;*/
    line-height: 0;    /*行高为0;*/
    height: 0;     /*高度为0;*/
    font-size:0;    /*字体大小为0;*/
}
.clearfix { *zoom:1;}   /*这是针对于IE6的,因为IE6不支持:after伪类,这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素。具体意思的话,不用深究,听说微软的工程师自己都无法解释清楚。height:1%效果也是一样。*/



转载于:https://my.oschina.net/u/1376153/blog/600123

相关文章:

  • iOS开发-UIView扩展CGRect
  • 如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
  • openssh 加固
  • Spring MVC 拦截器 interceptors
  • Javascript继承机制的实现
  • AndroidTestCase简单使用
  • Linux开源文本编辑器培训教材(二)
  • 微信公众平台开发(111) 现金红包、裂变红包、企业付款
  • ListView和SimPleteAdapter 把新闻数据绑定到ListView
  • I.MX6 Linux udev porting
  • Nginx搭建反向代理服务器过程详解(转)
  • 【PHP】PHP7的异常处理详解
  • IOS开发知识(六)
  • linux基础网络设置
  • 深入浅出Node.js (6) - 理解Buffer
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • gops —— Go 程序诊断分析工具
  • Invalidate和postInvalidate的区别
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaScript类型识别
  • js递归,无限分级树形折叠菜单
  • Js基础知识(一) - 变量
  • PAT A1017 优先队列
  • PV统计优化设计
  • Python打包系统简单入门
  • Python十分钟制作属于你自己的个性logo
  • react 代码优化(一) ——事件处理
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 二维平面内的碰撞检测【一】
  • 构建二叉树进行数值数组的去重及优化
  • 聊一聊前端的监控
  • 浏览器缓存机制分析
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 写给高年级小学生看的《Bash 指南》
  • 阿里云重庆大学大数据训练营落地分享
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • $$$$GB2312-80区位编码表$$$$
  • (02)vite环境变量配置
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (zt)最盛行的警世狂言(爆笑)
  • (八)Flask之app.route装饰器函数的参数
  • (八)Spring源码解析:Spring MVC
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)iOS字体
  • .net core 连接数据库,通过数据库生成Modell
  • .net 程序发生了一个不可捕获的异常
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @EventListener注解使用说明
  • @FeignClient注解,fallback和fallbackFactory
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [].slice.call()将类数组转化为真正的数组
  • [2016.7 test.5] T1