2013年5月22日
CSS3 メディアクエリを使ってWebサイトをスマートフォン・タブレット対応しよう
皆様、ご無沙汰しております。笹亀です。
ブログを公開させていただくペースが遅くなってしまいました・・申し訳ございません。そのことが災いしたのか、先日、自分のスマートフォンを落としてしまい、液晶が派手に割れてしまいました。
さて最近、仕事をしている中でPC系だけではなく、スマートフォン系のサイトを 作成をすることはもはや当たり前になってきました。そんなスマートフォンサイトでもさらにタブレットにも対応をさせたWebサイトの構築を求められることが多くなってきています。タブレットに対応させるサイトの構築方法ですが、様々なものが考えられます。
例えば動的にタブレット・スマートフォンを判定して、テンプレートを出し分けするといった対応する方法やViewPortを固定値にして作成する方法などがございます。
今回はViewPortは下記のようにデバイスのサイズにした状態でCSS3のメディアクエリというものを利用した方法をご紹介したいと思います。
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
メディアクエリとはメディアタイプとメディア特性を必要とする一つ以上の条件式からなりたちます。メディアタイプには様々なものがあり、それぞれの条件にあったときに特定のスタイルを適応することができます。
参考:メディアクエリ
今回はスマートフォンやタブレットなどを想定した画面サイズの違いによって、適応するスタイルを変更するといったことをおこないます。簡単なサンプル用のHTMLとメディアクエリを記載したCSSを用意して説明致します。
sample.html
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<meta name="format-detection" content="telephone=no" />
<link rel="stylesheet" href="./css/sample.css" />
<title>メディアクエリのサンプル</title>
</head>
<body id="top">
<div id="page">
<header class="global">
<div id="header_inner">
<p class="headerlogo"><a href="https://www.asial.co.jpimg/logo.png &mode=1" class="popupimg"><img src="https://www.asial.co.jpimg/logo.png"></a></p>
</div>
</header>
<section class="main">
<div class="test_1">
<h3><a href="https://www.asial.co.jpimg/sample.jpg &mode=1" class="popupimg"><img src="https://www.asial.co.jpimg/sample.jpg"></a></h3>
<div class="test_1_inner">
<ul class="list">
<li><a><p class="head">ブログAほげほげほげほげほげほげほげほげほげほげほげほげほげ</p><p class="time">2013年5月21日</p></a></li>
<li><a><p class="head">ブログB</p><p class="time">2013年5月20日</p></a></li>
<li><a><p class="head">ブログC</p><p class="time">2013年5月19日</p></a></li>
</ul>
</div>
</div><!-- //.test_1 -->
<div class="test_2">
<div class="text_big">文字サイズ大</div>
<div class="text_middle">文字サイズ中</div>
<div class="text_small">文字サイズ小</div>
<div class="copy">Copyright © Asial Corporation All rights Reserved.</div>
</div>
</section>
</div>
</body>
</html>
sample.css
/** header-start **/
header.global {
background: #fe9700; /* Old browsers */
background: -moz-linear-gradient(top, #fe9700 0%, #fed919 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fe9700), color-stop(100%,#fed919)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #fe9700 0%,#fed919 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #fe9700 0%,#fed919 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #fe9700 0%,#fed919 100%); /* IE10+ */
background: linear-gradient(to bottom, #fe9700 0%,#fed919 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fe9700', endColorstr='#fed919',GradientType=0 ); /* IE6-8 */
position: relative;
height: 190px;
}
header.global .headerlogo {
float: