HTML5 + CSS3 レスポンシブサイト テンプレート『Minimaxing』

html5up-minimaxing

スマートフォンが普及して、WEBサイトをスマートフォンで閲覧することも多くなっています。従来のWEBサイトをスマートフォンに対応したいと検討される方もいらっしゃると思います。

今回、ご紹介するのはパソコン、タブレット、スマートフォンに対応したレスポンシブ型のWEBサイトについてです。

レスポンシブサイトとはどのようなサイトなのか、『HTML5 UP』で公開されている商用利用OKのライセンスフリーのテンプレート『Minimaxing』の中身をみてHTML5 + CSS3で制作をするレスポンシブサイトの構築ノウハウを学んでみようと思います。

デモページがこちらにて公開されています。同じでもページをパソコンとスマートフォンで開いてみるとその違いがわかると思います。パソコンで閲覧をしている場合でも、閲覧しているブラウザの横幅を変えてみるとページがどのように変化するか確認することができます。

テンプレートデータのダウンロード

最初にテンプレートデータをダウンロードします。『HTML5 UP』のサイトを開くとテンプレートが一覧で紹介されています。今回、開いてみる『Minimaxing』ページの一番下に公開されいます。

テンプレート名『Minimaxing』のとなりにある「Free Download」ボタンをクリックしてデータをダウンロードすることができます。

テンプレート『Minimaxing』の内容

ダウンロードしたデータを解凍して生成されるファイルの内容は以下のようになっています。

index.html
LICENSE.txt
onecolumn.html
README.txt
threecolumn.html
twocolumn1.html
twocolumn2.html
|
+---css
|   |   ie9.css
|   |   skel-noscript.css
|   |   style-1000px.css
|   |   style-desktop.css
|   |   style-mobile.css
|   |   style.css
|   |
|   \---images
|           banner.jpg
|           bg1.png
|           button-hover.svg
|           button.svg
|           header-wrapper.svg
|           header.svg
|           icon-bubble.png
|           mobileUI-site-nav-opener-bg.svg
|           nav-a-hover.svg
|           nav-a.svg
|
+---images
|       pic1.jpg
|       pic2.jpg
|       pic3.jpg
|       pic4.jpg
|       pic5.jpg
|       pic6.jpg
|
\---js
        config.js
        html5shiv.js
        jquery.min.js
        skel-panels.min.js
        skel.min.js

LICENSE、README

最初にライセンスについてと、「読んでね」の内容をみてみます。

「LICENSE.txt」の内容はクリエイティブ・コモンズの「Attribution 3.0 Unported (CC BY 3.0)」の内容(英語)になっています。

続けて「README.txt」の内容をみてみます。

Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)

訳すと個人利用、商用利用ともにCCA 3.0のライセンス項目に従いフリーです。という内容でしょう。

CCA 3.0 の内容については

  • 本作品を複製、頒布、展示、実演することができます。
  • 二次的著作物を作成することができます。
  • 表示 — あなたは原著作者のクレジットを表示しなければなりません。
  • 継承 — もしあなたがこの作品を変形や改変したり、この作品に基づいた作品を作る場合、あなたは全く同じか、同一もしくは互換性のある許諾条件でその作品を頒布しなければなりません。

となっているので、原著作者のクレジットを表示し、条件を継承した上で個人利用、商用利用ともに複製、二次利用はOKということですね。

ページファイルについて

ページのファイルはトップページが1種類と下層ページが4種類。本文の見出しなどもテキストベースでなのでシンプルです。レスポンシブサイトの必要最低限の要素に近いのでカスタマイズもしやすいかもしれません。

index.html・・・トップページ
onecolumn.html・・・下層ページ(1コラムレイアウト)
threecolumn.html・・・下層ページ(3コラムレイアウト)
twocolumn1.html・・・下層ページ(2コラムレイアウト:右メニュー)
twocolumn2.html・・・下層ページ(2コラムレイアウト:左メニュー)

HEADの内容

「index.html」を開いてHEADの内容をみてみます。

レスポンシブサイトのフレームワークとして「skel.js」が使われています。skel.jsはレスポンシブなWebサイトを構築する為の軽量(19KB)なフロントエンドフレームワークです。

jQueryなどを使わず「skel.js」のみでも、レスポンシブ対応のサイトが制作できますが、追加プラグインとして「skel-panels.js」があるため、jqueryとセットに読み込まれています。

「config.js」は「skel.js」での設定値(ブレイクポイント)が書かれています。


<!DOCTYPE HTML>
<!--
	Minimaxing 3.1 by HTML5 UP
	html5up.net | @n33co
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
	<head>
		<title>Minimaxing by HTML5 UP</title>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<meta name="description" content="" />
		<meta name="keywords" content="" />
		<link href="http://fonts.googleapis.com/css?family=Ubuntu+Condensed" rel="stylesheet">
		<script src="js/jquery.min.js"></script>
		<script src="js/config.js"></script>
		<script src="js/skel.min.js"></script>
		<script src="js/skel-panels.min.js"></script>
		<noscript>
			<link rel="stylesheet" href="css/skel-noscript.css" />
			<link rel="stylesheet" href="css/style.css" />
			<link rel="stylesheet" href="css/style-desktop.css" />
		</noscript>
		<!--[if lte IE 9]><link rel="stylesheet" href="css/ie9.css" /><![endif]-->
		<!--[if lte IE 8]><script src="js/html5shiv.js"></script><![endif]-->
	</head>

「skel-panels.js」って何をするファイルのなのかと思って調べてみると、どうも導入するとレイヤーのようなパネルを作り、オーバーレイなどのレイアウトが制作しやすくなるみたいです。訳が違っていたらごめんなさい。

