【发布时间】:2011-05-13 03:25:40
【问题描述】:
我正在使用 CSS(通过 JQuery,但与此问题无关)来突出显示 HTML 文件中的某些元素:我正在使用“pre”标签来分隔文件中的逻辑元素,但我注意到“ pre" 标签似乎在元素之间留下换行符。
我可以使用 CSS 摆脱这些吗?
(或者我应该用什么来代替“pre”标签?文本元素本身可能包含 HTML 元素:应该 not 呈现,并且应该按字面意思显示为源代码:因此我的带有“pre”标签的初始选择)
这是我正在使用的 HTML 示例:(此示例需要 http://docs.jquery.com/Downloading_jQuery)
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js">
</script>
</head>
<body>
<pre class="error">
This is an error line.
stack.trace.blah.blah
more.blah.blah
yadda.yadda.blah</pre>
<pre class="ok">
this is not an error line.it contains html
<html><head></head><body>hello</body></html></pre>
<pre class="error">
This is an error line.
stack.trace.blah.blah
more.blah.blah
yadda.yadda.blah</pre>
<pre class="ok">
<script type="text/javascript">
$("pre.error").css({"background-color":"red","color":"white","display":"block","padding":"0", "margin":"0"});
</script>
</body>
</html>
我使用的是 Firefox 3.6.12。 这就是上面代码的结果:
这是我想要的模拟输出(切换到黄色,只是因为我使用我的 vim 编辑器,假装它是红色的!)
解决方案:
是对所有 PRE 标签使用 'display:inline'。 (以前我只是将 'display:inline' 应用于上面示例中的 'error' 标签,而忘记对 'ok' pre 标签做同样的事情。
【问题讨论】:
-
我不完全确定你现在想要实现什么。你想有换行符而没有换行符吗?也许这有助于模拟您的预期输出。
-
啊,我明白了。 Sotiris 设置边距和填充的建议在这种情况下肯定应该起作用,所以我怀疑有什么东西会覆盖边距/填充 - 可能是某处的行高,甚至是 CSS 中其他地方的更具体的边距。你有安装 Firebug 吗?它可以让您突出显示 pre 标签并调查您的布局是否存在流氓边距。
-
我在这里得到了我一直在寻找的答案,但令人着迷的是,每个回答的人似乎都回答了与所有其他答案完全不同的问题。答案涉及块级与内联元素、实体转义、CSS 空白处理、删除边距和填充——它们都是对不同问题的不同答案。真的只是一个观察。
标签: html css newline line-breaks pre