2016-04-14 9 views
1

当社の製品の新しいUIを開発しており、デバイスがモバイルかデスクトップかに応じて2つの<div>タグを切り替える必要があります。各<div>にはモバイルまたはデスクトップ用の適切なコンテンツが含まれますが、HTMLページは1つのみであるため、もう1つをオフにしながら<div>をオンにする必要があります。CSSを使用して画面解像度に基づいて2つのDIVを切り替える

この質問は、this SO questionのフォローアップのようなもので、私がここで尋ねているのと非常に似ています。

<div class="visible-phone"> 
    content for phone 
</div> 

<div class="visible-desktop"> 
    content for desktop 
</div> 

およびいずれかの最大値または最小画面解像度採用2つのCSSルールがあります:そこに見つかったソリューションをおさらいするには、2つの<div>のある

.visible-phone{ 
    @media (max-width: 480px) { more css } 
} 

.visible-desktop{ 
    @media (min-width: 768px) { more css } 
} 

がポイントに到達するためには、考えます最小幅が700px、最大幅が900pxのデバイス。これは、上記のCSSロジックのクラックを通り過ぎ、<div>が見えなくなります。別の例として、500px〜750pxの範囲のデバイスも対象となりません。

参照回答の弱点を避けるために完全な方法を提案する人はいますか?ここでCSSベースのソリューションが好まれるでしょう。

+0

範囲のメディアクエリをその間に追加し、表示するコンテンツを決定する(またはタブレットの追加コンテンツを作成する)。 – Paul

+0

@Paulこれは巧妙な考えですが、悪魔の主張者を演奏させてください。 3番目のメディアクエリとして(480,768)を追加したとします。しかし、今では(450,700)の範囲にあるデバイスは、再びカバーされません。誰もがこのメディアの質問のものを煮詰めて、明らかに精神的な苦痛を楽しんだ:-) –

+0

それはなぜ覆われないのでしょうか?さまざまな要因に応じて、例えば、ポートレート(450)から風景(700)モードへの回転時など、異なる「div」を表示します。 – Paul

答えて

0

あなたが使用できるものは、メディアクエリ内に表示なしです。 .visiblephone {display:none;}とモバイルセットのクエリ.visible-desktop {display:none;}

これは、モバイルとデスクトップのような各部門に割り当てられた異なるクラスを使用します。私が正しくあなたを理解していれば、あなたがやろうとしている

0

)=あなたの指定されたメディアクエリ内1つのdivは常に非表示になり、その後、あなたは自分の画面サイズ値を取得する必要があることを確認してください。

CSS

@media screen and (max-width: 480px) { 
    .visible-phone{ 
    display: block !important; 
    } 
    .visible-desktop{ 
    display: none !important; 
    } 
} 
@media screen and (min-width: 480px) { 
    .visible-phone{ 
    display: none !important; 
    } 
    .visible-desktop{ 
    display: block !important; 
    } 
} 
+0

私は現在、これらの行に沿って何かを試みていますが、ここでは潜在的な問題があります。デバイスの最小幅が400px、最大幅が800pxであるとします。 800pxの 'max-width'が大きすぎるため、最初のスタイルは満たされませんでした。しかし、第2のスタイル_also_は満たされません。なぜなら、400pxの「最小幅」が小さすぎるからです。だから、人間の土地に落ちる可能性のあるデバイスが考えられます。 –

+1

わかりませんが、おそらくあなたの側に誤解があります。任意の時点でのデバイス/ビューポートは、1つの幅しか持つことができません。この_single_width値(範囲とは対照的に)は、使用するメディアクエリを決定しています。 – Paul

+0

@TimBiegeleisen私はこのような問題を想像しています。 "私は400pxと800pxの間で幅を変えることができるブラウザウィンドウを持っています。最初のスタイルは400pxから480pxまでの範囲で動作し、480pxの後は2番目のスタイルで動作します。 – Tanbi

関連する問題