我设计了一个响应式的页面布局,可以很好地适应较小的屏幕,但是当我添加一个代码块(并使用 prism.js 对其进行格式化)时,响应性中断了。代码框和文本内容都溢出了设备的宽度,您必须来回滚动。理想情况下,代码块应该有自己的滚动条来查看代码,但内容仍然会适应。我尝试过使用包含内容的 flexbox 的不同属性,但它仍然会破坏布局。
为了缩小范围,我将页面精简为:
<!DOCTYPE html>
<head>
<link rel='stylesheet' href='page.css' />
<link href="./external/prism.css" rel="stylesheet" />
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0' />
</head>
<body>
<script src="./external/prism.js"></script>
<div class="article-container">
<article>
<h1 class="title">Test</h1>
<p>Dolorem neque quiquia dolor. Est dolor dolor dolorem adipisci consectetur. Adipisci ipsum velit dolore
consectetur quisquam eius. Non velit est ipsum adipisci adipisci quaerat.</p>
<pre><code class="language-python">def some_code(file_name):
with open("some_path/" + file_name + ".md", "r", encoding="utf-8") as input_file:
return input_file.read()
</code></pre>
</article>
</div>
</body>
</html>
page.css 包含:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.article-container {
width: 100%;
display: flex;
justify-content: center;
}
article {
width: 800px;
}
如果我同时注释掉 .article-container 和 article 页面调整得很好,但如果其中任何一个存在,它就会中断。此外,如果我保留 CSS 原样并注释掉代码块,它是响应式的。
任何关于这些组件如何交互的类型都将不胜感激,谢谢!
编辑:澄清一下,当响应式设计不起作用时,页面宽度不适应屏幕尺寸。请参阅下面的屏幕截图:
没有 CSS的移动设备看起来如何 - 代码框按应有的方式滚动,但页面的其余部分会适应
请注意,2 也是使用 CSS 和没有代码块时网站的外观。所以关于他们互动方式的一些事情正在打破。