私はこの@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
があるからでしょうか。
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であなたが好きなことを何でもすることができます。これは私がすべてのブラウザのためにスタイルを構築するとき私が最もよく見つけたものの単なる例です。
また!印刷適性を探しているなら@media print{}
を使うことができます
根本的な問題はmax-device-width
と普通のmax-width
の使用です。
"device"キーワードを使用すると、ブラウザウィンドウの幅ではなく、画面の物理的な寸法がターゲットになります。
例えば:
@media only screen and (max-device-width: 480px) {
/* STYLES HERE for DEVICES with physical max-screen width of 480px */
}
Versus
@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. */
}
content
属性の正しい値には、代わりにinitial-scale
を含める必要があります。
<meta name="viewport" content="width=device-width, initial-scale=1">
^^^^^^^^^^^^^^^
単純に使う
@media only screen and (max-width: 600px) and (min-width: 400px) { }