2015年度版 WEB制作ですぐ使えるHTML5のテンプレート

HTML5のテンプレート作ったよ〜

jQueryの高速化だの対応ブラウザだのrole属性だのいろいろHTMLに盛り込まなければいけないな〜と思っていたので、とりあえず今使えるHTML5のテンプレートを仕事用に作ろうかと。基本IE8にも対応できるようにはしてます。

Ads

さっそくテンプレートをダウンロードしたい方はこちらで

HTML5で書く

<!DOCTYPE html>

2014年10月28日にHTML5の仕様が勧告となっています。もうこれはHTML5で書くでいいと思います。IE8以下は必要なら対応ってかんじで。とはいえ、IE8のシェアも下がってきていて2015年1~3月現在、日本国内ではIE8が3.09%となってるみたいですね。

さらに、セマンティックな面からもHTML5を積極的に取り入れたいですね。

シェア数:Top 12 Desktop, Tablet & Console Browser Versions in Japan from Jan to Mar 2015 | StatCounter Global Stats

CSSハックでIE対応

<!--[if lt IE 7 ]><html class="ie ie6" lang="ja"><![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="ja"><![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="ja"><![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="ja"><!--<![endif]-->

これは必要なものだけになるかもですね〜
製作するサイトやサービスのターゲットユーザによります。とはいえ、シェア数は年々下がってきていますし、IE8未満または以下は対応しないという企業も増えてきているように思います。

クライアントに後になってIE8に対応して〜って言われたときようかな。

UA偽装

<meta http-equiv="X-UA-Compatible" content="IE=edge">

詳しくはこちらで

viewport

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

詳しくは

スマホの文字サイズ調整

body {
	  -webkit-text-size-adjust: 100%;
	}

スマホの向きを縦にしても横にしても文字サイズが変わらないようにします。

OGP

<meta property="og:title" content="タイトル">
<meta property="og:type" content="website">
<meta property="og:url" content="http://任意のURL">
<meta property="og:image" content="http://任意のURL/og_image.png">
<meta property="og:site_name" content="">
<meta property="og:description" content="" />
<meta property="fb:app_id" content="任意のID">

Twitter:Twitterカード | Twitter Developers
参考:OGP設定がしてあれば10分で設定完了!ツイートをより魅力的にしてくれる「Twitterカード」の設定方法|Tips*Blog|株式会社コプロシステム

Facebook:facebook いいねボタン設置時のOGP設定方法♪

CSS

<link rel="stylesheet" href="css/normalize.css">

normalize.cssでもreset.cssお好みで。僕はどっちも使ったことあるけど、使用感は慣れているreset.cssのほうがわかりやすいけど、慣れればどっちも同じように使えます。

normalize.css:Normalize.css: Make browsers render all elements more consistently.
reset.css:以下から好きなもので
【CSS】決定版!リセットCSS総まとめ | TONOST

jQuery対応

CDN

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script> (window.jQuery || document .write('<script src="js/jquery-1.11.2.min.js"><\/script>')); </script>

CDN使ったほうが、自サーバに置くよりも高速です。ただ、インターネットに繋がっていなかったりすると読込まれないので、それ用のJSも。

あと、jQuery2.x系はモダンブラウザに最適化されたバージョン(IE6/7/8はサポート対象外)で、jQuery1.x系古いブラウザにも対応したバージョンです。んで、2.x系のほうが高速です。正直、2.x系使いたいところですが、都合に合わせてってかんじです。

PHPでの対応も以前記事にしました。

IE8以下も対応したい場合

<!--[if lt IE 9]>
	<script src="js/html5.js"></script>
	<script src="js/IE9.js"></script>
	<script src="js/css3-mediaqueries.js"></script>
<![endif]-->

HTML5をIE8にも対応させたい場合として。

html5.js:IE8以下でもHTML5の新要素が認識できるようにするもの
aFarkas/html5shiv

IE9.js:IE8以下をIE9に近づけるためのライブラリ。min-heightとかopacityとか使えるようになる。
ie7-js – A JavaScript library to make MSIE behave like a standards-compliant browser. – Google Project Hosting

css3-mediaqueries.js:メディアクエリをIE7、IE8でも使えるようにする
css3-mediaqueries-js – css3-mediaqueries.js: make CSS3 Media Queries work in all browsers (JavaScript library) – Google Project Hosting

重くなるからレスポンシブかつIE8対応はあまりしたくないのが本音。

role属性について

role属性(ランドマーク属性)とは、WEBページを構成する要素に対して役割を持たせるもので、文書構造に対し目印をつけることでWebアクセシビリティの向上を図ることができます。

役割っていうのがややこしいですが、例えばheader要素はページ内に何個あってもいいですよね。もっと具体的にいえばページのheaderとか、コンテンツ(sectionとか)内にあるheaderです。role属性である「banner」を付与することで、ページのheaderだよというように明示的に役割を付与することができます。

参考:
レイアウトで使うランドマークのrole属性【アクセシビリティ】【WAI-ARIA】 – E-riverstyle Vanguard
role 属性を正しく設定してアクセシビリティを高める | NEAREAL
HTML5のrole属性を考える!マークアップ時に意識したいこと | ごすてっぷ
role属性を実装しよう
【STINGER5対応】 Webアクセシビリティのためrole属性を実装しよう! – Shufulife

以下基本の文書構造として記載します。

header

<header role="banner">
	<h1>ロゴ</h1>
</header>

bannerはヘッダーを表します。基本的にページ内で1個だけです。

nav

<nav role="navigation">
	グローバルナビ
</nav>

navigationはドキュメントや関連するドキュメントのナビゲーションを示します。ちなみに、navはリンク先が主要なページのときに使うのが適切なので、グローバルナビは当てはまりますね。

こちらを参考にするといいです
HTML5のマークアップ(2) navの使い方

main

<main role="main">
	メインコンテンツ
</main>

mainはドキュメントのうち主要なコンテンツを示します。ページに 1 つのみ。
なので、ドキュメントやアプリケーションの body のメインコンテンツを表す、main要素に使うのが適切ですね。

aside

<aside role="complementary">
	サイドコンテンツ
</aside>

complementaryはドキュメントを補助する情報を示します。asideが適切だと思います。

footer

<footer role="contentinfo">
	フッター
</footer>

contentinfoは、コンテンツに関する著作権やプライバシー情報へのリンクを示す。ページに 1 つのみ。コピーライトなどを表示するフッターがいいでしょう。

テンプレート

上記まとめると以下のようになります。とりあえず、今のところこんなかんじで良さそうなので、しばらくはこれで。多分、そのうち更新すると思います。

<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" lang="ja"><![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="ja"><![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="ja"><![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="ja"><!--<![endif]-->
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta name="description" content="">
	<meta name="keywords" content="">
	<meta property="og:title" content="タイトル">
	<meta property="og:type" content="website">
	<meta property="og:url" content="http://任意のURL">
	<meta property="og:image" content="http://任意のURL/og_image.png">
	<meta property="og:site_name" content="">
	<meta property="og:description" content="" />
	<meta property="fb:app_id" content="任意のID">
	<title>Document</title>
	<link rel="stylesheet" href="css/normalize.css">
	<link rel="stylesheet" href="css/style.css">
</head>
<body>
	<header role="banner">
		<h1>ロゴ</h1>
	</header>
	<nav role="navigation">
		グローバルナビ
	</nav>
	<main role="main">
		メインコンテンツ
	</main>
	<aside role="complementary">
		サイドコンテンツ
	</aside>
	<footer role="contentinfo">
		フッター
	</footer>

	<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
	<script> (window.jQuery || document .write('<script src="js/jquery-1.11.2.min.js"><\/script>')); </script>

	<!--[if lt IE 9]>
		<script src="js/html5.js"></script>
		<script src="js/IE9.js"></script>
		<script src="js/css3-mediaqueries.js"></script>
	<![endif]-->

</body>
</html>
body {
	-webkit-text-size-adjust: 100%;
}

ダウンロードはこちら

いいなと思ったらシェアお願いします

同じタグで検索

Ads

同じカテゴリーの記事

ページの先頭へ