SlideShare a Scribd company logo
1 of 60
Download to read offline
「HTML5 Boilerplate」から考える、
これからのマーク ッ  ア プ        2013年 4月19日
                  Knock! Knock! 勉強会
1)構成フ イ
     ァ ルを確認してみよう
2)各フ イ
    ァ ルを検証してみよう
3)も と便利にBoilerplateを使う
   っ                  には
※ 今日は新しいタグとか、要素とか、そういう話はないですよ
W eb




              5
1/20
W eb

       W eb/DTP

          W eb

                    W eb   S



1/20
Knock! Knock! ∼静岡のWeb制作者のための勉強会∼
1/20
1)構成フ イ
     ァ ルを確認してみよう
h5bp-html5-boilerplate-v4.2.0-0-g0adda79.zip
隠し ァ ル
  フ イ
テンプレート ァ ル
                               フ イ
cssフ ルダ / imgフ ルダ / jsフ ルダ /
     ォ           ォ        ォ
apple-touch-icon群 / favicon.ico /
index.html / 404.html /
crossdmain.xml / humans.txt / robot.txt /
.htaccess

docsフ ルダ / LICENSE.md /
     ォ
README.md / CHANGELOG.md
                          ドキ メン フ イ
                            ュ ト ァ ル
cssフ ルダ / imgフ ルダ / jsフ ルダ /
     ォ          ォ         ォ
apple-touch-icon群 / favicon.ico /
index.html / 404.html /
crossdmain.xml / humans.txt / robot.txt /
.htaccess

docsフ ルダ / LICENSE.md /
     ォ
README.md / CHANGELOG.md
2)各フ イ
    ァ ルを検証してみよう
2-1)index.html
<!DOCTYPE html>
<!--[if lt IE 7]>   <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>      <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>      <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
   <meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
   <title></title>
   <meta name="description" content="">
   <meta name="viewport" content="width=device-width">

   <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->

   <link rel="stylesheet" href="css/normalize.css">
   <link rel="stylesheet" href="css/main.css">
   <script src="js/vendor/modernizr-2.6.2.min.js"></script>
</head>

<body>
<!--[if lt IE 7]>
   <p class="chromeframe">You are using an <strong>outdated</strong> browser.
   Please <a href="http://browsehappy.com/">upgrade your browser</a> or
   <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->

<!-- Add your site or application content here -->
<p>Hello world! This is HTML5 Boilerplate.</p>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"></script>')</script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>

<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
<script>
   var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
   (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
   g.src='//www.google-analytics.com/ga.js';
   s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
</body>
</html>
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
IEの条件分岐コメント × html要素

CSSハックやIE専用CSSファイルに換わる手法
IEのバージョンによ て、 要素のク
          っ html    ラス属性を変更

 例)IE7の場合 → <html class="no-js lt-ie9 lt-ie8">
<script src="//ajax.googleapis.com/ajax/libs/
   jquery/1.9.1/jquery.min.js"></script>
 <script>window.jQuery || document.write(
      '<script src="js/vendor/jquery-1.9.1.min.js"></script>'
   )</script>
 <script src="js/plugins.js"></script>     CDNの読み込みと
 <script src="js/main.js"></script>        フ ォールバック
 <!-- Google Analytics:
   change UA-XXXXX-X to be your site's ID. -->
(GAト   ラッキングタ    グ→省略)
 </body>
          JavaScriptはBody要素の閉じタグの直前
JavaScriptの記述はbody要素の閉じタグ直前

表示速度の最適化
 → JSの読込中はHTMLレンダ ングがスト
                 リ     ップ
  (少しでも早くレンダ ングした方がユーザーの待たされている感が少ない)
            リ

 → jQueryでは、
           ページの読み込みが終わっ ら
                       てか
   処理を開始す  るパターンが多い。
   それな HTMLの最後でも問題ないよね
        ら、
  (HTMLの読み込み = DOMの構築を待ってから処理を始めるため)
CDNの読み込みとフォールバック

CDNの読み込みは、  プロトコル http / https)
                 (            を省略
 → htmlファ ルに合ったプロトコルを自動的に選択
         イ
   ただし、 配布元のSSL対応には注意
CDNに接続できない場合のフォールバック
 → 接続できない場合のみ、ローカルのファ ルを参照
                     イ
  (表示速度向上のため、有名ライブラリのキャッシュ イ
                          ファ ルを効率的に使う)
2-2-1)normalize.css
Normalize.css ?
表示をゼロにしない
(sup や sub を使えば上付き、下付きになるし、 は箇条書きになる)
                           ul

