39

简而言之:

在进行响应式网页设计时应该使用一个还是多个样式表?

详细地:

响应式设计中,您倾向于拥有一个主要的 CSS 块,然后在达到某些断点时调整布局的其他零碎部分。您可以通过以下两种方式之一来构建代码:

单一样式表

/* Main CSS */

@media only screen and (min-width: 480px) { /* CSS */ }
@media only screen and (min-width: 640px) { /* CSS */ }
@media only screen and (min-width: 800px) { /* CSS */ }

多个样式表

<link rel="stylesheet" media="screen" href="main.css">
<link rel="stylesheet" media="only screen and (min-width: 480px)" href="480.css">
<link rel="stylesheet" media="only screen and (min-width: 640px)" href="640.css">
<link rel="stylesheet" media="only screen and (min-width: 800px)" href="800.css">

似乎使用一个样式表会减少 HTTP 请求的数量,但是您将拥有一个更大的文件,其中包含某些客户端可能不会使用的代码。多个样式表似乎可以减小文件大小,但是您有更多的 HTTP 请求。

您应该何时选择每种方法?在实践中,HTTP 请求数量和文件大小的优缺点如何叠加?

4

1 回答 1

41

样式表总是被下载,不管当前的媒体是screen, print, 还是3D-glasses.

请参阅:为什么所有浏览器都下载所有 CSS 文件——即使是它们不支持的媒体类型?

因此,考虑到这一点,将它们全部放在一个样式表中将减少 http 请求,而单独的样式表将始终创建更多请求而没有任何好处。

于 2011-12-28T19:25:27.880 回答