私は同じ問題にぶつかり、解決策を見つけるのに 1 時間以上費やしました。@Ficoの回答に同意し、追加情報でサポートしたいと思いました。
これを行う代わりに:
<pre><code>
My code snippet
Another line
</code></pre>
あなたはこれをしたい:
<pre><code> My code snippet
Another line
</code></pre>
最初の行のインデントには同じスペースを使用する必要があることに注意してください。
私は他のいくつかの「標準的なウェブサイト」を見ました。たとえば、StackOverflow は 内のコード スニペットに対してこれを行います<pre><code>
。Highlight.js ライブラリの公式デモ例も同じ規則を使用しています。これは HTML ソースでは少し見苦しく感じますが、経験則では、内部のコンテンツは要素<code>
と同じ行から開始する必要があるようです。<code>
@Marc Audet が提案した解決策にも問題があります。負の上部マージンを使用すると、ボーダーがある場合 (または将来それを配置する場合) に上書きされます。
JavaScript を少しだけ使用する場合は、おそらく回避策があります。<pre><code>
基本的に、これを使用するだけで内部のすべてのコンテンツをトリミングできます。
<script>
$( document ).ready(function() {
$(document.body).find("pre code").each(function() {
$(this).html($.trim($(this).html()));
});
});
</script>
ここでフィドルを見ることができます:http://jsbin.com/bayawazi/2/edit
JavaScript アプローチの利点は、<code>
要素を自由に配置できることです。また、ほとんどのコード スニペットでは、余分な行を削除することをお勧めします。