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

为何<textarea>中white-space:normal属性未按预期生效?

解决textarea中white-space:normal不生效的问题

问题原因

你遇到的问题是因为Chrome等现代浏览器对<textarea>元素默认设置了white-space-collapse: preserve属性,这个CSS新属性的优先级高于传统的white-space属性,导致你设置的white-space: normal无法生效——white-space-collapse: preserve会强制保留所有空格、换行符等空白字符。

而你的<p>标签能正常合并空格,是因为浏览器没有给p标签设置这个默认的white-space-collapse: preserve规则。

解决方案

给<textarea>明确添加white-space-collapse: collapse属性,就能让white-space: normal的合并空白效果正常工作。修改后的代码如下:

<div>
    <label style="display: block;" for="textarea6">white-space: normal</label>
    <textarea id="textarea6" name="textarea6" rows="5" cols="33" style="white-space: normal; white-space-collapse: collapse;">j jj  jjj </textarea>
    <p style="white-space: normal;">j jj  jjj </p>
</div>

补充说明

white-space-collapse是CSS Text Module Level 4新增的属性,用来单独控制空白字符的折叠规则,它的优先级高于white-space(因为white-space是包含空白折叠、换行处理等的复合属性)。当你同时设置white-space: normal和white-space-collapse: collapse时,空白字符会按照预期合并为单个空格,同时文本会自动换行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:02:41