あなたにもサクッとできる!レスポンシブWebデザイン(RWD)にチャレンジ!
今週もTechWebの時間です。というか、コレは先週やった内容ですけど(笑)
ちなみにTechWebは、テクニカルWebデザインの略でWordPressと検索エンジン対策をメインにJavaScriptやCSSを使ったTipsなどを小出しにやっています。
まずは動作サンプル
ブラウザの横幅を変更して確認してください。
今回は、ブレイクポイントを1024pxと600pxにしています。
トピックス1
トピックス2
トピックス3
レスポンシブWebデザイン(RWD)とは
「レスポンシブWebデザイン」(以下、レスポンシブ)とは、ブラウザーの画面サイズに応じてレイアウトを変更させるWebページの作り方。 パソコンとスマホから同じURLにアクセスし、同じHTMLファイルを開くと、パソコンにはパソコンに適したデザイン、スマホにはスマホに適したデザインが表示されます(中には、タブレット向けデザインを用意しているサイトもあります)。
日経BPコンサルティングスタッフルームより

サイトをレスポンシブWebデザインで構築するとなると、しっかりと考えて作らないといけませんが、とりあえずRWDを体験してみたいのであれば結構簡単に作ることができます。
レスポンシブWebデザインを実現する方法としては、linkタグでPC用の外部スタイル(style_pc.css)、スマホ用の外部スタイル(style_sp.css)など別のファイルを読み込む方法と内部CSSや外部CSSの中で各デバイス用のスタイルを記述する方法があります。
今回は、スタイルシートの中で書き分ける方法でやってみます。
<div id="wrap">
<header>
<h1>レスポンシブWebデザイン</h1>
</header>
<nav>
<ul>
<li>menu1</li>
<li>menu2</li>
<li>menu3</li>
<li>menu4</li>
<li>menu5</li>
<li>menu6</li>
</ul>
</nav>
<section>
<article class="topics">
<p>トピックス1</p>
</article>
<article class="topics">
<p>トピックス2</p>
</article>
<article class="topics">
<p>トピックス3</p>
</article>
<p class="clear"></p>
</section>
<footer>
<p>&copy; RWD All Right Reserved.</p>
</footer>
</div>
CSS
ブラウザの幅によりレイアウトを切り替えますが、その境目のことをブレイクポイントと呼びます。ブレイクポイントは、下の方法で指定します。
PC以外にスマホ用とタブレット用と切り替える場合は、ブレイクポイントを変えて2つずつ用意します。
@media screen and (max-width:ブレイクポイントの指定){
ここにスタイルを指定
}
body{
background-color: #eee;
margin: 0px;
}
#wrap{
background-color: #fff;
margin: 0px auto;
width: 900px;
}
@media screen and (max-width:1024px){
#wrap{
width: 600px;
}
}
@media screen and (max-width:600px){
#wrap{
width: 480px;
}
}
header{
height: 80px;
padding: 10px;
}
header h1{
margin: 0px;
}
nav{
background-color: #333;
}
nav ul{
margin: 0px;
padding: 0px;
list-style-type: none;
color: #eee;
}
nav li{
width: 150px;
float: left;
padding: 0.5em 0;
text-align: center;
background-color: #333;
}
@media screen and (max-width:1024px){
nav li{
width: 200px;
}
}
@media screen and (max-width:600px){
nav li{
width: 240px;
}
}
section{
padding: 12px;
margin: 30px 0px 50px;
}
.topics{
float: left;
margin: 10px;
padding: 5px;
border: 1px solid #333;
width: 260px;
height: 150px;
}
@media screen and (max-width:1024px){
.topics{
width: 256px;
height: 150px;
}
}
@media screen and (max-width:600px){
.topics{
width: 426px;
height: 200px;
}
}
footer p{
margin: 0px;
padding: 10px;
text-align: right;
}
.clear{
clear:both;
}
そろそろWEB-LABOもレスポンシブにしないとな(笑)
その他のTechWebTipsはこちら