バグ補正
( pre 要素における font-size、 9 における SVG の overflow の挙動など)
                       IE

CSS 解析時に、必要以上のゴミとなるコードを作らない
(リセット系 CSS は結果的にゴミとなる margin:0 などが大量に挿入される)


必要に応じて不要箇所を削除しても OK
( Nomalize.css は適切にコメントで区切られていて、不要箇所は削除が簡単)

                        http://www.yomotsu.net/blog/2013/02/23/normalize.html
normalize.css か reset.css か

好きなヤツを使えばいいじゃん…
2-2-2)main.css
画像置換
.ir { background-color: transparent;
      border: 0;
      overflow: hidden;
      *text-indent: -9999px; /* IE 6/7 fallback */
}
.ir:before { content: "";
              display: block;
              width: 0;
              height: 150%;
}
<h1 class="logo ir">
    静岡のWeb系勉強会/セミナー Knock! Knock!
</h1>

.logo {
     width: 220px;
     height: 160px;
     background: url(/img/logo.png) no-repeat;
}
数種類の非表示処理
/*
 * Hide from both screenreaders and browsers
 */         ヴ ジュ
             ィ アル上もス リー  ク ンリーダーでも消え      る

.hidden {
   display: none !important;
   visibility: hidden;
}
/* Hide only visually,
   but have it available for screenreaders */
                  ス リー
                   ク ンリーダーでは読み上げ
.visuallyhidden {    ヴ ジュ
                       ィ アル上では消える
    border: 0;            clip: rect(0 0 0 0);
    height: 1px;          margin: -1px;
    overflow: hidden;      padding: 0;
    position: absolute;   width: 1px;
}
/* Hide visually and from screenreaders,
   but maintain layout */
         ィ アル/ス リー
       ヴ ジュ         ク ンリーダーからは消え      る
.invisible {              レイ ト
                             アウ 上は残る
   visibility: hidden;
}
簡素化されていくclearfix
.clearfix:before, .clearfix:after {
   content: " ";
   display: table;
}
.clearfix:after {
   clear: both;
}
.clearfix {
   *zoom: 1; /* For IE 6/7 only */
}
サンプル Media Queries
min-widthの単位はem
@media only screen and (min-width: 35em) {
  /* Style adjustments for viewports that meet the condition */
}
These examples override the primary ('mobile first') styles.
@media print,                 (モバイ   ルファーストな基本ス ルを上書きする)
                                                  タイ

     (-o-min-device-pixel-ratio: 5/4),
     (-webkit-min-device-pixel-ratio: 1.25),
     (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */
}
2-3-1)Modernizer.js
Modernizer.js ?

Modernizr is a JavaScript library that
detects HTML5 and CSS3 features in
the user’ browser.
         s
                        http://modernizr.com/

Modernizrは HTML 5とユーザーのブラウザ
にCSS 3の機能を検出するJavaScriptライブ
ラリです。                         (Google 翻訳)
<html class="no-js" lang="ja">

<html class=" js flexbox canvas canvastext webgl
no-touch geolocation postmessage websqldata-
base indexeddb hashchange history dragand-
drop websockets rgba hsla multiplebgs back-
groundsize borderimage borderradius boxshad-
ow textshadow opacity cssanimations csscol-
umns cssgradients cssreflections csstransforms
csstransforms3d csstransitions fontface generat-
edcontent video audio localstorage sessionstor-
age webworkers applicationcache svg inlinesvg
smil svgclippaths" lang="ja">
2-3-1)plugin.js
// Avoid `console` errors in browsers that lack a console.
(function() {
   var method;
   var noop = function () {};
   var methods = [
      'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
      'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
consoleに対応していないブラウザでも
      'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
      'timeStamp', 'trace', 'warn'
   ];  エラー表示を出さないようにする
   var length = methods.length;
   var console = (window.console = window.console || {});
   while (length--) {
      method = methods[length];
       if (!console[method]) {
          console[method] = noop;
      }
   }
}());
2-4).htaccess
・カスタム404ページ
・Google Chrome Frameを呼び出す設定
・MIME Type
・URL Rewrite wwwア /ナシの統一とか)
           (     リ
3)も と便利にBoilerplateを使う
   っ                  には
基本テンプレートを選択
テンプレートをカス イ
         タマ ズ
まとめ
・HTML5 Boilerplateには様々な ウハウがギッシリ
                       ノ
・次世代のマーク ッ レン
        ア プト ドもキャッチア プ
                    ッ
