我有一个 Sinatra 应用程序和一个方法
get '/page123' do
"string1\nstring2"
end
如果我去'/page123'
,我只会看到string1 string2
它们之间没有换行符的一串。
我如何将它们显示为
string1
string2
?
由于<br>
标签似乎对您不起作用,请尝试以下操作:
get '/page123' do
content_type 'text/plain'
"string1\nstring2"
end
如果您查看 HTML 的源代码,string1 string2
实际上将是string1\nstring2
,但正如预期的那样,\n
除了它的换行符和开始一个新行的效果外,它是一个换行符并且不可见。
浏览器会掩盖(AKA 忽略)嵌入的回车符,而是只尊重像<p>
and之类<br>
的标签,除非文本嵌入在<pre>
块内。尝试将以下内容复制到文本文件中并在浏览器中打开:
<html>
<body>
<pre>
string1
string2
</pre>
<p>string1<br>string2</p>
</body>
</html>
它们都将在不同的行上以不同的字体显示这两个词。两者都是在 HTML 中强制换行的有效方法。
了解浏览器显示 HTML 的方式对您很有帮助。他们不将其视为文本,因为它不是。HTML 是浏览器解释并使用标签作为关于如何呈现文本的说明的语言。