是否可以将一个CSS文件包含在另一个CSS中?
当前回答
“@import”规则可以调用多个样式文件。这些文件在需要时由浏览器或用户代理调用,例如HTML标记调用CSS。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="EN" dir="ltr">
<head>
<title>Using @import</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
@import url("main.css");
</style>
</head>
<body>
</body>
</html>
CSS文件“main.CSS”包含以下语法:
@import url("fineprint.css") print;
@import url("bluish.css") projection, tv;
@import 'custom.css';
@import url("chrome://communicator/skin/");
@import "common.css" screen, projection;
@import url('landscape.css') screen and (orientation:landscape);
要插入样式元素,请使用createTexNode,不要使用innerHTML,而是:
<script>
var style = document.createElement('style');
style.setAttribute("type", "text/css");
var textNode = document.createTextNode("
@import 'fineprint.css' print;
@import 'bluish.css' projection, tv;
@import 'custom.css';
@import 'chrome://communicator/skin/';
@import 'common.css' screen, projection;
@import 'landscape.css' screen and (orientation:landscape);
");
style.appendChild(textNode);
</script>
其他回答
我偶然发现了这一点,我只是想说,请不要在CSS中使用@IMPORT!!!!import语句被发送到客户端,客户端执行另一个请求。如果您想在不同的文件之间划分CSS,请使用Less。在Less中,import语句发生在服务器上,输出被缓存,并且不会通过强制客户端建立另一个连接而造成性能损失。Sass也是一个选项,我没有探索过。坦率地说,如果你没有使用Less或Sass,那么你应该开始。http://willseitz-code.blogspot.com/2013/01/using-less-to-manage-css-files.html
@import url('style.css');
与最佳答案相反,在使用HTTP/2.0时,不建议将所有CSS文件聚合到一个块中
Yes:
@import url("base.css");
注:
@import规则必须先于所有其他规则(@charset除外)。额外的@import语句需要额外的服务器请求。作为替代方案,将所有CSS连接到一个文件中,以避免多个HTTP请求。例如,将base.css和special.css的内容复制到base-special.css中,并仅引用base-specific.css。
CSS@import规则就是这样做的。例如。,
@import url('/css/common.css');
@import url('/css/colors.css');
@import url(“base.css”);工作正常,但请记住,每个@import语句都是对服务器的新请求。这对您来说可能不是问题,但当需要最佳性能时,您应该避免@import。