私はiPhoneを除くすべてのブラウザからCSSを非表示にする方法を知っている:How do I apply a stylesheet just to the iPhone (and not IE), without browser sniffing?iPhoneからCSSを隠すことはできますが、他のブラウザではできません。
を参照してくださいしかし:どのように私はiPhoneからCSSを隠すではなく、他のブラウザのですか?
私はiPhoneを除くすべてのブラウザからCSSを非表示にする方法を知っている:How do I apply a stylesheet just to the iPhone (and not IE), without browser sniffing?iPhoneからCSSを隠すことはできますが、他のブラウザではできません。
を参照してくださいしかし:どのように私はiPhoneからCSSを隠すではなく、他のブラウザのですか?
実際には、私たちがiPhoneのようなデバイスを使用している場合、メディアクエリとgetComputedStyle
を使ってモバイルサイトにリダイレクトする若干異なる、非常にばかばかしいソリューションになりました。
<style media="only screen and (max-device-width: 480px)">html{border-top-style:dashed;}</style>
<script>
if(window.location.search.indexOf("?m=t")==-1 && window.getComputedStyle) {
var mobile = false;
if(window.getComputedStyle(document.getElementsByTagName("html")[0],null).getPropertyValue("border-top-style")=="dashed") {
var mobile = true;
}
if(mobile) {
window.location.replace(window.location+"?m=t");
}
}
</script>
私はスタックオーバーフローにgetComputedStyle
アイデアを得たと確信しているが、私はどこ覚えていないことができます。
iPhoneの場合はiPhoneのCSSを、それ以外の場合は通常のCSSを付け加えることができます。
var agent=navigator.userAgent.toLowerCase();
var isIPhone = ((agent.indexOf('iphone')!=-1);
if (isIPhone)
document.createElement("style")... //iPhone CSS
else
document.createElement("style")... //normal CSS
またはCSSなしのページへの単純なリダイレクト、またはiPhoneを検出し、スタイルずに彼らにページを提供するためにPHPを使用する - の流れで何か:あなたは、おそらく使用することができ
if iPhone {
echo //page without CSS
else {
echo //page with CSS
}
<link rel="stylesheet" href="noniPhoneStylesheet1.css" media="only screen and (min-device-width:490px)" />
。あなたがiPhoneから隠しておきたいスタイルをそのスタイルシートに入れることはうまくいくはずです。明らかに、メディアクエリを尊重し、490ピクセル以下の画面幅を持つ他のデバイスからのスタイルシートもブロックします。
私はそれを与えるでしょう。 –
...ここでそれは本当にうまくいくと思っています。= 0(試したことはありませんでした。* ...) –
@Paul、これで運が良かったり、フィードバックがありましたか? –
確かに、JavaScriptを使用してすべてのブラウザでスタイルシートを適用しています。 –
http_user_agentをチェックするだけでHTMLページでない場合は、このサーバーサイドを実行することもできます。 –