Html—让textarea标签中的内容原格式输出的两种办法

在没有使用编辑器而是使用了文本域<textarea>的情况下,用户所输入的内容呈现的效果并不理想,比如:原本的换行没有保留,全部成了单行显示。

要让在<textarea>中输入的内容原格式输出有一下两种办法:

方法一: 使用 <pre> 标签

使用<pre>标签是我最开始采用的办法,但是这种方法也有一定的缺陷,比如说我们在使用的编辑器的时候,换行、Tab、空格都会影响到输出结果。如图:

001.png

并且,<pre>标签本身自带得有一些样式,比如字体等。如果你的页面有引入bootstrap等css框架,那么受样式影响就更多了,你得再写去覆盖。

因此,这种方法并不推荐。

方法二:使用css white-space

我们先来看一下white-space的定义和属性:

white-space属性指定元素内的空白怎样处理。

其属性有:

normal —— 默认,空白会被浏览器忽略
pre ——空白会被浏览器保留。其行为方式类似HTML中的<pre>标签。
nowrap —— 文本不会换行,文本会在同一行继续,直到遇到<br />标签为止。
pre-warp —— 保留空白符序列,但正常进行换行。
pre-line —— 合并空白符序列,但保留换行符
inherit —— 规定应该从父元素继承 white-space 属性的值

也就是说,我们可以使用white-space:pre-warpwhite-space:pre-line达到我们想要的效果。

两者的区别是:

  • white-space:pre-warp输入多少空格都会输出的时候就带几个空格。
  • white-space:pre-line无论输入多少空格都会输出的时候就带几个空格,会合并为一个。

如图:

white-space:pre-warp效果如下:

002.png

white-space:pre-line效果如下:

003.png

因此,更推荐使用第二种方法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • space="nbsp" HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格(...
    写给猫阅读 1,633评论 0 1
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 2,065评论 1 4
  • white-space:处理空白符,该属性会影响源文档中空格、换行、tab字符的处理,影响浏览器处理字之间和文本行...
    Tenderness_egg阅读 620评论 0 0
  • 2016年12月10日,澳门一名赌徒被发现死于某赌城赌桌之上,左手五根手指齐断,心脏被子弹贯穿。警方立即封锁了现场...
    51dd6bfd5a05阅读 229评论 1 1
  • 一岁一寒暑,一年一春秋。星霜冷漠,岁月无情,木叶尽脱,寒霜再降,秋风正紧,北雁南飞。四季向来无意,不会因为任何...
    才華的泡麵阅读 464评论 0 10