I found the problem and have a fix at the ready. All that's needed is to copy this code from the main theme's theme.js (which is what makes it work correctly) into the CN theme's theme.js (which doesn't exist currently):
// The purpose of this code is to fix the height of overflow: auto blocks, because some browsers can't figure it out for themselves.
function smf_codeBoxFix()
{
var codeFix = document.getElementsByTagName('code');
for (var i = codeFix.length - 1; i >= 0; i--)
{
if (is_webkit && codeFix[i].offsetHeight < 20)
codeFix[i].style.height = (codeFix[i].offsetHeight + 20) + 'px';
else if (is_ff && (codeFix[i].scrollWidth > codeFix[i].clientWidth || codeFix[i].clientWidth == 0))
codeFix[i].style.overflow = 'scroll';
else if ('currentStyle' in codeFix[i] && codeFix[i].currentStyle.overflow == 'auto' && (codeFix[i].currentStyle.height == '' || codeFix[i].currentStyle.height == 'auto') && (codeFix[i].scrollWidth > codeFix[i].clientWidth || codeFix[i].clientWidth == 0) && (codeFix[i].offsetHeight != 0))
codeFix[i].style.height = (codeFix[i].offsetHeight + 24) + 'px';
}
}
// Add a fix for code stuff?
if ((is_ie && !is_ie4) || is_webkit || is_ff)
addLoadEvent(smf_codeBoxFix);
As a temporary workaround, you can disable Javascript to fix the problem for yourself, since the bug is triggered by loading the preview retrieved using AJAX -- the non-Javascript preview functionality works perfectly. Alternatively, you can use a web browser that doesn't suffer from this problem, such as Firefox.
You're welcome.