You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS :before伪元素attr(title)换行失效,如何实现内容换行?

解决CSS :before伪元素调用title属性内容的换行问题

问题原因

HTML属性中的换行符(包括输入时的换行、\n、\r)在CSS通过attr()读取时会被解析为空格,导致换行无法生效。

可行解决方案

方案1:修改title属性内容+添加CSS样式

将title里的换行替换为HTML换行实体
,同时给伪元素设置white-space: pre-wrap;样式,让浏览器识别并渲染换行:

修改后的CSS代码

.question:hover::before {
    content: attr(title);
    position: absolute;
    width: 200px;
    background-color:#000;
    color:#fff;
    white-space: pre-wrap; /* 核心样式,保留换行并允许自动换行 */
}

修改后的HTML代码

<p class="question" title="first line&#10;second line&#10;third line">?</p>

方案2:使用自定义数据属性替代title

如果不想修改title属性(避免影响原生浏览器的title提示),可以改用自定义数据属性(比如data-tooltip),同样配合white-space: pre-wrap;:

CSS代码

.question:hover::before {
    content: attr(data-tooltip);
    position: absolute;
    width: 200px;
    background-color:#000;
    color:#fff;
    white-space: pre-wrap;
}

HTML代码

<p class="question" data-tooltip="first line
second line
third line">?</p>

原理说明

white-space: pre-wrap;的作用是保留文本中的换行符,同时当内容超出容器宽度时会自动换行,既实现了换行需求,又保证了内容的排版合理性。

内容的提问来源于stack exchange,提问作者Burak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:25:28