CSS Tooltip设置max-width失效 解决white-space: nowrap换行冲突问题
问题原因
当前布局中tooltip-anchor设置了width: 0,其所有后代元素没有明确的宽度计算规则,导致内容宽度被父级0宽属性限制,取消white-space: nowrap后内容只能按最小宽度逐行折行,就会出现你提到的异常效果2。
修复方案
仅需调整CSS规则即可,无需修改HTML结构:
- 给
tooltip-positioner新增width: max-content属性,让它优先按内容的实际宽度计算自身尺寸,不受上层0宽容器的限制 - 保留
tooltip-content的max-width: 100px配置,同时移除white-space: nowrap即可
修改后的完整CSS代码如下:
helper { display: inline-block; position: relative; top: 30%; left:30%; padding: 10px; background: green; color: white; border-radius: 300px } tooltip { display: block; position: absolute; top: 0; right: 0; bottom: 0; left: 0; } tooltip:hover tooltip-anchor { display: block; } tooltip-anchor { display: none; position: absolute; top: 100%; left: 50%; width: 0; height: 0; } tooltip-container { display: block; position: absolute; } tooltip-positioner { display: block; position: relative; left: -50%; /* 新增的属性 */ width: max-content; } tooltip-content { display: block; padding: 10px; background: blue; color: white; max-width: 100px; }
兼容说明
如果需要兼容更低版本的浏览器,可以将width: max-content替换为min-width: fit-content,效果一致。
内容的提问来源于stack exchange,提问作者Daniel Birowsky Popeski
相关产品推荐
相关产品推荐

