关于javascript:强制TEXTAREA元素换行的最优雅的方法,无论空白如何

Most elegant way to force a TEXTAREA element to line-wrap, *regardless* of whitespace

HTML Textarea元素仅在到达空格或制表符时才换行。没问题,直到用户键入足够足够的单词loooooooooooooooooooooooooooo为止。我正在寻找一种严格执行换行符的方法(例如:即使导致" loooooooooooo \\
ooooooooooong")。

alt


CSS设置word-wrap:break-wordtext-wrap:unrestricted似乎是CSS 3功能。祝您好运,找到在当前实现中执行此操作的方法。


  • quirksmode.org概述了各种方法。
  • 有一个相关的SO问题:"在HTML中,如何在破折号上断字?"
  • 在支持该功能的浏览器中,word-wrap: break-word也可能会产生所需的效果。

在textarea宽度大小处打破长字:

1)(对于现代浏览器:

1
textarea { word-break: break-all; }

2)为IE8兼容性添加:

1
textarea { -ms-word-break: break-all; }

https://msdn.microsoft.com/zh-cn/library/ms531184(v = vs.85).aspx

3)添加IE11兼容性hack:

Internet Explorer 11自动换行不起作用

1
2
3
@media all and (-ms-high-contrast:none) {
*::-ms-backdrop, textarea { white-space: pre; }
}

此代码可以在以下情况下正常工作:

-IE 11,Chrome 51,Firefox 46(Windows 7);

-IE 8,Chrome 49,Firefox 18(Windows Xp);

-Edge 12.10240,Opera 30(Windows 10);


至少有

支持非标准元素wbr

Firefox,http://developer.mozilla.org/En/HTML/Element

Internet Explorer,http://msdn.microsoft.com/zh-cn/library/ms535917(VS.85).aspx

和Opera。


最优雅的方法是使用wrap="soft"来package整个单词,或者使用wrap="hard"来按字符package,或者使用wrap="off"根本不package,尽管通常不需要最后一个wrap="off",因为浏览器会自动使用自动将其视为wrap="off"
示例:

1
<textarea name="tbox" cols="24" rows="4" wrap="soft"></textarea>

根据我的测试,当前浏览器中只有Firefox具有上述行为。因此,我猜您最好的选择是等待即将发布的Firefox 3.1解决您的问题:)


我测试了和技术。这三者在IE 7,Firefox 3和Chrome中都运行良好。

唯一没有破坏复制/粘贴的是标记。


推荐阅读

    linux粘贴换行命令?

    linux粘贴换行命令?,位置,系统,连续,工作,分析,命令,终端,快捷键,意思,滚轮,

    linux看用户信息命令?

    linux看用户信息命令?,系统,密码,信息,状态,软件,情况,命令,用户,网络,时间,l

    linux下删除用户命令?

    linux下删除用户命令?,系统,代码,邮箱,用户组,命令,用户,名称,管理,电脑,账

    用户id的linux命令?

    用户id的linux命令?,系统,密码,信息,联系方式,地址,位置,用户,命令,用户名,

    linux拷贝强制命令?

    linux拷贝强制命令?,数据,系统,标准,文件,命令,目录,设备,源文件,字节,目标,L

    linux使用命令的方法?

    linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,

    linux下换行的命令?

    linux下换行的命令?,系统,代码,命令,文件,字符,后面,继续,前面,选项,下面,Lin

    linux删除用户组命令?

    linux删除用户组命令?,管理,系统,密码,电脑,名称,用户,用户组,名字,信息,工

    linux下用户权限命令?

    linux下用户权限命令?,管理,系统,密码,地址,权限,时间,基础,信息,基本知识,

    linux登陆用户命令?

    linux登陆用户命令?,系统,工具,信息,地址,软件,工作,命令,数字,服务,名称,Lin

    linux用户名改名命令?

    linux用户名改名命令?,系统,密码,命令,代码,名称,用户名,用户,终端,主机名,

    linux用户分组命令?

    linux用户分组命令?,系统,命令,电脑,信息,时间,标准,资料,用户,文件,用户组,L

    linux命令改用户所属?

    linux命令改用户所属?,系统,文件,名称,用户组,命令,用户,名录,基本知识,所

    linux系统用户组命令?

    linux系统用户组命令?,系统,管理,密码,代码,用户组,用户,命令,邮箱,电脑,名

    linux命令可以换行吗?

    linux命令可以换行吗?,系统,代码,分行,情况,连续,命令,终端,文件,表示,程序,l

    linux用户管理的命令?

    linux用户管理的命令?,系统,管理,信息,地址,工作,用户,单位,基础,数据,命令,L

    linux用户退出命令行?

    linux用户退出命令行?,状态,档案,标准,系统,命令,文件,模式,编辑,指令,主机,l

    linux用户自定义命令?

    linux用户自定义命令?,系统,时间,标准,软件,项目,电脑,服务,工具,基本知识,

    linux用户组命令设置?

    linux用户组命令设置?,管理,系统,密码,代码,电脑,用户组,用户,软件,新增,命

    linux进入用户命令行?

    linux进入用户命令行?,系统,地址,工作,服务,信息,命令,首页,电脑,密码,终端,L