config.js

実際にレスポンシブ対応がどのようになっているのかを読み解いてみます。「config.js」を開いて「skel.js」の設定内容みてると、とてもシンプルな記述なのがわかります。

window._skel_config = {
	preset: 'standard',
	prefix: 'css/style',
	resetCSS: true,
	breakpoints: {
		'1000px': {
			grid: {
				gutters: 25
			}
		}
	}
};

window._skel_panels_config = {
	preset: 'standard'
};

これだけを眺めていると、サイズに関係するのは1000pxしかわかりまね。

これだけでどうやってデスクトップやモバイル端末のサイズに合わせた、レスポンシブ対応が行われているのでしょうか?

実は「skel.js」にはプリセット(セットされている標準値)が用意されています。「preset: ‘standard’」の記述でスタンダードが指定されているのがわかります。

プリセットのスタンダードでは、ブレイクポイントとして、mobile (480px 以上), 1000px (481px 以上 1000px 以下), desktop (481px 以上)が設定されています。

このブレイクポイントで設定された範囲において動的なアクションが行われて、レスポンシブ対応が実行されます。

より具体的に動作を確認するために「config」で何が設定されているのかコメントをつけてみました。

window._skel_config = {
	preset: 'standard', //プリセット「standard」を宣言。プリセットを使用しない場合は、記述をしません。
	prefix: 'css/style', //スタイルシートの読み込み先の指定
	resetCSS: true, //リセットCSSを読み込むかどうか、リセットCSSの内容は「skel.js」本文内に記述
	breakpoints: { //ブレイクポイントの設定と動作
		'1000px': { //ブレイクポイントが1000pxのとき行う動作{}内
			grid: { //グリッドにおいて
				gutters: 25 //スペースのサイズを設定にする
			}
		}
	}
};

この「config」の内容で、次のような動作が実行されます。

  • ブラウザの表示サイズがmobile (480px 以上)のときcss/style-mobile.css を読み込みます。
  • ブラウザの表示サイズが1000px (481px 以上 1000px 以下)のときcss/style-mobile.css を読み込みます。
  • ブラウザの表示サイズがdesktop (481px 以上)のときcss/style-desktop.css を読み込みます。
  • ※ブラウザの表示サイズが1000px (481px 以上 1000px 以下)のときだけ、グリッドレイアウトのスペースが25pxになります。

ブレイクポイントで設定されたサイズごとに、読み込むスタイルシートを動的に変化させてレスポンシブ対応を行う。

「skel.js」の基本的な動作がわかりました。

少しだけ応用で「mobile」480px以下という条件を、640px以下にしたい場合は「config」の内容を以下のように変更すればサイズの範囲を変えることができます。

window._skel_config = {
	preset: 'standard',
	prefix: 'css/style',
	resetCSS: true,
	breakpoints: {
		'1000px': {
			grid: {
				gutters: 25
			}
		},
		'mobile': {
			range: '-640'
		}
	}
};

「skel.js」は、javascriptで読み込ませるスタイルシートを変化させているので、javascriptが動作しないときの動作も対応も必要になります。

HEADタグの内容を思い出すと。「noscript」の場合の対応がされていますね。

		<noscript>
			<link rel="stylesheet" href="css/skel-noscript.css" />
			<link rel="stylesheet" href="css/style.css" />
			<link rel="stylesheet" href="css/style-desktop.css" />
		</noscript>

レスポンシブサイトの一番重要な動作が把握できたので、カスタマイズを行う場合「skel.js」の仕様に沿って行えば対応ができます。

関連記事

【JavaScript】各種ユーザーインターフェイスを実装するライブラリ『jQuery UI』

『jQuery UI 』は一般的なメニュー、アコーディオン、タブなどの多岐にわたるユーザーインターフェイスを実装することができるjQuery対応のJavaScriptライブラリです。 jQuery UI 『jQuery UI 』を用いることで「Interactions...続きを読む

2015.02.10HTMLコーディング

HTML5の可能性とメリット

HTML5とは? W3C より2008年1月22日にHTML5のドラフト(草案)が発表、2014年には正式に勧告されるのではないかと言われています。 HTML5は、ウェブページのヘッダ情報を示すhead要素、ナビゲーションのブロック用のnav要素、コピーライトなどのフッタ...続きを読む

2015.02.06HTMLコーディング

【Win10】Office 2016 の一部が英語表記になり戻らない

Microsoft Office 2016 を Windows10 の環境で利用していたところ、いつの間にか、画面の一部が英語になってしまいました。リボンなどのUI部分ではなく、作業中にポップアップされる操作画面のごく一部の日本語が英語になるという半端な状態です。 修正...続きを読む

2021.01.24Windows10パソコンの使い方

【フォント】サインに最適なフリーのシンボンルフォント

WEBサイトや印刷物のデザインにおいて、メニューやボタン、マップ上のシンボルなどに利用者にわかりやすく内容を伝えるためアイコンを用いることがあります。 ビジュアルで内容を伝えることができるシンボルタイプのフリーフォントをまとめてみました。 Heydings Com...続きを読む

2015.02.14フォント

静岡洋館巡り「旧マッケンジー住宅」フォトギャラリー

国登録有形文化財「旧マッケンジー住宅」を見てきました。旧マッケンジー住宅は、明治から昭和初期にかけて活躍した建築家のウィリアム・M・ヴォーリズによる設計です。現在にでも通じるシステムキッチンや浴室があり、70年以上前とは思えないほどの設備が整っています。 概要(引用) ...続きを読む

2015.04.06フォトギャラリー