WEBデザイン基礎(4)レスポンシブWEBデザイン

レスポンシブWEBデザインってどんなデザイン?

レスポンシブWEBデザインとは、パソコン、スマホ、タブレットなど、画面サイズが違っていても、デバイスの大きさに合わせて、最適化して表示させるデザインのことです。
デバイスごとにHTMLを作っていたら、作業が増えます。CSSで表示を切り替えれば、複数のHTMLを作らずに済みます。

レスポンシブWEBデザインの方法

headタグ内にviewport設定をします。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

CSSは、メディアクエリ、@media screenを使って、画面サイズで振り分けします。
以下は、0から480pxまでの画面の場合は...の意味。

@media screen and (max-width: 480px) {
}

以下のHTMLをブラウザで見て、左右の幅を変えてみよう。

responsive.html

<!Doctype HTML>
<html> 
<head>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RESPONSIVE</title>

<style type="text/css">
<!--

#content {
width: 600px;
background: white;
}

@media screen and (max-width: 480px) { 
#content {
width: 100%;
background: white;
}

}

.box {
height: 100px;
float: left;
}
.a {
width: 25%; 
background: red;
}
.b {
width: 25%;
background: blue; 
}
.c {
width: 25%; 
background: yellow;
}
.d {
width: 25%;
background: green;
}
.fc{
clear:both;
}
-->
</style>

</head>
<body>

<div id="content">
<p>レスポンシブWEBデザイン</p>

<div class="box a">
<p>red</p>
</div>

<div class="box b">
<p>blue</p>
</div>

<div class="box c">
<p>yellow</p>
</div>

<div class="box d">
<p>green</p>
</div>
<div class="fc">
</div>

</div>


</body>
</html>

次のコードは、Tabeleの表示を画面サイズに合わせて変えることができます。

<!Doctype HTML>
<html> 
<head>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RESPONSIVE TABLE</title>

<style type="text/css">
<!--

table {
 border-collapse: collapse;
 width: 100%;
}
table th,
table td {
 padding: 10px;
 border: 1px solid #000000;
}
table th {
 background-color: #000000;
 text-align: center;
 width: 30%;
}

@media screen and (max-width: 480px) {
 table {
   border-top: 1px solid #000000;
 }
 table td {
   display: block;
   text-align: center;
 }
 table th {
   display: block;
   border-top: none;
   border-bottom: none;
   width: 100%;
 }
}

}
-->
</style>

</head>
<body>

<h1>画面の幅が480px以下で、表が1列になる</h1>
<table>
<tr>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
</tr>
<tr>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
</tr>
<tr>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
<td>★★ MENU ★★</td>
</tr>
</table>


</body>
</html>

演習 レスポンシブWEBデザインでコードを書こう。

これまで制作した、divボックスを利用し、レスポンシブWEBデザインに挑戦しよう。
floatで左寄せで、横並びに並んでいる3個以上ボックスが、幅480px以下の画面だと、floatがキャンセルされるようにコードを書いてみましょう。

この記事が気に入ったらサポートをしてみませんか?