iPhoneやiPadに代表されるスマートフォンやタブレットの大きな特徴の一つに縦持ちした場合と横持ちした場合、画面が縦長もしくは横長になる。
せっかくなので、縦持ちから横持ちに切り替え時に、スタイルシートを入れ替えたい。
今回はその方法について簡単に説明する。
以下のようなタグをヘッダーに埋め込めば、画面が縦長の場合と横長の場合でスタイルシートが入れ替わる。
もちろん、「portrait.css」や「landscape.css」は個別に用意する必要がある。
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">
上記設定で、
・画面が縦長の場合には「portrait.css」が適用
・画面が横長の場合には「landscape.css」が適用
されることとなる。
画面の小さなiPhoneなどのスマートフォンと画面の大きなiPadなどのタブレットで適用されるスタイルシートを変更したい場合もあるだろう。
その場合は、以下のように上記スタイルシートを変更することで、iPhoneとiPadの場合に適用されるスタイルシートを変更することが可能だ。
それが、「max-device-width」もしくは「min-device-width」となる。
「max-device-width」は最大の横幅が指定された幅以下であった場合という意味
「min-device-width」はその逆で、最小の横幅が指定された幅以上であった場合という意味となる。
したがって、iPadとiPhoneでスタイルシートを入れ替える場合は、以下のような記述となる。
<!-- iPad Stylesheet -->
<link rel="stylesheet" media="all and (max-device-width: 1024px) and
(orientation:portrait)" href="ipad-portrait.css" type="text/css" />
<link rel="stylesheet" media="all and (max-device-width: 1024px) and
(orientation:landscape)" href="ipad-landscape.css" type="text/css" />
<!-- iPhone Stylesheet -->
<link rel="stylesheet" media="all and (max-device-width: 480px)"
href="iphone.css" type="text/css" />
上記はの場合
・「横幅が1024px」までで「縦長」の場合は「ipad-portrait.css」が適用
・「横幅が1024px」までで「横長」の場合は「ipad-landscape.css」が適用
・「横幅が480px」までの場合は「iphone.css」が適用
されることとなる。
※iPhoneに限っては縦長、横長のいずれでも同じスタイルシートが適用している。