2011-06-22 5 views
0

が、私はこの一部のブラウザでid要素を非表示にすることはできますか?

<span id ="radiobuttonContainer"> Check to enable checkboxes: 
<input type="radio" name="cov-failed" value="cover" onclick="javascript:printoutCheckboxes('cover')"> 
Coverage     
<input type="radio" name="cov-failed" value="failed" onclick="javascript:printoutCheckboxes('failed')"> 
Failed</span> 

のように定義されたIDを持っていると言う私は、これはIE < 8を管理することができないデータの多くよりvizualizingを可能にするのですなわち9以下のブラウザでは、この「spanId」を表示したいいけません。私はあなたが切り抜いたJavaScriptとCSSを持つことができることを知っている:この

<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="root/include/excanvas.min.js"></script><![endif]--> 

ようなブラウザに依存ESと、ディスプレイ選びました:「なし」を、

しかし、この単一の行のほかに正確に同じ情報を含む2つの等しい.cssファイルを持つことが本当に必要であるのだろうか?

このようなことはできませんか?道によってあなたの例のマージです

<!--[if lte IE 8]><script type="text/javascript"> 
    document.getElementById('radiobuttonContainer').style.display = 'none'; 
</script><![endif]--> 

<!--[if lte IE 8]>document.getElementById('radiobuttonContainer').style.display = 'none';<![endif]--> 
+0

なぜ単純なcssだけでなくjs経由で非表示にすると、 'span#radiobuttonContainer {display:none; } ' – knittl

+0

@knittlええ、それは私が意味したことです、私は速くコピーして貼り付けることでした;)どのように私はこれを投稿するか、あなたはCSSでこれを行うことができますが、私は2異なる.cssファイル。このようなことをすることはできますか? <! - if if IE 8]> span#radiobuttonContainer {display:none; } ? =) – Adam

+0

「もっと多くのデータを視覚化する」というフレーズの下には何が隠されていますか? oldIEがサポートしていないjavascript機能の場合は、その機能をスニッフィングし、その要素を非表示にします。 HTMLは依然として送信され、解析されるので、実際にoldIEがひどく失敗するのであれば、それを隠すだけでは十分ではないかもしれないことに注意してください。 –

答えて

0

私はあなたが確かにこのような何かを行うことができると思います。

+0

ありがとうございます、魅力的な作品= – Adam

+0

無効にされています... – thescientist

+0

はい、私はあなたのコメントを実際に投票しましたが、今日のブラウザの98%はJavaScriptが有効になっているので、実際には現実的な問題ですか? – OverLex

4

条件付きコメントでタグを囲むだけでよいはずです。代わりに、ページに含まれているCSSが含まれているCSSよりも優先されるため、そのケース固有の新しい定義だけでなく、2番目のスタイルシートを含める必要はありません。つまり、

<!--[if lte IE 8]> 
<style type="text/css"> 
#radiobuttonContainer{ 
    display = 'none'; 
}; 
<![endif]--> 

となり、付属のCSSファイルの後に追加されます。

+1

まったく同じことを書きました。まれに私は誰かが私にそれを打つことなく、このサイト上の何かに答えることができますか? :) – MrMisterMan

+0

問題を解決するためのすべての代替方法をありがとうございます。どちらが最適ですか? ; P – Adam

+1

まあ、JavaScriptが無効になっている可能性が常にあるので、純粋なCSSアプローチが最も信頼できます。 – thescientist

1

Modernizrのようなツールを使用すると、ブラウザの機能を判断できます。

IE8で利用できない特定の機能がある場合は、スタイルシートでその機能を参照し、ブラウザにその機能がない場合はこの要素を非表示にすることができます。

あなたがする必要があるだろうすべてはあなたのページにModernizr Javascriptを含むように1行のスクリプトで、その後、あなたはあなたのCSSでこのような何かをしたい、機能はHTML5のキャンバスであるとしましょう:

.nocanvas .radiobuttonContainer { 
    display:none; 
}