css强制数字换行符,检测浏览器/ css强制换行符中的换行符

如果您确实要格式化文本,就像在word-wrap:break-word; word-break:break-all;元素上设置了p一样(正如您在评论中所说的那样)并且每个结果行都转换为段落,那么您需要代码如下:逐个字符处理p元素,在给定宽度的字符上放置尽可能多的字符。超过时,构造一个新的p元素并继续其余的文本。您可以通过将字符写入不可见的内联块并检查其渲染宽度来完成此操作。

示例(请注意,只有当段落只包含文本,没有标记时,这才真正起作用):

I am some random text. I am Some text.blabla

var width = 60;

var p = document.getElementById('p');

var parent = p.parentNode;

var line = document.createElement('span');

line.style.display = 'inline-block';

line.style.visibility = 'hidden';

var content = p.innerHTML;

document.body.appendChild(line);

var start = 0;

var i = 1;

while(i < content.length) {

line.innerHTML = content.substring(start, i);

console.log(i + ' ' + content.length);

if(line.clientWidth > width) {

var newp = document.createElement('p');

newp.style.width = width + 'px';

newp.innerHTML = content.substring(start, i - 1);

parent.insertBefore(newp, p);

start = i - 1;

i = start + 1;

}

else {

i++;

}

}

newp = document.createElement('p');

newp.style.width = width + 'px';

newp.innerHTML = content.substring(start);

parent.insertBefore(newp, p);

parent.removeChild(p);

我很确定你应该采用一种完全不同的方法,但我无法解决你试图解决的最终问题,因为它没有被描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值