几个关于浮动的问题
老师您好,在学习完课程后自己进行尝试时遇到几个关于浮动的问题,希望能得到老师解答:
这是正常情况下的浮动效果,为了方便实验我将原本纯白的购物车图片换成了更加显眼的图片
这是index中的源代码,
这是css中的源代码
接下来是我的实验和问题:
1、将btn中的右浮动删掉,保留价格的左浮动,结果如图:

①为什么这里的背景框与图片发生了分离?
②这里的价格是左浮动效果,价格的右边还有很大的宽度,为什么图片不排列在价格的右边而是下面,就像之前举的文字环绕的例子一样?
③虽然这样看起来价格的右边空无一物,但是鼠标放上去还是有手指的箭头,也就是这里空白区域还是存在超链接,但是看源代码,<a>的范围仅限于图片,而且图片与背景的高度宽度都是有明确的规定,为什么这个超链接的范围会扩展到这么广呢?
2、将价格的左浮动删掉,保留btn的右浮动,结果如图:

为什么btn不排列在价格的右边呢?使用浮动后,脱离文档流,不是就不遵循块状元素的排列规则了么?而且不管怎么设置价格的宽度,btn都如上图所示排列,不会发生变化
最后一个问题是,浮动是不是永远都不会与其他元素产生重叠,不管是左浮动还是右浮动,只要相关位置已有其他元素,都会默认让位进行排列呢?
谢谢老师!
正在回答 回答被采纳积分+1
同学,你好。
1、脱离文本流和脱离文档流没有关系,浮动只是脱离了文档流,若没有设置btn的度度,则图片是在文字后边的,在一行显示,和文字环绕效果是类似的,只不是这是图片环绕文字
文字是属于文本流,还会占据应有的宽度,因此设置了宽度之后,图片会在文字下方
图片和文字之间有距离是因此图片设置了居中对齐,

2、都设置浮动之后,父元素的高度塌陷,是没有大小的,

3、btn对应的是div,浮动之后会脱离文档流,文字是属于文本流。
4、例子中只是价格所在div设置了浮动,图片的在div没有设置浮动,只是把width值调大了。同学可以看下截图中的代码和css都是有的,同学可以在本地根据代码实际操作一下,可以更好的理解
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
同学,你好。
问题一:
①②:背景与图片并没有分离,价格所在div设置了左浮动,会脱离文档流,但不会脱离文本流,文字属于文本流,btn所在div设置了宽度和高度,文字和图片加起来的宽度会大于实际宽度,因此图片会在下方显示。在去掉宽度和背景色之后,可以看到图片和文字会在一行显示

③选中a标签可以看到实际大小是300x30,和外层div大小是一致的,因此点击空白位置也是会有超链接的

问题二:
1、价格所在div是块级元素,即使设置了width也会占据一行显示,因此图片所在div不会与价格在一行显示
2、设置浮动后,会脱离文档流,后边的元素会向上移动,产生重叠的效果,但是文本流中的内容不会重叠
例:价格所在div设置浮动,设置具体宽度并添加背景颜色后,可以看到btn所在div向上移动,黄色背景会覆盖住红色背景


如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星