我有以下HTML:
<h2>Embed Code</h2>
<pre>
<code>
<script type="text/javascript">
var something = 'else';
</script>
</code>
</pre>
以下CSS:
h2 {
background:#1e7ca2;
font-weight: 100;
font-size: 1.25em;
padding: 10px 15px;
margin: 0;
color: white;
}
pre {
margin:0;
padding:0;
}
code {
margin: 0;
padding: 0 30px;
display: block;
background: #1d1f20;
color: #839496;
font-size: .85em;
line-height: 1.6em;
}
但h2
和pre
元素之间存在差距,我似乎无法摆脱这种差距。
您可以在此处查看问题:http://jsfiddle.net/gaby/k5V8U/
答案 0 :(得分:34)
<pre>
里面的内容也保留了空白......
如果您删除<pre>
和<code>
之间的空白
<pre><code>
和
</code></pre>
它得到修复..
演示答案 1 :(得分:5)
这是因为<pre>
保留了空格。您的<pre>
代码的开头和结尾都有空换行符。将其更改为以下内容:
<h2>Embed Code</h2>
<pre><code>
<script type="text/javascript">
var something = 'else';
</script>
</code></pre>
您可能还需要删除<code>
代码开头和结尾的换行符:
<h2>Embed Code</h2>
<pre><code><script type="text/javascript">
var something = 'else';
</script></code></pre>
希望有所帮助!
答案 2 :(得分:2)
你自己创造了这个差距。您指定的background-color
是<code>
的属性。通过在<pre>
元素中使用换行符,您实际创建一个新行<pre>
可以保留空白区域。您可能想要使用
<h2>Embed Code</h2>
<pre><code>
<script type="text/javascript">
var something = 'else';
</script></code></pre>
如果您希望保留“保证金”,但请填写<code>
使用
<h2>Embed Code</h2>
<pre><code>
<script type="text/javascript">
var something = 'else';
</script>
</code></pre>
答案 3 :(得分:0)
正如其他人提到的那样,您需要将<code>
元素放在与其中的内容相同的行上,因为<pre>
认为它是内容的开头。还有一个简单的基于JavaScript的解决方案,我在这个答案中发布了:https://stackoverflow.com/a/23001060/207661和基于负边距的解决方案,它也在同一个线程中。