2012-01-23 6 views
1

CSS内からIEの条件文を呼び出す方法はありますか?私はコードからIEのcssファイルの長い文字列を呼び出すことを避けたい。CSSのIE呼び出しを統合する

<!--[if IE 7]> 
<link href="ie7.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 
<!--[if IE 8]> 
<link href="ie8.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 
<!--[if gt IE 8]> 
<link href="ie-gt-8.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 

と1つのコール

<!--[if IE]> 
    <link href="ie.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 

を持っているとCSSファイル内で条件文を持っていると思います。それが可能ですか、またはPaul Irish行く方法ですか?私は、「高度なルール」を適用しようとした

#column_right { 
float:left; 
width:250px; 
margin-left:-250px; 
[if IE 6] ie6: 100%; 
[if lt IE 6] lt-ie6: 100%; 
[if lte IE 6] lte-ie6: 100%; 
[if ! lte IE 6] not-lte-ie6: 100%; 
} 
#footer { 
clear: left; 
width: 100%; 
[if IE 5.0] padding: 10px 0px; 
[if IE 5.5] margin-bottom: 40px; 
} 

[if IE 5] .box { 
width: 200px; 
padding: 100px; 
margin: 100px; 
} 

this articleで提案されているが、これは私のために動作しません。

[if IE 7] background-color: red; 
[if IE 8] background-color: yellow; 

答えて

0

のような基本的なものを試しました。それはできません。しかし、すべてのIEをコーディングしてコードを統合することは(時には)可能です。条件付きコメントはIEには存在しませんが、hacksですが、I would not recommend these, ever!

+0

可能です。私の答えを参照してください –

+0

はい、あなたはそれを行うことができます。それは私が忘れていたものです。しかし、私はより具体的に条件付きコメント_in_ CSSに取り組んでいました。これは不可能です。しかし、あなたのスタイルは問題を解決します。 – Ktash

-1

また、サーバーサイドでCSSを動的に読み込むこともできます。 IEバージョンxを使用している場合、リクエストオブジェクトからユーザエージェントを取得し、CSSファイル1,2,3を一緒に連結します。ただ、レスポンスのMIMEタイプは、CSSまたはプレーンテキストであることを確認してください...

+0

ユーザーエージェントのスニッフィングはお勧めできません。これを達成するより良い方法があります。 – Ktash

+0

他の投稿にコメントを残す能力を失うことなく、その忠告を残すことはできませんでしたか? – Matt

3

は、HTML要素にクラスを追加するために、条件付きコードを使用してください。次に、そのクラスを使用して、ieのバージョンの要素のみを選択します。

<!doctype html> 

<!--[if lt IE 7 ]> <html class="no-js ie" lang="en"> <![endif]--> 
<!--[if IE 7 ]> <html class="no-js ie7" lang="en"> <![endif]--> 
<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]--> 
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 

.ie8 body {width: 98%} 
.ie7 body {width: 100%} 
.ie body {width: 50%} 

はIE8で、本体要素がIE7で、100%の幅、及びIE6および下部、50%、98%の幅を有することになります。

関連する問題