3

iPhone以外のすべてのブラウザーから CSS を非表示にする方法を知っています。ブラウザー スニッフィングなしで、スタイルシートを iPhone (IE ではなく) だけに適用するにはどうすればよいですか? を参照してください。

しかし: CSS を iPhone から非表示にするにはどうすればよいですか?

4

4 に答える 4

2

あなたはおそらく使用することができます@media queries

<link rel="stylesheet" href="noniPhoneStylesheet1.css" media="only screen and (min-device-width:490px)" />

これにより、iPhoneブラウザはその特定のスタイルシートのダウンロードから自動的に除外されます(iPhoneの画面幅は480pxです)。したがって、iPhoneから隠したいスタイルをそのスタイルシートに入れるとうまくいくはずです。ただし、明らかに、メディアクエリを尊重し、画面幅が490px未満の他のデバイスからのスタイルシートもブロックします。

于 2010-12-05T23:16:23.657 に答える
1

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
于 2010-11-24T21:05:20.700 に答える
0

getComputedStyle私は実際、メディアクエリを使用し、iPhoneのようなデバイスを使用している場合はモバイルサイトにリダイレクトする、わずかに異なる、非常にばかげたソリューションを採用することになりました。

<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>

Stack Overflowのアイデアは確かにgetComputedStyleありますが、どこにあるのか思い出せません。

于 2010-12-05T23:17:13.407 に答える
0

または、CSS のないページへの単純なリダイレクト、または PHP を使用して iPhone を検出し、スタイルのないページを配信します。

if iPhone {
    echo //page without CSS
else {
    echo //page with CSS
}
于 2010-11-25T04:33:13.313 に答える