I am trying to import a style based off a media query but the import is not being triggered If i put styles directly in the media query they are rendered to the page.
Here is a link to the live site http://update.techbasics.ca
Here is my style.css with the media queries and the imports
I am using wordpress if that helps debug.
@import url('base.css');
/******************************************************************
Site Name: Tech Basics
Author: Anders Kitson
Stylesheet: Main Stylesheet
Here's where the magic happens. Here, you'll see we are calling in
the separate media queries. The base mobile goes outside any query
and is called at the beginning, after that we call the rest
of the styles inside media queries.
******************************************************************/
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; }
/*****************************************************************
BASE CSS
*****************************************************************/
/*****************************************************************
MEDIA QUERIES
*****************************************************************/
@media only screen and (min-width: 480px) {
@import url('min480.css');
}
@media only screen and (min-width: 600px) {
@import url('min600.css');
}
@media only screen and (min-width: 768px) {
body {
background: purple; } }
@media only screen and (min-width: 992px) {
body {
background: orange; } }
@media only screen and (min-width: 1382px) {
body {
background: url("../img/noisy_grid.png"); } }
/* iPhone 4 ----------- */
@media only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5) {
@import url('base.css');
}
and here is min600.css (located in the same directory as the style.css file)
header {
text-align: left; }
body{
background: green;
}
Did you use like this?
You can write:
@import url('path.css') (screen and min/max-width: 600px);
You can add path as you use
@import
or like:
@import url(style.css) (screen and min-width:600px);
MDN states that
@import
cannot be nested and must come before all other declarations except@charset
.The syntax is as follows:
https://developer.mozilla.org/en-US/docs/Web/CSS/@import
try that kind of code
It works fine, try to resize your window and you will see the colors changing As I can see in my main window on my screen (1920x1080) the CSS rule
Located in style.css , line 37-38 fires first, that's why you can't see the orange color. Try re arrange your css rules
Here is the solution:
I had the same problem and after searching without finding a good solution, I ended up moving the media queries to the imported css instead. And in fact all the style sheets are downloaded even if they are not applied anyway (see CSS media queries).
Then what's the point of having separate files? For me, it keeps things organized. Using your example:
Then on the min600.css: