html文本框部分字体变颜色,实现文本框内,部分字体颜色、字号等自定义

前言:最近产品提出一个新需求,要文本框的字体部分改变颜色、大小、换行等功能。在了解需求后,文本框input发现完全满足不了现需求,于是寻求其它解决方案。

给定字符串

let text = '这是一段正常的文字\r\n这是换行(这是提示的红色)\r\n这段文字为可编辑状态'

要实现的效果

4e7d3db9bf1f

方案一

当发现文本框满足不了需求时,我第一感觉时不想麻烦,虽然把每一段内容拆成单独的input标签也可实现但是工作量太大,太过麻烦。我的思路是利用盒子的属性contenteditable直接将内容丢进div。

let text = '这是一段正常的文字\r\n这是换行(这是提示的红色)\r\n这段文字为可编辑状态';

let dom = document.getElementById('text');

dom.innerHTML= text;

// 当编辑完成后 在取得div的内容就可以了

let resultText = document.getElementById('text').innerHTML;

console.log(resultText);

但是这样有一点满足不了,text文本中的\r\n识别不了

最终方案

既然div识别不了\r\n那就换个能识别的标签,完美解决。

 
 

let text = '这是一段正常的文字\r\n这是换行(这是提示的红色)\r\n这段文字为可编辑状态';

let dom = document.getElementById('text');

dom.innerHTML= text;

// 当编辑完成后 在取得div的内容就可以了

let resultText = document.getElementById('text').innerHTML;

console.log(resultText);

效果如下

4e7d3db9bf1f

完成任务~

如果有其它最优解,欢迎留言指教。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值