2013-02-28 24 views
6

レスポンシブウェブサイトを作成していますが、IE8で動作するようには見えません。今、私はInternet Explorer 8以下がCSS3のメディアクエリをサポートしていないことを知っています。しかし、私はcss3-mediaqueries.js Javascriptファイル(Googleによってホストされています)を含めましたが、それでも動作しません。レスポンシブサイトがIEで動作しません(css3-mediaqueries.jsにもかかわらず)

ほとんどのコードを削除しました(文字通り26行のHTMLと34行のCSSを組み合わせただけです)。 HTMLが正常にHTML5として検証し、CSSはCSSレベルとして検証3.ここでは、コードです:

HTML

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, maximum-scale=1.0, minimum-scale=1.0, initial-scale=1.0" /> 
<title>Responsive Site</title> 
<link rel="stylesheet" type="text/css" href="css/custom.css" /> 
<link rel="stylesheet" type="text/css" media="only screen and (min-width:50px) and (max-width: 800px)" href="css/responsive.css" /> 

<!--[if lt IE 9]> 
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

<!-- css3-mediaqueries.js for IE less than 9 --> 
<!--[if lt IE 9]> 
    <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> 
<![endif]--> 

</head> 
<body> 
<div class="wrapper"> 
    <div id="article">&nbsp;</div> 
    <div id="side">&nbsp;</div> 
</div> 
</body> 
</html> 

のcustom.css:

@charset "UTF-8"; 

/*html5 display rule*/ 
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {display: block;} 

body {margin: 0px; padding:0px} 

.wrapper { 
    width:78%; 
    margin:0 auto} 

#article { 
    float:left; 
    width:61.224489795%; 
    margin:20px 0 0 0; 
    padding:0; 
    height:500px; 
    background-color:#000} 

#side { 
    float:right; 
    width:30.775510204%; 
    margin:20px 0 0 0; 
    padding:0; 
    height:500px; 
    background-color:#999} 

responsive.cssは、 :

@charset "UTF-8"; 

#article { 
    width:100%} 

#side { 
    width:100%; 
    clear:left} 

答えて

3

私はついにこれを理解しました。たった数行のコードしか変更する必要がありませんでした。

注:あなたは を使うべきではありませんimport'edスタイルシート(@で動作しないの

友人はCSS3-mediaqueries.jsためdocumentationはJavascriptファイル読み込みと指摘しましたとにかくパフォーマンス上の理由から)。また、メディアの と要素の属性も聞きません。

私はHTMLファイルのlink要素にmedia属性を使用していました。だから、ここで私は問題を解決するためにやったことだ:

私は削除HTMLファイルで:

<link rel="stylesheet" type="text/css" media="only screen and (min-width:50px) and (max-width: 800px)" href="css/responsive.css" /> 


し、それを置き換える:

<link rel="stylesheet" type="text/css" href="css/responsive.css" /> 


私は私のresponsive.cssファイルにメディア属性を追加しました:

@charset "UTF-8"; 
@media screen and (max-width: 800px) { 
#article { 
    width:100%} 

#side { 
    width:100%; 
    clear:left} 
} 

しかし、それでも機能しませんでした。私はresponsive.cssファイルのmedia属性と@charset属性の順序を変更しました。

@media screen and (max-width: 800px) { 
@charset "UTF-8"; 

トリックをした:私は単にライン1 & 2を再配置します。文字セットの順序が違いを生む理由を正確には分かりませんか?おそらく、誰かがそれに光を当てることができます。

ありがとうございました。ツールボックスにいくつかのオプションがあるのは良いことです。将来はrespond.jsに変わるかもしれません。しかし、今のところ、私はGoogleがホスティングしているコードに満足しています。 (githubのとGoogleのコードプロジェクトに文書化されている)@importedスタイルシートを使用できないことに加えて

+0

解決策を見つけてうれしいです! –

1

respond.jsを試しましたか?

幸運を祈る!

更新

1つにあなたの2つのCSSファイルを結合する方が安全かもしれません。モバイル仕様をcustom.cssファイルに追加します。

@media (min-width: 50px) and (max-width: 800px) { 

    /* mobile CSS here */ 

} /* close @ media for mobile */ 
+1

ご返信ありがとうございます。私はJSにリンクしてみましたが、あなたは私のローカル・マシンと同様に外部サーバーについても通知しましたが、役に立たないものです。 2010年にレスポンシブウェブデザインという言葉を作った人物Ethan Marcotteを含む、ほとんどの開発者が推奨しているJavaScriptです(http:// ja。 wikipedia.org/wiki/Responsive_web_design#History)。 私は間違っていますか? –

+0

まだrespond.jsをあきらめないでください;)まず、IE7またはIE8でhttp://scottjehl.github.com/Respond/test/test.htmlに行き、ウィンドウのサイズを変更します。背景色が変わったら、それは良いことです。 https://raw.github.com/scottjehl/Respond/master/respond.min.jsからrespond.jsスクリプトをダウンロードし、サイトにインストールしてみてください。理由は分かりませんが、respond.jsなどでcss3-mediaqueries.jsで成功した人もいらっしゃいます –

5

- 1が明示的に同様の形式でメディアクエリーを述べていない場合には問題がある:

@media screen and (min-width: 666px) and (max-width: 1000px) 
画面の欠如を私のメディアクエリにあった - - これを設定しようとしている約時間後

@media and (min-width: 666px) and (max-width: 1000px) 

このプロジェクトのgithubの問題セクションでこの問題を見てくださいと比べ

因果認識されないようにしてください。

0
<meta http-equiv="X-UA-Compatible" content="IE=9"> 

あなたはその前に任意の他のメタタグを配置する必要があります。

関連する問題