[CSS] メディアクエリ(Media Queries)を考える
Media Queriesとは
Media Queriesとは、画面環境に応じてCSSの適用範囲を切り替える機能のことをいいます。
実際にレスポンシブウェブデザインと言われるものは、このMedia Queriesをうまく使い分けて画面幅に合わせた見た目を表現しています。
現在、スマートフォンの数はとてもたくさんあります。
そして、画面解像度は、どんどん精細なものになってきております。
Xpeeria Z1などは、縦が1920pxもあります。
これは、24インチの液晶モニターの横幅に相当します。
こんなことは、ガラケー全盛の時代には考えられないことでした。
そして、Webの世界では、この画面の高精細化が以外と厄介な問題になりかねません。
ただし、その辺はしっかり考えられているようで、iPhoneでは横幅が320px、Androidでは横幅が360pxとなっているようです。
どのように対応するか
まず、端末に合わせた横幅だよと認識させるためのソースを記述しなければなりません。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
このviewportを設定しておく事で、画面幅を端末の決められた数値として設定されます。
device-widthとなっているところを任意の数値で横幅はこの数値で表示してね!と決める事もできます。
ここからがMedia Queriesの書き方になりますが、方法が2種類あります。
読み込むスタイルシートを振り分ける方法
<link rel="stylesheet" href="pc.css" media="(min-width:769px)"> <link rel="stylesheet" href="tb.css" media="(max-width:768px) and (min-width: 321px)"> <link rel="stylesheet" href="sp.css" media="(max-width:320px)">
このようにmedia属性で振り分ける事ができます。
ファイルの数は増えますが、1ファイルの記述量が多くはならないし、スマホの表示がおかしければsp.cssを修正するだけなので、結局のところファイルが分かれている方が管理しやすいかもしれません。
1つのスタイルシート内で記述を分ける方法
@media(min-width:769px){ h1{...} h2{...} .wrapper{...} #main{...} } @media(max-width:768px) and (min-width: 321px){ h1{...} h2{...} .wrapper{...} #main{...} } @media(max-width:320px){ h1{...} h2{...} .wrapper{...} #main{...} }
こういう風になります。
この方法は、CSSの行数がかなり多くなり(実際の案件でも5000行近くいきました)修正箇所を探すのが大変になります。
なので、慣れていない人にはオススメはできません。
数あるスマホやタブレットにどう対応するか
先述したとおり、iPhoneは320px、Androidは360pxというデフォルト値がありますので、縦での表示は360pxを分岐点にするのがいいでしょう。
タブレットは、ある程度の妥協点を作るしかありません。
たとえば、iPadを基準にしてしまうのもいいでしょう。
そうすれば、iPadは横が768pxですから(上の例でもそこが基準になっています)、それ以上の大きさのタブレットでは、PCサイトと同様のレイアウトにしてしまっていいでしょう。
それだけのサイズもありますし、見にくさが先行する事もないでしょう。
まとめ
今回紹介した方法以外にも、Media Queriesの方法はあります。
今回は、一般的によく使われる方法を紹介しました。
もっと管理しやすい方法があるかもしれませんので、調べてみてください。
ad
関連記事
-
-
[WordPress] 管理画面にテーブル(WP_List_Table)を表示する
WP_List_Table 管理画面で標準テーブルを表示したい場合は、WP_List_Tableを
-
-
[jQuery] クリック時に波紋のような効果をつける
今回は、クリックした時に波紋のような効果をつけるjQueryプラグインの紹介です。 Ripple
-
-
[HTML] 初心者を脱却するためのHTMLの心構え!
デザインを見たら、まずレイアウトの方法をイメージしよう 僕は、基本的にデザインを頂いたときに、すぐ
-
-
[Dreamweaver] テンプレート機能を使う!初級〜中級編
まだまだある便利機能! 既に、上級編まで紹介してしまってますが、抜けていたので、すこし簡単です。
-
-
[HTML]デザインは、やはり大切だった!
デザイン無しでのサイト制作には限界がある 見切り発車で、 おさらいがてらWordPressのテーマ
-
-
[jQuery] 360°回転させたり、マウスでシーンを移動するプラグイン
rollerblade-js Rollerbladeを使えば、Webサイトに360°回転させてプロ
-
-
[html5] おさらいがてらWordPressのテーマを作るためにHTML5で一から作るよ![第1回]
現在、このブログはENJIさんが作られたSTINGER3という無料のテーマを利用させて頂いて
-
-
[CSS] CSS3のtransitionを使ってみよう!
CSS3のTransitionは、そんなに難しくない! CSS3では、CSSのマークアップだけでア
-
-
[jQuery] フルサイズ(ブラウザいっぱい)で画像を表示するlightbox風プラグインの紹介 [ギャラリーサイト向け]
jQuery fullsizable plugin ブラウザ画面いっぱいに画像を表示したい時に使え
-
-
[CSS] clearfixの使い方を考える
現在のclearfix 以前は、IE6に対応させるためにソースがちょっと多かったですが、現在はかな