给 span 设置 float 会彻底改变其行为:它可设宽高、脱离文档流并浮动排列,但引发父容器塌陷和文本环绕;现代布局更推荐 flex 或 grid。
给 span 设置 float 会彻底改变它的行为:它不再受行内元素限制,能设置宽高、脱离文档流、参与浮动排列,但同时会引发父容器塌陷和文本环绕等连锁反应。
span 默认是行内元素,不能直接设 width 和 height,内容多宽就多宽。一旦加了 float: left 或 right,它就“升级”为可布局的浮动元素:
span 可以并排(只要父容器有足够空间)浮动元素会从标准文档流中“抽身”,父元素如果全靠浮动子元素撑开,就会失去高度,视觉上像“塌了”:
div 里只放一个 float: left 的 span,父容器高度可能变成 0
clear: both)、overflow: hidden 或现代方案(display: flow-root)来重建 BFCdisplay: inline-block 或 vertical-align 无法解决塌陷问题虽然 span 自己“飘起来”了,但它仍保留在文本流中——文字会自动绕开它,形成环绕效果:
span 左侧时,后续段落文字会从右侧开始流动,绕过它底部
面紧跟其他内联元素(如另一个 span 或文字),它们会尝试贴着浮动元素边缘排列div)则可能被遮盖或错位,需额外处理浮动本意是图文环绕,不是做整体布局。现在用 float 控制 span 多数属于“绕弯路”:
display: inline-block 或 display: flex
float,但建议搭配 shape-outside 精细控制轮廓flex 或 grid,语义清晰且无塌陷烦恼