web-dev-qa-db-ja.com

@importスタイルがメディアクエリで機能しない

メディアクエリに基づいてスタイルをインポートしようとしていますが、インポートがトリガーされません。メディアクエリに直接スタイルを配置すると、ページにレンダリングされます。

ここにライブサイトへのリンクがあります http://update.techbasics.ca

これが私のstyle.cssとメディアクエリとインポートです

デバッグに役立つ場合はwordpress)を使用しています。

@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'); 
}

これがmin600.cssです(style.cssファイルと同じディレクトリにあります)

header {
  text-align: left; }
  body{
    background: green;
  }
17
Cool Guy Yo

そのようなコードを試してください

@import url("/inc/Styles/full.css") (min-width: 940px);
18
Drew Altukhov

これが解決策です:

/* Everything 700px and lower */
@import url("./700.css") only screen and (max-width: 700px);
8

このように使用しましたか?

あなたは書ける:

@import url('path.css') (screen and min/max-width: 600px);

@importを使用してパスを追加できます

または好き:

@import url(style.css) (screen and min-width:600px);
6

MDNは、@importはネストできず、必ず来る必要があると述べていますbefore@charsetを除く他のすべての宣言。

構文は次のとおりです。

@import url;
@import url list-of-media-queries;

https://developer.mozilla.org/en-US/docs/Web/CSS/@import

3
Robert Rocha

私は同じ問題を抱えていて、良い解決策を見つけずに検索した後、代わりにインポートされたcssにメディアクエリを移動することになりました。実際、すべてのスタイルシートは、適用されていなくてもダウンロードされます( CSSメディアクエリ を参照)。

では、別々のファイルを持つことのポイントは何ですか?私にとって、それは物事を整理し続けます。あなたの例を使用して:

@import url(min480.css); /* min-width: 480px */
@import url(min600.css); /* min-width: 600px */

次に、min600.cssで:

/* min600.css */
@media only screen and (min-width: 600px) {
   header {
      text-align: left; 
   }
   body {
      background: green;
   }
}
0
bubbassauro

正常に動作します。ウィンドウのサイズを変更してみてください。画面のメインウィンドウ(1920x1080)に表示されているように、CSSルールの色が変化します。

body {
background: url("../img/noisy_grid.png");
}

Style.cssにある37〜38行目が最初に起動するため、オレンジ色が表示されません。 cssルールを再調整してみてください

0
vorillaz