The HTML5 documentation recommends putting the code element inside the pre element, but I don't understand how this is better or more semantic than just using the code element and CSS. In their own example:
<pre><code class="language-pascal">var i: Integer;
begin
i := 1;
end.</code></pre>
Could also be written (Making some assumptions about the browser's defaults for pre):
<style>
code {
display: block;
white-space: pre;
}
</style>
…
<code class="language-pascal">var i: Integer;
begin
i := 1;
end.</code>
Even if the pre is there to distinguish a code block from an inline string of code, I don't see it being a more semantic choice than specifying the block-ness of the code in a class.
Is there a specific reason the pre is recommended over a CSS solution?