如何调整hover状态tooltip提示框高度并实现多行文本显示?
tooltip多行显示适配方案
你当前的tooltip无法展示多行文本是因为CSS中设置了强制单行截断的规则,按以下步骤调整即可实现自适应多行效果,高度会随内容自动撑开。

核心修改点
修改[tooltip]::after对应的CSS规则:
- 删除
white-space: nowrap:解除强制不换行限制 - 删除
overflow: hidden:取消内容超出隐藏逻辑 - 删除
text-overflow: ellipsis:取消超出截断显示省略号的设置 - 调整
line-height为1.5:提升多行文本的可读性,避免文字拥挤 - 可按需添加
min-height属性自定义最小高度,无特殊需求时高度会自动适配内容行数
完整修改后的CSS代码
[tooltip] { position: relative; } [tooltip]::before, [tooltip]::after { text-transform: none; font-size: .9em; line-height: 1.5; /* 调整行高适配多行 */ user-select: none; pointer-events: none; position: absolute; display: none; opacity: 0; } [tooltip]::before { content: ''; border: 5px solid transparent; z-index: 1001; } [tooltip]::after { content: attr(tooltip); font-family: Domine; min-width: 3em; max-width: 21em; padding: 1ch 1.5ch; border-radius: .3ch; box-shadow: 0 1em 2em -.5em rgba(0, 0, 0, 0.35); background: #333; color: #fff; z-index: 1000; } [tooltip]:hover::before, [tooltip]:hover::after { display: block; } [tooltip='']::before, [tooltip='']::after { display: none !important; } [tooltip][flow^="right"]::before { top: 50%; border-left-width: 0; border-right-color: #333; right: calc(0em - 5px); transform: translate(.5em, -50%); } [tooltip][flow^="right"]::after { top: 50%; left: calc(100% + 5px); transform: translate(.5em, -50%); } @keyframes tooltips-vert { to { opacity: .9; transform: translate(-50%, 0); } } @keyframes tooltips-horz { to { opacity: .9; transform: translate(0, -50%); } } [tooltip]:not([flow]):hover::before, [tooltip]:not([flow]):hover::after { animation: tooltips-vert 300ms ease-out forwards; } [tooltip][flow^="right"]:hover::before, [tooltip][flow^="right"]::after { animation: tooltips-horz 300ms ease-out forwards; }
HTML代码无需调整即可生效。如果需要手动控制提示框高度,可在[tooltip]::after规则中添加min-height: 自定义值或者height: 自定义值属性即可。
内容的提问来源于stack exchange,提问作者Sahib Yar
相关产品推荐
相关产品推荐