・自分の作業テンプレート ア プデートし うぜ
            も ッ     よ !
実装に困っ ら
     た ご連絡ください!
本日はあ がと ございま
    り う     した
 ご連絡・ご質問など下記までお願いし            ます
   E-mail : info@hamnaly.com
  Facebook / Twitter : yabecchy

More Related Content

What's hot

WordPress を使いこなそう
WordPress を使いこなそうWordPress を使いこなそう
WordPress を使いこなそう
Wataru OKAMOTO
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
Taku AMANO
 

What's hot (20)

HTML仕様書を読んでみよう
HTML仕様書を読んでみようHTML仕様書を読んでみよう
HTML仕様書を読んでみよう
 
Web Platform -- Moving Forward!
Web Platform -- Moving Forward!Web Platform -- Moving Forward!
Web Platform -- Moving Forward!
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
WordPress を使いこなそう
WordPress を使いこなそうWordPress を使いこなそう
WordPress を使いこなそう
 
Polymerで作る次世代ウェブサイト
Polymerで作る次世代ウェブサイトPolymerで作る次世代ウェブサイト
Polymerで作る次世代ウェブサイト
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考える
 
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
 
HTML5, きちんと。
HTML5, きちんと。HTML5, きちんと。
HTML5, きちんと。
 
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
 
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
gulp + sass で目指せ倍速コーディング(東区フロントエンド勉強会 2015年 第1回) 本編
 
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
20140926 mt cloud_handson_seminar
20140926 mt cloud_handson_seminar20140926 mt cloud_handson_seminar
20140926 mt cloud_handson_seminar
 
WordPressとjQuery
WordPressとjQueryWordPressとjQuery
WordPressとjQuery
 
20141206 handson
20141206 handson20141206 handson
20141206 handson
 
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解するWordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
 
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
 

Similar to 「html5 boilerplate」から考える、これからのマークアップ

アプリコンテスト
アプリコンテストアプリコンテスト
アプリコンテスト
Tomonori Yamada
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
 
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
Toshimichi Suekane
 

Similar to 「html5 boilerplate」から考える、これからのマークアップ (20)

Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
 
Firefox5+HTML5×5
Firefox5+HTML5×5Firefox5+HTML5×5
Firefox5+HTML5×5
 
アプリコンテスト
アプリコンテストアプリコンテスト
アプリコンテスト
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
 
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
gulp + sass で目指せ倍速コーディング(第2回 gulpfile.jsの分割管理と画像作成の効率化)
 
HTML5
HTML5HTML5
HTML5
 
Attractive HTML5
Attractive HTML5Attractive HTML5
Attractive HTML5
 
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI
for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI for Developer、Microsoft Edge とInternet Explorer で新しくサポートされるAPI
for Developer、 Microsoft Edge とInternet Explorer で 新しくサポートされるAPI
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
HTML5での制作、いつから始める?
HTML5での制作、いつから始める?HTML5での制作、いつから始める?
HTML5での制作、いつから始める?
 
CMSMix Sapporo vol.3 (Drupal の回)
CMSMix Sapporo vol.3 (Drupal の回)CMSMix Sapporo vol.3 (Drupal の回)
CMSMix Sapporo vol.3 (Drupal の回)
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
 

More from Yasuhito Yabe

More from Yasuhito Yabe (17)

Designer Meets Bootstrap(22th Knock!)
Designer Meets Bootstrap(22th Knock!)Designer Meets Bootstrap(22th Knock!)
Designer Meets Bootstrap(22th Knock!)
 
20131206 静岡web制作界隈ゆく年くる年2013
20131206 静岡web制作界隈ゆく年くる年201320131206 静岡web制作界隈ゆく年くる年2013
20131206 静岡web制作界隈ゆく年くる年2013
 
イラレでWebデザインしても嫌われないデータ作成術
イラレでWebデザインしても嫌われないデータ作成術イラレでWebデザインしても嫌われないデータ作成術
イラレでWebデザインしても嫌われないデータ作成術
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
 
レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】レスポンシブWebデザイン【基礎編】
レスポンシブWebデザイン【基礎編】
 
静岡Web制作界隈 ゆく年くる年 2012
静岡Web制作界隈 ゆく年くる年 2012静岡Web制作界隈 ゆく年くる年 2012
静岡Web制作界隈 ゆく年くる年 2012
 
あらためて考えるCMS選択 2012
あらためて考えるCMS選択 2012あらためて考えるCMS選択 2012
あらためて考えるCMS選択 2012
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
 
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
 
jQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみるjQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみる
 
Web制作者のためのWebマーケティング用語と計算式
Web制作者のためのWebマーケティング用語と計算式Web制作者のためのWebマーケティング用語と計算式
Web制作者のためのWebマーケティング用語と計算式
 
jQuery超入門編
jQuery超入門編jQuery超入門編
jQuery超入門編
 
Knock! Knock! サイトができるまで
Knock! Knock! サイトができるまでKnock! Knock! サイトができるまで
Knock! Knock! サイトができるまで
 
今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012今日からはじめるHTML5 ver.2012
今日からはじめるHTML5 ver.2012
 
みんビズ その傾向と対策
みんビズ その傾向と対策みんビズ その傾向と対策
みんビズ その傾向と対策
 
20111001 adobe edgeとhtml5_css3_javascrit
20111001 adobe edgeとhtml5_css3_javascrit20111001 adobe edgeとhtml5_css3_javascrit
20111001 adobe edgeとhtml5_css3_javascrit
 
a-blog cms 事例紹介(TalkNote Vol.1)
a-blog cms 事例紹介(TalkNote Vol.1)a-blog cms 事例紹介(TalkNote Vol.1)
a-blog cms 事例紹介(TalkNote Vol.1)
 

Recently uploaded

Recently uploaded (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

「html5 boilerplate」から考える、これからのマークアップ

  • 1. 「HTML5 Boilerplate」から考える、 これからのマーク ッ ア プ 2013年 4月19日 Knock! Knock! 勉強会
  • 2. 1)構成フ イ ァ ルを確認してみよう 2)各フ イ ァ ルを検証してみよう 3)も と便利にBoilerplateを使う っ には
  • 4.
  • 5. W eb 5 1/20
  • 6. W eb W eb/DTP W eb W eb S 1/20
  • 9. 1)構成フ イ ァ ルを確認してみよう
  • 10.
  • 12. 隠し ァ ル フ イ
  • 13. テンプレート ァ ル フ イ cssフ ルダ / imgフ ルダ / jsフ ルダ / ォ ォ ォ apple-touch-icon群 / favicon.ico / index.html / 404.html / crossdmain.xml / humans.txt / robot.txt / .htaccess docsフ ルダ / LICENSE.md / ォ README.md / CHANGELOG.md ドキ メン フ イ ュ ト ァ ル
  • 14. cssフ ルダ / imgフ ルダ / jsフ ルダ / ォ ォ ォ apple-touch-icon群 / favicon.ico / index.html / 404.html / crossdmain.xml / humans.txt / robot.txt / .htaccess docsフ ルダ / LICENSE.md / ォ README.md / CHANGELOG.md
  • 15. 2)各フ イ ァ ルを検証してみよう
  • 16.
  • 18. <!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title></title> <meta name="description" content=""> <meta name="viewport" content="width=device-width"> <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/main.css"> <script src="js/vendor/modernizr-2.6.2.min.js"></script> </head> <body> <!--[if lt IE 7]> <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p> <![endif]--> <!-- Add your site or application content here --> <p>Hello world! This is HTML5 Boilerplate.</p> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"></script>')</script> <script src="js/plugins.js"></script> <script src="js/main.js"></script> <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. --> <script> var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']]; (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0]; g.src='//www.google-analytics.com/ga.js'; s.parentNode.insertBefore(g,s)}(document,'script')); </script> </body> </html>
  • 19. <!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> <head>
  • 20. IEの条件分岐コメント × html要素 CSSハックやIE専用CSSファイルに換わる手法 IEのバージョンによ て、 要素のク っ html ラス属性を変更 例)IE7の場合 → <html class="no-js lt-ie9 lt-ie8">
  • 21. <script src="//ajax.googleapis.com/ajax/libs/ jquery/1.9.1/jquery.min.js"></script> <script>window.jQuery || document.write( '<script src="js/vendor/jquery-1.9.1.min.js"></script>' )</script> <script src="js/plugins.js"></script> CDNの読み込みと <script src="js/main.js"></script> フ ォールバック <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. --> (GAト ラッキングタ グ→省略) </body> JavaScriptはBody要素の閉じタグの直前
  • 22. JavaScriptの記述はbody要素の閉じタグ直前 表示速度の最適化 → JSの読込中はHTMLレンダ ングがスト リ ップ (少しでも早くレンダ ングした方がユーザーの待たされている感が少ない) リ → jQueryでは、 ページの読み込みが終わっ ら てか 処理を開始す るパターンが多い。 それな HTMLの最後でも問題ないよね ら、 (HTMLの読み込み = DOMの構築を待ってから処理を始めるため)
  • 23. CDNの読み込みとフォールバック CDNの読み込みは、 プロトコル http / https) ( を省略 → htmlファ ルに合ったプロトコルを自動的に選択 イ ただし、 配布元のSSL対応には注意 CDNに接続できない場合のフォールバック → 接続できない場合のみ、ローカルのファ ルを参照 イ (表示速度向上のため、有名ライブラリのキャッシュ イ ファ ルを効率的に使う)
  • 24.
  • 26. Normalize.css ? 表示をゼロにしない (sup や sub を使えば上付き、下付きになるし、 は箇条書きになる) ul バグ補正 ( pre 要素における font-size、 9 における SVG の overflow の挙動など) IE CSS 解析時に、必要以上のゴミとなるコードを作らない (リセット系 CSS は結果的にゴミとなる margin:0 などが大量に挿入される) 必要に応じて不要箇所を削除しても OK ( Nomalize.css は適切にコメントで区切られていて、不要箇所は削除が簡単) http://www.yomotsu.net/blog/2013/02/23/normalize.html
  • 27. normalize.css か reset.css か 好きなヤツを使えばいいじゃん…
  • 30. .ir { background-color: transparent; border: 0; overflow: hidden; *text-indent: -9999px; /* IE 6/7 fallback */ } .ir:before { content: ""; display: block; width: 0; height: 150%; }
  • 31. <h1 class="logo ir"> 静岡のWeb系勉強会/セミナー Knock! Knock! </h1> .logo { width: 220px; height: 160px; background: url(/img/logo.png) no-repeat; }
  • 33. /* * Hide from both screenreaders and browsers */ ヴ ジュ ィ アル上もス リー ク ンリーダーでも消え る .hidden { display: none !important; visibility: hidden; }
  • 34. /* Hide only visually, but have it available for screenreaders */ ス リー ク ンリーダーでは読み上げ .visuallyhidden { ヴ ジュ ィ アル上では消える border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
  • 35. /* Hide visually and from screenreaders, but maintain layout */ ィ アル/ス リー ヴ ジュ ク ンリーダーからは消え る .invisible { レイ ト アウ 上は残る visibility: hidden; }
  • 37. .clearfix:before, .clearfix:after { content: " "; display: table; } .clearfix:after { clear: both; } .clearfix { *zoom: 1; /* For IE 6/7 only */ }
  • 39. min-widthの単位はem @media only screen and (min-width: 35em) { /* Style adjustments for viewports that meet the condition */ } These examples override the primary ('mobile first') styles. @media print, (モバイ ルファーストな基本ス ルを上書きする) タイ (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { /* Style adjustments for high resolution devices */ }
  • 40.
  • 42. Modernizer.js ? Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’ browser. s http://modernizr.com/ Modernizrは HTML 5とユーザーのブラウザ にCSS 3の機能を検出するJavaScriptライブ ラリです。 (Google 翻訳)
  • 43. <html class="no-js" lang="ja"> <html class=" js flexbox canvas canvastext webgl no-touch geolocation postmessage websqldata- base indexeddb hashchange history dragand- drop websockets rgba hsla multiplebgs back- groundsize borderimage borderradius boxshad- ow textshadow opacity cssanimations csscol- umns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generat- edcontent video audio localstorage sessionstor- age webworkers applicationcache svg inlinesvg smil svgclippaths" lang="ja">
  • 45. // Avoid `console` errors in browsers that lack a console. (function() { var method; var noop = function () {}; var methods = [ 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', consoleに対応していないブラウザでも 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn' ]; エラー表示を出さないようにする var length = methods.length; var console = (window.console = window.console || {}); while (length--) { method = methods[length]; if (!console[method]) { console[method] = noop; } } }());
  • 47. ・カスタム404ページ ・Google Chrome Frameを呼び出す設定 ・MIME Type ・URL Rewrite wwwア /ナシの統一とか) ( リ
  • 49.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 58. ・HTML5 Boilerplateには様々な ウハウがギッシリ ノ ・次世代のマーク ッ レン ア プト ドもキャッチア プ ッ ・自分の作業テンプレート ア プデートし うぜ も ッ よ !
  • 59. 実装に困っ ら た ご連絡ください!
  • 60. 本日はあ がと ございま り う した ご連絡・ご質問など下記までお願いし ます E-mail : info@hamnaly.com Facebook / Twitter : yabecchy