我有一个从github api模块发回的字符串,其格式如下:
Added debug mode for developers
Simply add the class DEBUG to the body and you'll notice little boxes
scattered throughout your site attached to each grid item.
我想知道是否有一个css选项来清除这些行,因为浏览器会像这样读取上述内容:
Added debug mode for developers Simply add the class DEBUG to the body and you'll notice little boxes
scattered throughout your site attached to each grid item.
我真的不想用javacsript拆分字符串,但如果我必须,我想我会:)
我已经尝试了word-break:break-word;
但是这只是为没有空格的更长字符串分割线条。
我也试过white-space: nowrap;
然而这实际上并没有包装。
如果我控制台记录数据,chrome在“开发者”这个词之后有两个↵
个字符,这是导致换行的原因,这些可以通过javascript选择吗?
任何帮助都会很棒!
答案 0 :(得分:5)
你的问题有点不清楚,但我假设你想保留字符串中包含的换行符 - 而不是浏览器默认完全忽略它们。
您需要pre
属性的white-space
选项之一。
/* Display text exactly as entered */
white-space: pre;
/* Display as entered, plus extra linebreaks as needed for long lines */
white-space: pre-wrap;
/* Display newlines as entered, plus extra linebreaks as needed for long lines */
white-space: pre-line;
关于差异的一些注释:
pre
相当于将整个内容包装在<pre>
标记中。
pre
和pre-wrap
之间的区别在于是否会根据需要为长行添加额外的换行符。
pre-wrap
和pre-line
之间的区别在于是保留所有空格(包括空格)还是仅保留换行符。
pre-line
等同于用<br>
标记替换所有换行符。
您可以在此处查看不同风格的比较:http://jsfiddle.net/Gcexh/
您遇到的另一个问题是,当您可能不一定要在那里进行换行时,您在输入的最后两行之间有换行符。
您可以通过删除任何单个换行符来解决这个问题,并且只保留双重换行符,例如分隔前两行的换行符。
理想情况下,这可以在服务器端完成,但也可以在这样的javascript中完成:
(感谢@JanDvorak):
text = text.replace(/(\n\s*\n)|\n/g, "$1 ")
答案 1 :(得分:0)
我认为没有办法用css做到这一点。 javascript方式:
var myStr = "Your multiline\n\nstring...";
for (;;)
{
if (myStr.indexOf("\n") != -1)
myStr = myStr.replace("\n", " ");
else
break;
}