问题是我的python语法突出显示脚本使用
<pre>
标记来保留制表符/空格,这在python中非常重要。但是,由于某些不清楚的原因,CMS删除了<pre>
标签。管理员告诉我,我应该使用<div>
而不是<pre>
。您能帮我设计一个<div>
样式以保持白空间格式吗? #1 楼
您可以使用CSSwhite-space
规则来做到这一点:div
{
font-family: "Courier New", monospace;
white-space: pre;
}
该规则中包含的字体使每个字符具有相同的宽度,这与
<pre>
标记中的文本的通用格式相同。 请记住,这会使所有
<div>
标签都具有这种行为。理想情况下,您将为这些<div>
标记分配一个类,以仅影响要模拟<pre>
的那些标记。就像这样:div.code
{
font-family: "Courier New", monospace;
white-space: pre;
}
或者,更好的是,如果CMS没有剥离
<code>
标记,请使用它。它的作用类似于<pre>
标记,但在语义上对于显示代码是正确的。评论
+1表示
和语义。请注意,默认情况下会包装空格,因此您也必须为其分配white-space:nowrap。 也是一个块元素,其中是内联的;因此,要模仿,应指定display:block。
–贾里·凯纳嫩(JariKeinänen)
2011年7月9日在13:49
省略“ Courier New”,默认字体与您的浏览器的pre更紧密匹配。
–access_granted
17年4月19日在17:45
#2 楼
若要将DIV
格式化为PRE
,则white-space: pre;
需要DIV
。此外,您应该使用第一个答案中所述的等宽字体。解决方案
white-space: nowrap;
不正确,因为它不显示选项卡,并且仍然会折叠多个空格(@John Conde)。 > nowrap
:指定nowrap可确保
空格序列会折叠成单个空格字符,但
换行符会被抑制。
pre
:指定pre可确保空白序列
不折叠。行
仅在标记中的新行处断开(或在
生成的内容中出现“ \ a”)。
来自:http:// reference.sitepoint.com/css/white-space
评论
您对空格的值应该是pre而不是nowrap表示正确。我已经纠正了我的答案。
–John Conde♦
2011年7月9日15:46
评论
John的回答对于所提出的特定问题很好,尽管这确实会使您内容的语义有所降低。关于CMS剥离pre标签,某些应用程序具有一个设置,该设置指定内容中允许使用的HTML。如果您发布了许多预格式化的文本,可能值得要求管理员考虑调整它是否适用于您的应用程序,而不是告诉您(坦率地)使用任意变通办法。