CSS:浮动

浮动盒子(float)可以设置为向左或向右,即一直向左或向右移动,直到碰到父级边缘或另一个浮动盒子。设置为浮动的元素宽度会收缩为适应其内容的最小宽度,除非手动设置宽度(width/min-width/max-width)。

浮动元素会脱离文档流,不会影响其他元素,但是其他元素中的文本内容会在排布时避开浮动元素,造成文本围绕浮动盒子的效果,据说这也是引入浮动元素的初衷。

想阻止其他元素包围在浮动元素周围,需要添加clear属性。图中图片浮动在右侧,粉色按钮包围浮动元素导致箭头不局中。


1.png

给粉色布局添加clear:right后,让出了浮动元素的位置,箭头居中。


2.png

需要注意的是的,添加了clear后,实际上是给粉色按钮部分添加了一个上边距,使其移动到浮动元素下方,这个时候如果想给粉色部分添加上边距,除非给定的值超过了clear属性带来的值,否则没什么效果。

总结一下浮动元素会导致后面的行盒子缩短,从而造成文本环绕效果,此外不会对周围元素有任何影响。

还有一种情况,假如我这里没有数据了,更多按钮也不显示了(没有清除浮动效果了),效果就会变成:


3.png

设置了浮动的图片脱离了文档流,包裹它的布局无法生成对应的高度,此时由于没有其他数据,也无法使用clear来创造足够的垂直外边距作为浮动元素的空间。

可以在布局里添加一个空标签,然后在空标签上清除浮动,不过这样出现一个多余标签会逼死心灵洁癖。

或者可以为添加伪元素解决:

.wrap:after{
  content: '';
  display: block;
  clear: right;
}

可以模拟额外的清除元素,同时也不避免加额外的元素。


image.png

参考《精通CSS:高级Web标准解决方案》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素脱离文档流,当一个元素设置成浮...
    小囧兔阅读 1,697评论 0 0
  • 1. 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素会脱离文档流,不占据原来...
    饥人谷_Jack阅读 3,818评论 0 1
  • 自我总结: 浮动是实现布局的一种常见方式 浮动脱离普通文档流,即页面渲染时,盒模型按标准会将父元素所设置的属性将页...
    饥人谷_远方阅读 3,192评论 0 0
  • 浮动元素的特征 元素在浮动后不会独占一行。 元素在浮动后会脱离文档流 行内元素在浮动后会可以设置宽和高 1.在父元...
    赵BW阅读 1,720评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,750评论 28 53

友情链接更多精彩内容