@メディアの最小幅と最大幅


225

私はこの@media設定をしています:

HTML

<head>
  <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>

CSS

@media screen and (min-width: 769px) {
    /* STYLES HERE */
}

@media screen and (min-device-width: 481px) and (max-device-width: 768px) { 
    /* STYLES HERE */
}

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE */
}

この設定では、iPhoneでは機能しますが、ブラウザでは機能しません。

それは私がすでにdeviceメタに持っているからで、多分max-width:480px代わりに持っているからでしょうか?


1
WHatの問題-デフォルトのスタイルは、769ピクセルよりも広い画面に適用されます。
Gurpreet Singh

@media screen and (min-width:769px){通常のブラウザスタイルの周囲を削除するだけ
Zoltan Toth

ゾルタンってどういう意味?そして、私はそれを解決するかもしれないと思います。まず、問題は、max-device-withを使用してブラウザーのサイズを変更したときに電話では機能しましたが、ブラウザーでは機能せず、「デバイス」が両方で機能しない場合でした。
ラリービレン

基本的に「デバイス」がなくてもモバイル/ブラウザの両方で機能しますが、デバイスを追加するとブラウザに表示されません\
rallybilen

1
ブラウザのサイズがで終わっているため、そうなってはいけませ980pxん。960980px

回答:


339

古いブラウザは、IE 5.5、6、7、8などを含むため、最善の方法は古いブラウザ用のデフォルトCSSを記述することです。@ mediaを読み取ることができません。@mediaを使用するときは、次のように使用します。

<style type="text/css">
    /* default styles here for older browsers. 
       I tend to go for a 600px - 960px width max but using percentages
    */
    @media only screen and (min-width: 960px) {
        /* styles for browsers larger than 960px; */
    }
    @media only screen and (min-width: 1440px) {
        /* styles for browsers larger than 1440px; */
    }
    @media only screen and (min-width: 2000px) {
        /* for sumo sized (mac) screens */
    }
    @media only screen and (max-device-width: 480px) {
       /* styles for mobile browsers smaller than 480px; (iPhone) */
    }
    @media only screen and (device-width: 768px) {
       /* default iPad screens */
    }
    /* different techniques for iPad screening */
    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) {
      /* For portrait layouts only */
    }

    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) {
      /* For landscape layouts only */
    }
</style>

しかし、あなたはあなたの@mediaであなたが好きなことをすることができます、これは私がすべてのブラウザのためのスタイルを構築するときに私が最もよく見つけたもののほんの一例です。

iPad CSS仕様。

また!あなたが印刷適性を探しているなら、あなたは使うことができます@media print{}


16
なぜ「mac」画面を設置したのですか?大きな高解像度画面を持つことができるのは「素晴らしい」Macだけではありません。
ルーク

38

根本的な問題は、max-device-widthvs plain oldの使用max-widthです。

「device」キーワードを使用すると、ブラウザウィンドウの幅ではなく、画面の物理的な寸法がターゲットになります。

例えば:

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE for DEVICES with physical max-screen width of 480px */
}

@media only screen and (max-width: 480px) {
    /* STYLES HERE for BROWSER WINDOWS with a max-width of 480px. 
       This will work on desktops when the window is narrowed.  */
}

11

小さなデバイスのWebサイトがデスクトップ画面のように動作する場合は、このメタタグをヘッダーの前に配置する必要があります

<meta name="viewport" content="width=device-width, initial-scale=1">

メディアクエリの場合、これを次のように設定できます

これはすべてのモバイル/携帯電話の幅をカバーします

    @media only screen and (min-width: 200px) and (max-width: 767px)  {
    //Put your CSS here for 200px to 767px width devices (cover all mobile portrait width //

    }

iPadおよびiPad proの場合は、使用する必要があります

    @media only screen and (min-width: 768px) and (max-width: 1024px)  {
    //Put your CSS here for 768px to 1024px width devices(covers all iPad portrait width //

    }

ランドスケープモードのcssを追加する場合は、これを追加できます

と(向き:風景)

  @media only screen and (min-width: 200px) and (max-width: 767px) and (orientation : landscape) {
        //Put your CSS here for 200px to 767px width devices (cover all mobile landscape width //

        }

8

代わりに、content属性の正しい値を含める必要がありinitial-scaleます。

<meta name="viewport" content="width=device-width, initial-scale=1">
                                                   ^^^^^^^^^^^^^^^


2
理由を説明し、参照を追加できれば、この回答がより有用になります。
マイケルベンジャミン

2
@Michael_Bイニシャルは「user-scalable = no」でした。それは私が思うすべてを言います。
Apolo Radomer

0

一部のiPhoneでは、このようにビューポートを配置する必要があります

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, shrink-to-fit=no, user-scalable=0" />
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.