2016-04-14 49 views
1

我們正在開發一個我們的產品和多種原因了全新的UI屏幕分辨率兩個div之間切換有需要根據設備是否爲移動或桌面2個<div>標籤之間切換。每個<div>將包含移動或桌面適當的內容,而是因爲我們只有一個HTML頁面,我們需要打開一個<div>同時關閉另一個的能力。基於使用CSS

這個問題的跟進東西this SO question這是非常相似,我問什麼,我在這裏。回顧一下發現那裏的解決方案,有兩個<div> S:

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

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

,並有應用最大或最小屏幕分辨率兩個CSS規則:

.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

@保羅這是一個聰明的主意,但讓我扮演魔鬼的擁護者。假設我們添加了(480,768)作爲第三媒體查詢。但是現在,範圍從(450,700)的設備將不再被覆蓋。製作這些媒體查詢內容的人明顯享受到精神折磨:-) –

+0

爲什麼不包括在內?根據不同的因素,例如從縱向(450)旋轉到橫向(700)模式時,它將顯示不同的'div's。 – Paul

回答

0

什麼,你可以用的是媒體查詢中顯示無。使用指定給每個div的不同類,例如移動和桌面,然後在桌面設置的媒體查詢中使用.visiblephone {display:none;}和查詢移動設置。確保您指定媒體查詢內的一個DIV將永遠被隱藏,那麼你就必須讓你的屏幕大小值=)

0

如果我理解正確的話,你正在嘗試做的:

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的「最大寬度」太大。但是第二種樣式_also_不會被滿足,因爲400px的'min-width'太小了。所以,可以想象會有那些落入無人地帶的設備。 –

+1

我不確定,但也許在你身邊存在誤解。任何設備/視口在任何給定時間只能有一個寬度。這個_single_寬度值(與範圍相反)決定了要使用的媒體查詢。 – Paul

+0

@TimBiegeleisen我試圖想象這樣的麻煩。「我有一個瀏覽器窗口,我可以將其寬度改變爲400px到800px。第一種樣式是在400px到480px範圍內工作,480px後是第二種樣式。 – Tanbi