知识点:
1.浮动塌陷的概念
2.浮动塌陷的解决
1:浮动塌陷的概念

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>浮动塌陷的出现</title><!--第2步:设计CSS样式;div:块状元素;特征:独占1行;float:left;含义;向左看齐;浮动塌陷:父容器没有设置高度;子容器设置浮动,则子容器会脱离父容器的管理。--><style>#father{border:1px solid #f00;}div#son1{width:200px;background-color: aquamarine;float:left;}div#son2{width:200px;background-color: blanchedalmond;float: left;}</style></head><body><!--这是第1步,设计html网页--><div id="father"><!--父容器--><div id="son1">子容器一</div><div id="son2">子容器二</div></div></body>
</html>

2.常见布局

总结:

布局,大致的页面框架,盒子结构图。综合使用标准流、浮动。1.左右2.三栏3.通栏

通栏设计

         碰到白底的,先设计成其他色底部或加有色边框

技巧:

1.先标准流定父位置,浮动定子元素位置。

2.浮动影响后面的标准流,不影响前面的标准流。

3.浮动塌陷

1.原因

浮动的子元素,脱离标准文档流。

2.为什么要清除浮动

2.1 父级没高度

2.2 子盒子浮动

2.3影响布局,清除浮动

3.方法:

3.1 额外标签法

设置clear属性,下面为4个值;

  • none: 允许两边都可以有浮动对象

  • both: 不允许有浮动对象

  • left: 不允许左边有浮动对象

  • right: 不允许右边有浮动对象

    一般用clear:both,空标签必须是块级元素或br

思考?

问题:

  会在元素末尾,增加一个额外的标签(空div或br),我们前端设计人员看到这个额外标签的时候会发现

无内容,默认可能会删除。导致出现塌陷。这个是W3C推荐,但是我们不推荐用。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#father {border: 1px solid #0f0;}img {width: 150px;}#father div:nth-child(1),#father div:nth-child(3) {border: 1px dotted blue;float: left;/* height: 80px; */}#father div:nth-child(2) {border: 1px solid yellow;float: right;height: 100px;}/* 设置空的div */#father div:last-child {/* clear: none;  相当于,我没有解决浮动塌陷 *//* width: 100%; *//* border: 1px solid purple; *//* float: right; *//* clear: left; *//*不允许左边有浮动塌陷;*//* clear: right;  不允许右边有浮动塌陷 *//* clear: both;  清除左边和右边的浮动塌陷 */clear: both;}</style>
</head><body><!-- 额外标签:额外的div或br --><div id="father"><div><img src="img/1.jpg" alt=""></div><div><img src="img/2.jpg" alt=""></div><div><img src="img/3.jpg" alt=""></div><div></div></div>
</body></html>

3.2 父级元素修饰法

子不教,父之过:

父元素进行

 overflow:autohidden scroll
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#fu {border: 1px solid #f00;/* 在父元素,增加限定的修饰 *//* auto:当子元素显示不全的时候,会出现滚动条,让下面的滚动显示. *//* overflow: auto; *//* hidden:只显示部分字体内容 *//* overflow: hidden; *//* 滚动模式:横 纵滚动条,现在只有纵向可以动; */overflow: scroll;}#fu div {width: 80px;height: 80px;background-color: red;margin-left: 10px;float: left;}</style>
</head><body><div id="fu"><div>儿子1<!-- <p>设置或检索是否显示对象。与display属性不同,此属性为隐藏的对象保留其占据的物理空间如果希望对象为可视,其父对象也必须是可视的。对应的脚本特性为visibility。</p> --></div><div>儿子2</div></div>
</body></html>

3.3 父级添加after伪类法

        .clear:after {content: "";display: block;height: 0;clear: both;visibility: hidden;}.clear {    父级元素;*zoom: 1;/*为了兼容老式IE6 7*/}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#fu {border: 1px solid #00f;}#fu>div {width: 80px;height: 80px;margin-left: 5px;background-color: gray;float: left;}/* 父级元素伪类法:将第一种方式,结合伪类来做了操作;父级元素,下面有个伪类,after;表示父级元素的后面这种方式用的比较多,可以多加练习。*/#fu:after {/* content:内容 */content: "";/* 块显示 */display: block;/* 设置高度为0,就不在父级元素了,相当于类似空的标签 */height: 0;/* 清除浮动 */clear: both;/* visibility: hidden; */visibility: hidden;}</style>
</head><body><div id="fu" class="clear"><div>1</div><div>2</div></div><p>想到了吗???</p>
</body></html>

3.4 父级添加双伪元素法

.clearFix::after,.clearFix::before {content: '.';line-height: 0;font-size: 0;height: 0;display: block;clear: both;}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#fu {border: 1px solid #0f0f0f;}#fu>div {width: 80px;height: 80px;margin-left: 10px;background-color: wheat;float: left;}/*  伪元素选择器+父元素,有的厂商,mi 用这个;会兼容到之前低版本的浏览器.IE版本,上没有实现;换一种方式,来处理一下;*/#fu::after,#fu::before {content: '.';line-height: 0;font-size: 0;height: 0;display: block;clear: both;}</style>
</head><body><div id="fu"><div></div><div></div></div>
</body></html>

