Gaizka Allende
Gaizka Allende

Reputation: 9437

Is it possible to include one CSS file in another?

Is it possible to include one CSS file in another?

Upvotes: 890

Views: 596471

Answers (17)

Kevin Read
Kevin Read

Reputation: 12731

Yes:

@import url("base.css");

Note:

  • The @import rule must precede all other rules (except @charset).
  • Additional @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

Colin Keenan
Colin Keenan

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

PythonProgrammi
PythonProgrammi

Reputation: 23463

Import bootstrap with altervista and wordpress

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

peterC_
peterC_

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

NARGIS PARWEEN
NARGIS PARWEEN

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

Dinesh Vaitage
Dinesh Vaitage

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

Pocky_Thailand
Pocky_Thailand

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

eQ19
eQ19

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

Floyd
Floyd

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

vidhi
vidhi

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

WillSeitz
WillSeitz

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

Gordon Wilson
Gordon Wilson

Reputation: 26384

Yes.

@import "your.css";

The rule is documented here.

Upvotes: 18

Gene
Gene

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

Ronnie Liew
Ronnie Liew

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

DarenW
DarenW

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

seanb
seanb

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

S&#246;ren Kuklau
S&#246;ren Kuklau

Reputation: 19960

The CSS @import rule does just that. E.g.,

@import url('/css/common.css');
@import url('/css/colors.css');

Upvotes: 34

Related Questions