Skip to content
文章目录

white-space-nowrap撑出了滚动条但撑不开ul宽度

问题代码重现

问题描述

上面的代码实现了一个左右布局的主体页面,左侧内容的 li 设置了white-space:nowrap,目的是使文字不换行,如果文字很多超过了父容器的宽度,那就会出现横向滚动条。

以上都还是符合预期的,不符合预期的是white-space:nowrap撑出了横向滚动条,但却没能撑开liul的宽度,导致ul的宽度始终是没出现滚动条时的宽度,由于li的宽度继承自ul, 所以li的宽度也被限制在了没有横向滚动条时的宽度. 由于对li加了border-bottom: 1px solid #333;,此时就会发现这条黑色的下划线没有像预期中的充满整个宽度.

如何解决?

方案一: display: inline-block + min-width:100% + min-height:100%

方案二: 设置ul的min-width: max-content

两种方案如何选择哪个?

从 can i use 网站看min-height, min-width的兼容性是强于max-content的,从这点看个人更倾向使用方案一,但方案二明显又更简单,所以,如果在实际项目中可以忽略兼容问题,那优先采用方案二,如果兼容问题无法避免,那就采用方案一

min-height 兼容性

min-width 兼容性

max-conetnt 兼容性