左右两栏布局,右栏设置了 flex: 1。右栏里有一段很长的链接(或者一个宽表格)时,右栏会超出容器,把整个页面撑出横向滚动条。不是应该占据剩余空间吗?
1 个回答
Mores小栋博客!原因在于 flex 子元素的
min-width默认值是auto:子元素不会收缩到比它内容的最小宽度更窄。一段没有空格的长链接,最小宽度就是它的整个长度,于是flex: 1也压不住它。给这个子元素加上
min-width: 0就行:CSS.main { flex: 1; min-width: 0; }然后再按内容决定怎么处理溢出:
- 长链接、长单词:
overflow-wrap: anywhere;允许在任意位置换行。 - 表格、代码块:外面包一层
overflow-x: auto的容器,让它在自己的区域里横向滚动。
grid 布局里也有同样的现象:
1fr的最小值同样是auto。把列写成minmax(0, 1fr)就能解决。- 长链接、长单词:
正在读取登录状态…
暂无讨论,说说你的看法吧