2012-03-17 73 views
81

有什么办法通过CSS来模拟pre元素的显示吗?通过CSS预格式化文本显示元素

例如,我可以通过使用CSS规则保留这个div中的空白完整吗?

<div class="preformatted"> 

    Please procure the following items: 

    - Soup 
    - Jam 
    - Hyphens 
    - Cantaloupe 
</div> 

回答

126

使用white-space: pre可以保留空格的预先格式化,如pre元素所示。为了更进一步,还添加font-family: monospace,因为pre元素通常默认设置为等宽字体(例如,用于代码块)。

.preformatted { 
 
    font-family: monospace; 
 
    white-space: pre; 
 
}
<div class="preformatted"> 
 

 
    Please procure the following items: 
 

 
    - Soup 
 
    - Jam 
 
    - Hyphens 
 
    - Cantaloupe 
 
</div>

+0

我不认为包含'font-family'声明。 +1,为彻底=) – 2012-03-17 20:55:00

+4

虽然我在等待接受这个答案,你能解释'pre'和'pre-wrap'之间的区别吗?我假设'pre-wrap' ...包装? – 2012-03-17 20:57:24

+0

@GGG:是的。参见[比较](http://jsfiddle.net/BoltClock/2TA8g/1)。 – BoltClock 2012-03-17 21:00:00

9

是:

div.preformatted { 
    white-space: pre; 
    } 

参考:

+2

方形牛肉饼+1。 – 2012-03-17 20:53:45

28
.preformatted { 
    white-space: pre-wrap; 
} 

我觉得 “预包装” 是更好的。它可以帮助长时间排队。

+0

太棒了!这是方便的规则知道... – Shadow 2014-02-11 23:42:30

+0

这真棒。 – 2016-10-03 12:20:21

2

要订购<pre>您可以使用;

div.preformatted{ white-space: pre ; display: block; } 
+0

为什么你需要弄乱unicode-bidi?这似乎有点恳求。 – 2017-08-18 13:22:46

+1

我也有点奇怪!现在这已经很老了。我也不记得我是从哪里来的。可能来自https://www.w3.org/TR/CSS2/sample.html。由于我们现在不需要,因此更新了答案。 – 2017-08-19 05:57:22