- ベストアンサー
WinIE5にだけCSSを適用させない方法
Windows IE5にだけCSSを適用させない方法はないでしょうか? WinIE5にだけ適用させる、という方法はわかったのですが、 この方法だと修正が大変な構造になっているので、WinIE5では CSSをいっさい読み込まないという形にしたいです。 具体的には <link rel="stylesheet" href=".index.css" type="text/css" media="all"> などとして、 index.cssで @import "001.css"; @import "002.css"; などと、複数のCSSファイルを読み込んでいるのですが、 WinIE5にはインポートしないようにしたいです。 よい方法があればお教えてください。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
やはりMacIEを排除してしまいますか。 そうすると、ちょっと強引かもしれませんが、A1の方の方法と同じように MacIEのみを読み込むハックにて作成するのも良いのかもしれませんね。 -------------------- /*\*//*/ @import url("ie5mac.css"); /**/ -------------------- 合わせてご質問のあったメニューの件ですが、 私の場合はaタグの間をemやspanで挟み「 visibility:hidden; 」で テキストを非表示にしています。 この方法なら、ie5でのバグは防げますが、それはできないとのことですので 参考になるのではないかと思われるURLを記載しておきます。 お力になれずすみません。 僕もまだまだ知識不足ですが、質問者さんのようにユーザービリティを 考えるのは大切ですね。 頑張ってください。
その他の回答 (4)
- viper_1965
- ベストアンサー率36% (8/22)
A1です。全くお恥ずかしい限りです。ごめんなさい。 :root疑似ハックはIE6もはじくんですよね。 やっぱりいくつか組み合わせないとダメっぽいですね。 A3さんのコメントハックでMac IE5だけ通すようにするみたいな。 私はWin IEを確認できる環境ではないので、 お力になれず残念です。というか逆に勉強させていただきました。
お礼
いえいえ、どんでもないです。 ご回答いただけたことに深く感謝しております。 おっしゃる通り、私もA3のものに/*?*/の macIEのバグを組み合わせたらいけそうな気がしたんですが、 私のスキル不足もあり、うまくいきませんでした。 WinIE5なんて、あんまりいないですよねえ、やっぱり。
- protege323
- ベストアンサー率100% (1/1)
こんにちは。 cssが動作するブラウザからie5xを排除したいということですよね。 排除したいのはie5.0とie.5.5のどちですか? 動作確認はしていなのですが、以下の方法ではどうでしょうか? ------------- /*ie5.0排除用 ※ie5.5は非排除 */ @import/**/"style.css"; /*ie5.5およびie5.0排除用*/ @import "style.css"/**/; ------------- ただ、上記の方法だとmacIEも排除してしまうと思います。 私も確認をしたことがないので動作結果が気になります。 動作確認の環境があるようでしたら、結果を教えていただければ嬉しいです。 頑張ってくださいね。
お礼
ご回答ありがとうございます。 おっしゃる通りcssが動作するブラウザからie5xを排除したいということです。 protege323さんのやり方を試したところ、やはりMacIEを除外してしまいました。 う~ん、残念です。 違う方向から解決するための方法を聞いてもよろしいでしょうか。 <li><a href="#">ほげほげ</a><li> みたいなメニューがあって、ほげほげを画像に置換するようなCSSがよくあると思います。 文字数制限があるようななので、詳しく書けないのですが、両方背景画像を使う方法で 方法Aとして、text-indent:-9999pxなどとテキストを飛ばす方法、 方法Bとして、height:0にして、paddingを高さ分取る方法。 最初に方法Aを試したところ、WinIE5ではリンクごと画面外に行ってしまいました。(5.5はOK) そこで方法Bにしたところ、Operaでメニューが現れなくなってしまいました。 で、もう面倒になってWinIE5ではCSSごと適用しないようにしようと思ったんですが。。 こういったメニューを作る際、もっといい方法はありますでしょうか? 間にspanを挟んでそれを非表示にするやり方もあるようなのですが、 都合上それはできません。なにか良い方法があれば教えてください。
- viper_1965
- ベストアンサー率36% (8/22)
A1補足です。 確認すると、バックスラッシュが文字化けてますね。 ?はバックスラッシュです。
- viper_1965
- ベストアンサー率36% (8/22)
CSSは勉強中でCSSハックなどやったことも無いのですが。 Tantek's High Pass Filterと言うやつが使えるのかもしれません。 Win IE5用 @media tty{ i{content:"?";/*""*/}};@import'/css/styles.css';{;}/*";} }/* */ Win IE5.5用 @media tty{ i{content:"?";/*""*/}}@m;@import'/css/styles.css';/*";} }/* */ Win IE5-5.5用 @media tty{ i{content:"?";/*""*/}}@import'/css/styles.css';/*";} }/* */ 参考サイトも見てみてください。
お礼
ありがとうございます。 ですが、それはIE5に適用させる方法ですね。 私が知りたいのはIE5に適用させない方法、 つまりIE5以外に適用させる方法で、 上の例でいうと001.cssと002.cssをWinIE5以外の標準的なブラウザに インポートさせるハックを知りたいのです。 その方法でひとつひとつ上書いていく方法ではとても手間が かかるので、なにか方法はないかと思い、質問した次第です。
お礼
ご回答ありがとうございます。 A3との組み合わせで希望していた通りの効果が実現できました。 参考URLもありがとうございました。 とてもためになりました。 まだまだ知らないことばかりですが、少しずつ覚えていきたいと思います。