Reputation: 9437
Is it possible to include one CSS file in another?
Upvotes: 890
Views: 596471
Reputation: 12731
Yes:
@import url("base.css");
Note:
@import
rule must precede all other rules (except @charset
).@import
statements require additional server requests. As an alternative, concatenate all CSS into one file to avoid multiple HTTP requests. For example, copy the contents of base.css
and special.css
into base-special.css
and reference only base-special.css
.Upvotes: 1228
Reputation: 1149
For whatever reason, @import didn't work for me, but it's not really necessary is it?
Here's what I did instead, within the html:
<link rel="stylesheet" media="print" href="myap-print.css">
<link rel="stylesheet" media="print" href="myap-screen.css">
<link rel="stylesheet" media="screen" href="myap-screen.css">
Notice that media="print" has 2 stylesheets: myap-print.css and myap-screen.css. It's the same effect as including myap-screen.css within myap-print.css.
Upvotes: -1
Reputation: 23463
I use this to import bootstrap.css in altervista with wordpress
@import url("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css");
and it works fine, as it would delete the html link rel code if I put it into a page
Upvotes: 3
Reputation: 49
@import url('style.css');
As opposed to the best answer, it is not recommended to aggregate all CSS files into one chunk when using HTTP/2.0
Upvotes: 2
Reputation: 1596
Yes You can import easily one css to another (any where in website) You have to use like:
@import url("url_path");
Upvotes: 2
Reputation: 3193
I have created main.css file and included all css files in it.
We can include only one main.css file
@import url('style.css');
@import url('platforms.css');
Upvotes: 1
Reputation: 35
sing the CSS @import Rule here
@import url('/css/header.css') screen;
@import url('/css/content.css') screen;
@import url('/css/sidebar.css') screen;
@import url('/css/print.css') print;
Upvotes: 1
Reputation: 10711
The "@import" rule could calls in multiple styles files. These files are called by the browser or User Agent when needed e.g. HTML tags call the 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 File "main.css" Contains The Following Syntax:
@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);
To insert in style element use createTexNode don't use innerHTML but:
<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>
Upvotes: 6
Reputation: 465
@import("/path-to-your-styles.css");
That is the best way to include a css stylesheet within a css stylesheet using css.
Upvotes: 6
Reputation: 431
yes it is possible using @import and providing the path of css file e.g.
@import url("mycssfile.css");
or
@import "mycssfile.css";
Upvotes: 7
Reputation: 73
I stumbled upon this and I just wanted to say PLEASE DON'T USE @IMPORT IN CSS!!!! The import statement is sent to the client and the client does another request. If you want to divide your CSS between various files use Less. In Less the import statement happens on the server and the output is cached and does not create a performance penalty by forcing the client to make another connection. Sass is also an option another not one I have explored. Frankly, if you are not using Less or Sass then you should start. http://willseitz-code.blogspot.com/2013/01/using-less-to-manage-css-files.html
Upvotes: -5
Reputation: 1527
The @import url("base.css");
works fine but bear in mind that every @import
statement is a new request to the server. This might not be a problem for you, but when optimal performance is required you should avoid the @import
.
Upvotes: 45
Reputation: 18270
Yes. Importing CSS file into another CSS file is possible.
It must be the first rule in the style sheet using the @import rule.
@import "mystyle.css";
@import url("mystyle.css");
The only caveat is that older web browsers will not support it. In fact, this is one of the CSS 'hack' to hide CSS styles from older browsers.
Refer to this list for browser support.
Upvotes: 172
Reputation: 16926
Yes, use @import
detailed info easily googled for, a good one at http://webdesign.about.com/od/beginningcss/f/css_import_link.htm
Upvotes: 9
Reputation: 6954
In some cases it is possible using @import "file.css", and most modern browsers should support this, older browsers such as NN4, will go slightly nuts.
Note: the import statement must precede all other declarations in the file, and test it on all your target browsers before using it in production.
Upvotes: 13
Reputation: 19960
The CSS @import
rule does just that. E.g.,
@import url('/css/common.css');
@import url('/css/colors.css');
Upvotes: 34