HTML <pre> 标签添加了额外的换行符

标签 html

HTML 标记

 在文本的顶部和底部添加换行符。

所以:

<pre>Text line     1</pre>
<pre>Text line     2</pre>

显示为:

Line     1

Line     2

有没有办法让它在 HTML 标签本身而不是通过 CSS 中只考虑空格而不换行?

最佳答案

这不是 pre 之间的换行符s,而是浏览器的 native 样式表的性质。例如,Chrome 设置 pre格式化文本的顶部和底部边距为 1em。

所以要删除边距,您应该添加:

pre { margin: 0; }

可能还有其他浏览器不强制使用默认的 1em 顶部/底部边距。但是,最好的办法是手动设置边距以获得一致的跨浏览器外观。或者更好的是,使用 CSS 重置覆盖所有浏览器的 native CSS 样式。

(作为记录,Google Chrome 浏览器的 pre 标签的 native 样式表规则):

pre, xmp, plaintext, listing {
    display: block;
    font-family: monospace;
    white-space: pre;
    margin: 1em 0px; /* here's the reason you get the "line break" */
}

关于HTML <pre> 标签添加了额外的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375875/

相关文章:

Javascript:如何获取此图像数据

jquery - 我有两个日期选择器往返我想将明年设置为日期选择器

html - ltr 后的 css rtl 不适用于 chrome

jquery 如果在 <li> 内单击链接,则父链接第一次在 iPhone 上不起作用

CSS 导航对齐

html - 响应式布局中 ul 的垂直对齐

javascript - 如何检查一个类是否有某个符号,如果有,则用它做一些事情?

html - 为什么元素永远不会去我想去的地方?

javascript - OSX 10.7 $(window).width() 返回错误值

windows - Chrome 窗口中未显示卢比图标