是否仍有理由使用“不”字@进口;css规则?

是否仍有理由使用“不”字@进口;css规则?,css,web-standards,Css,Web Standards,我最近在Coda.com上遇到了@import规则的使用。他们实际上使用导入站点的主样式表,特别是格式: <style type="text/css" media="screen"> @import url(./coda.css); </style> @导入url(./coda.css); 这将对Netscape 3和IE 3和4隐藏规则。既然web开发工具的主要受众将使用现代浏览器,那么使用此工具而不是链接还有什么其他原因呢?无。使用元素还具有摆脱 编辑:在另

我最近在Coda.com上遇到了@import规则的使用。他们实际上使用导入站点的主样式表,特别是格式:

<style type="text/css" media="screen">
  @import url(./coda.css);
</style>

@导入url(./coda.css);
这将对Netscape 3和IE 3和4隐藏规则。既然web开发工具的主要受众将使用现代浏览器,那么使用此工具而不是链接还有什么其他原因呢?

无。使用
元素还具有摆脱


编辑:在另一个样式表(
.css
文件)中使用
@import
可以像在C中使用
#include
一样使用,但是没有任何理由在
块中使用
@import

实际CSS文件(而不是HTML中的
元素)中的
@import
语句有许多用途,例如,可以方便地交换其他CSS文件。Blueprint CSS框架这样做是为了让您轻松删除框架的某些部分,例如排版或网格内容


当然,在生产环境中,使用大量的import语句是不可取的,因为这会增加web浏览器必须下拉的文件数量。

现在使用此规则的唯一原因是通过将CSS拆分为不同的文件(如库),使CSS更加模块化

因此,虽然您的页面可能链接到一个样式表,但该样式表可以@导入其他样式表以进行重置、排版等


但是,这确实会降低页面的加载速度,因为这只是更多的连续http请求。

我同意Andrew的观点。我还使用导入逻辑地拆分css。就我个人而言,我喜欢将它们分为4类:重置、结构、排版、常规(背景/边框等)

css文件也可以按页面部分(如header.css、footer.css等)进行拆分,这取决于用户、样式和偏好

但是,为了避免多个http请求,我还做了一件额外的事情,那就是创建一个合并(按导入顺序)并压缩css文件以进行实时部署的构建过程


希望这能有所帮助

我自己也使用模块化开发方法,通常会得到10多个单独的CSS文件。正如您所知,这是一个相当大的HTTP请求数,所以我喜欢使用

Blender是一个rubygem,它将任意数量的CSS文件合并并缩小为一个样式表。它也适用于JavaScript

您可以在单独的样式表中定义@media,以便只为正确的设备类型提供适当的规则