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

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

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

方法一: 使用 <pre> 标签

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

image](9A256EF71A2D4BD9BBCCC06E1AF1D320)![image

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

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

方法二:使用css white-space

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

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

其属性有:

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

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

两者的区别是:

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

如图:

white-space:pre-wrap效果如下:
image](DBA57CFB67964A6BB530FD23FB16FC6E)![image

white-space:pre-line效果如下:
image](CD172B41EC6041F6A8006D68162AF0D1)![image

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值