★メディアクエリでスタイルシートを切り替える

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

メディアクエリでスタイルシートを切り替える

広告



前回、meta要素でビューポートを設定して、ウェブページを等倍に表示させられるようになりました。
この状態のウェブページに対して、スマートフォン用のスタイルを作成していきます。

スマートフォン用のスタイルを作成すると言っても、スマートフォン向けに新たに別のウェブページを作成するわけではありません。
これまでに作成したHTMLファイルをそのまま利用して、スタイルシートを切り替えることでスマートフォンサイトを実現します。

具体的には、ユーザーがパソコンでアクセスしてきた場合と、スマートフォンでアクセスしてきた場合とで、適用するスタイルシートを別のものにします。
それを実現するためにメディアクエリという手法を使います。

メディアクエリとは、ユーザーの利用しているデバイスのウィンドウサイズに応じて、適用するCSSを切り替えるというものです。
つまり、パソコンモニタのような大きな画面の場合にはパソコン向けのスタイルシートを適用させて、スマートフォンのような小さな画面の場合にはスマートフォン向けのスタイルシートを適用させるということです。

サンプルサイトでは、大きな画面と小さな画面の境目を800ピクセルにしようと思います。
index に以下の記述を追加してください。

HTMLソース(index )

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" media="screen and (max-width:800px)" href="base_sp.css">
<title>ウェブサンプル株式会社</title>
</head>
<body>
<div id="pagebody">

	<!-- ヘッダ -->
	<div id="header">
	<h1><a href="index "><img src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/logo.png" alt="ウェブサンプル株式会社"></a></h1>
	</div>

	<!-- メインメニュー -->
	<ul id="menu">
	<li><a href="index ">ホーム</a></li>
	<li><a href="product ">製品紹介</a></li>
	<li><a href="profile ">会社概要</a></li>
	<li><a href="contact ">お問合せ</a></li>
	</ul>

	<!-- ヘッダ画像 -->
	<div id="img_index">
	<img src="./images/img_index.png" alt="あしたをみつめるウェブサンプル株式会社">
	</div>

	<!-- サブメニュー(左カラム) -->
	<div id="submenu">
		<h2>新着情報</h2>
		<ul>
			<li><a href="#info0001">新商品のご案内</a></li>
			<li><a href="#info0002">展示会への出展</a></li>
			<li><a href="#info0003">環境への取り組み</a></li>
		</ul>
	</div>

	<!-- インフォメーション(右カラム) -->
	<div id="info">
		<h3 id="info0001">新商品のご案内</h3>
		<p>
		<img src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/index0001.png" alt="新商品のイメージ画像" class="infoimg_index">
		あいうえおかきくけこさしすせそ(中略)
		</p>
		<hr>
		
		<h3 id="info0002">展示会への出展</h3>
		<p>
		<img src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/index0002.png" alt="展示会への出展のイメージ画像" class="infoimg_index">
		あいうえおかきくけこさしすせそ(中略)
		</p>
		<hr>
	
		<h3 id="info0003">環境への取り組み</h3>
		<p>
		<img src="https://www.htmq.com/wp-content/themes/htmq/htmq-images/index0003.png" alt="環境への取り組みのイメージ画像" class="infoimg_index">
		あいうえおかきくけこさしすせそ(中略)
		</p>
		<hr>
	</div>

	<!-- フッタ -->
	<div id="footer"><small>Copyright (c) ウェブサンプル株式会社 All Rights Reserved.</small></div>

</div>
</body>
</html>

上記のHTMLでは、まずbase.cssを適用して、さらに、ウィンドウサイズが800px以下の場合にはbase_sp.cssも適用するように指定しています。
まだ、base_sp.cssを作成していないので、ブラウザで表示をしても特に変化はありません。

ウィンドウ幅に応じて異なるスタイルを指定する

今回追加したHTMLソースの内容を確認しておきましょう。

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" media="screen and (max-width:800px)" href="base_sp.css">

上記のHTMLでは、link要素でbase.css とbase_sp.css の2つのCSSファイルと関連付けています。
base.cssはすべてのメディアで適用され、base_sp.cssはウィンドウ幅800px以下の場合にだけ適用されます。

メディアクエリを使用してスタイルを指定し分ける場合、ユーザーが利用しているデバイスの種類ではなく、ユーザーが閲覧しているウィンドウ幅に応じてスタイルが適用されます。
スマートフォンはウィンドウサイズが小さいため(ウィンドウ幅800px以下のデバイスならば)、base_sp.cssが適用されます。
また、ユーザーがパソコンで閲覧している場合にも、ブラウザのサイズを小さくして横幅800ピクセル以下にリサイズすれば、base_sp.cssが適用されることになります。

次回は、base_sp.cssを新規作成して、本当にウィンドウ幅に応じてスタイルが切り替わるかどうか、表示テストをしてみましょう。

まとめ
  1. メディアクエリでユーザーのデバイスのウィンドウサイズを判別して、スタイルシートを切り替える
  2. スマートフォンのような小さな画面の場合には、スマートフォン向けのスタイルシートを適用させる
  3. 今回の作例では、ウィンドウ幅が800px以下の場合にスマートフォン向けCSSファイルを適用する
<前へ 目次へ 次へ>

広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
63 users signed up
もっと表示する