零基础学前端开发技术之第七章 浮动塌陷相关推荐

  1. java开发技术有什么意义,零基础学Java开发技术有哪些优势和好处?

    零基础学Java开发技术有哪些优势和好处?Java开发技术有下列优势:Java编程语言简单.面向对象集中于对象及其接口.分布式处理TCP/IP协议.鲁棒性.安全性.体系结构中立性.可移植性.解释执行. ...

  2. 年过四十、零基础学前端开发,歪果仁是如何从教师转行程序员的?

    也许你已经清楚了自己的兴趣之所在,但是却没有勇气开始它,或者为自己找了种种借口,按下心中的渴望.但任何时候开始自己感兴趣的东西都不算晚,本文作者过去只是一名老师,对编程怀有好奇和热爱,年过40依然毅然 ...

  3. 零基础学前端开发培训

    零基础如何入门前端技术呢,前端三件套(HTML+CSS+JavaScript)想来对前端有兴趣的同学应该都知道吧,俗话说的好基础不牢地动山摇. 想要学好前端对它们的学习可不能落下,学习方法和学习环境无 ...

  4. 零基础学前端系列教程 | 和前端谈恋爱的第003天——电影海报

    温馨提示:被[]包裹的是专有名词,详细介绍见下文的恋爱宝典,你可以在目录中快速找到它们,有任何问题/建议,欢迎随时微信我,我是朝阳 13908056224! 约会邀请函已经做好了,但迟迟没有发出去 零 ...

  5. 零基础学ios开发培训要培训多久

    零基础学ios开发培训要培训多久     想参加ios开发培训,不知道ios开发培训需要多长时间能学会呢?零基础学ios培训要培训多久?学完IOS技术课程后是否可以快速找到高薪工作,一系列的问题都是菜 ...

  6. 一期完结《一篇文章让你从HTML零基础入门前端开发》12.28

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VRcXH9FM-1672214813897)(./assets/%E7%8E%84%E5%AD%90Shaer-%E4% ...

  7. 零基础学前端系列教程 | 和前端谈恋爱的第006天——了解喜好

    温馨提示:被[]包裹的是专有名词,详细介绍见下文的恋爱宝典,你可以在目录中快速找到它们,有任何问题/建议,欢迎随时微信我,我是朝阳 13908056224! 这是姐姐传授给我的恋爱秘籍 -- 投其所好 ...

  8. 零基础的前端开发初学者应如何系统地学习?前端技能汇总 Frontend Knowledge Structure

    本文转自 张帅 于知乎<零基础的前端开发初学者应如何系统地学习?>中的回答. 知乎原文:https://www.zhihu.com/question/19834302 GitHub项目:前 ...

  9. 我是如何零基础入门前端开发的(2021 版)

    大家好,我是若川.最近组织了源码共读活动<1个月,200+人,一起读了4周源码>,已经有超50+人提交了笔记,群里已经有超1200人,感兴趣的可以点此链接扫码加我微信 ruochuan12 ...

最新文章

  1. ADB常用命令简洁版整理
  2. springboot springcloud 热部署
  3. php header
  4. Leetcode5635. 构建字典序最大的可行序列[C++题解]:dfs暴搜
  5. 成功解决AttributeError: module 'tensorflow.python.training.training' has no attribute 'SummaryWriter'
  6. 科大星云诗社动态20210118
  7. QT实现统计历年的太阳黑子数
  8. 微信小程序获取用户信息以及唯一openid
  9. 您访问的网页出错了! 网络连接异常、网站服务器失去响应_数据分析系列——静态网页爬虫进阶(requests)...
  10. ASP.NET WebAPI 中的参数绑定
  11. 六种常用的物联网通信协议
  12. 只有设置了 name 属性的表单元素才能在提交表单时传递它们的值
  13. 云图说丨不同区块链之间如何跨链交互?
  14. php程序yii是什么意思,yii是啥意思?
  15. 对php程序的理解,小魏谈对于php程序的理解
  16. windows虚拟显示器开发(二)WDDM hook(USB转HDMI驱动、USB手写屏开发)
  17. 小米笔记本怎么恢复出厂的系统
  18. python中ascii函数_ascii函数
  19. 黑马程序员——网络编程的应用
  20. w ndows无法完成格式化,windows无法完成格式化怎么办【图文教程】

热门文章

  1. JDK10的新特性:var和匿名类
  2. python生物数据分析师职业技能_数据分析行业各个职业需要的技能是什么?
  3. Intellij 14快捷键
  4. 阿里云原生数据库:POLARDB
  5. 1032 挖掘机技术哪家强 (20分)——15行代码AC
  6. 【详解】以下关于TCP/IP协议栈中协议和层次的对应关系正确的是()
  7. [leetcode] 142.环形链表2
  8. linux启动后分区数据变化,求助!我删除了Linux启动分区
  9. windows7 docker mysql_DOCKER windows 7 详细安装教程
  10. 64位jdk连接32位的mysql_在64位客户端使用32位的ODBC配置