<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Modernizr &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/modernizr/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Thu, 10 Mar 2011 01:10:46 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>head要素に読み込むべき唯一のスクリプト「headjs」</title>
		<link>https://blog.mach3.jp/2011/03/10/headjs.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Thu, 10 Mar 2011 01:10:46 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[headjs]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Modernizr]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1665</guid>

					<description><![CDATA[「Modernizr」や「html5.js」等、 モダンな環境の為の便利なスクリプトは多々ありますが、 「headjs」はそんな彼らの仕事を一気に引き受けてくれる働き者のスクリプトです。 使い方 謳い文句はhead要素に [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>「<a href="http://www.modernizr.com/">Modernizr</a>」や「<a href="http://code.google.com/p/html5shiv/">html5.js</a>」等、 モダンな環境の為の便利なスクリプトは多々ありますが、<br />
「headjs」はそんな彼らの仕事を一気に引き受けてくれる働き者のスクリプトです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/_JJkNs5Ixl70/TXZN8JqNymI/AAAAAAAABN4/eGs8lEmCw94/201103090040.png" alt="headjs"/></figure>



<p></p>



<span id="more-1665"></span>



<h2 class="wp-block-heading">使い方</h2>



<ul class="wp-block-list">
<li><a href="http://headjs.com/">Head JS :: The only script in your HEAD</a></li>
</ul>



<p>謳い文句は<em>head要素に読み込む唯一のスクリプト</em><br />
ダウンロードして読み込むだけ。おしまい。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"head.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<h2 class="wp-block-heading">その多彩な機能</h2>



<h3 class="wp-block-heading">環境の判別</h3>



<p>CSS3のプロパティの対応状況、画面のサイズ、ブラウザなどの情報を<br />
<a href="http://www.modernizr.com/">Modernizr</a>と同じ手法でHTML要素のクラスに出力してくれます。<br />
こんな感じに…</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">&lt;html lang=<span class="hljs-string">"ja"</span> id=<span class="hljs-string">"test-page"</span> <span class="hljs-class"><span class="hljs-keyword">class</span></span>=<span class="hljs-string">" webkit root-section js  gradient rgba opacity textshadow multiplebgs boxshadow borderimage borderradius cssreflections csstransforms csstransitions fontface domloaded w-1100 lt-1280 lt-1440 lt-1680 lt-1920"</span>&gt;
</code></span></pre>


<p>また、JavaScriptでheadオブジェクトを辿っても判別結果が得られます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-built_in">console</span>.log( head.csstransitions ); <span class="hljs-comment">// Transition対応のブラウザならtrue</span>
<span class="hljs-built_in">console</span>.log( head.browser.webkit ); <span class="hljs-comment">// Webkitならtrue</span>
<span class="hljs-built_in">console</span>.dir( head ); <span class="hljs-comment">// とりあえず全部覗いてみたらいいと思う</span>
</code></span></pre>


<h3 class="wp-block-heading">
  IEのHTML5対応の補助<br />
</h3>



<p>
  html5shiv同様、IEでのHTML5の新要素の使用をサポートしてくれます。<br /> （IEさんはHTML5の要素を置いても、そのままではスタイルをあててくれないので…）
</p>



<ul class="wp-block-list">
<li><br />    <a href="http://code.google.com/p/html5shiv/">html5shiv &#8211; Project Hosting on Google Code</a><br />  </li>
</ul>



<h3 class="wp-block-heading">
  スクリプトローダー<br />
</h3>



<p>
  動的にJavaScriptファイルをロードする機能を備えています。<br /> 読み込むスクリプトファイルは復数指定でき、 ロード完了時のコールバックも登録可能です。
</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">head.js(
    <span class="hljs-string">"hoge.js"</span>,
    <span class="hljs-string">"fuga.js"</span>,
    <span class="hljs-string">"foo.js"</span>,
    <span class="hljs-string">"bar.js"</span>,
    <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
        <span class="hljs-built_in">console</span>.log( <span class="hljs-string">"All Script Loaded."</span> );
    }
);
</code></span></pre>


<p>
  パフォーマンスに疑問が残るので多用は禁物ですが、便利ですね。<br /> 競合としてはrequire.jsとかでしょうか。
</p>



<ul class="wp-block-list">
<li><br />    <a href="http://requirejs.org/">RequireJS</a><br />  </li>
</ul>



<h2 class="wp-block-heading">
  まとめ<br />
</h2>



<p>
  一本読み込むだけでこれだけのことが出来る。<br /> まさにheadjsの名に恥じない素晴らしいスクリプトだと思います。
</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BrowserDetect.jsと子孫セレクタによるシンプルなクロスブラウザCSS</title>
		<link>https://blog.mach3.jp/2010/09/16/browserdetect-js-xbrowser-css.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Thu, 16 Sep 2010 02:55:42 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[BrowserDetect]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Modernizr]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=707</guid>

					<description><![CDATA[BrowserDetect.jsは、閲覧環境を判別する為のJSライブラリです。 今回はこれを使用して、Modernizrのような手法で クロスブラウザCSSを書く実験を試みてみます。 BrowserDetect.js J [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a href="http://www.quirksmode.org/js/detect.html">BrowserDetect.js</a>は、閲覧環境を判別する為のJSライブラリです。<br />
今回はこれを使用して、<a href="http://www.modernizr.com/">Modernizr</a>のような手法で<br />
クロスブラウザCSSを書く実験を試みてみます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TJGGwkARlOI/AAAAAAAABCM/EnC2WVlSUEQ/201009161152.png" alt="BrowserDetect.jsと子孫セレクタによるシンプルなクロスブラウザCSS"/></figure>



<p></p>



<span id="more-707"></span>



<h2 class="wp-block-heading">BrowserDetect.js</h2>



<p><a href="http://www.quirksmode.org/js/detect.html">JavaScript &#8211; Browser detect</a></p>



<p>ダウンロードリンクはどうやら無いようなので、<br />
ページ内に書かれたソースをコピー&amp;ペーストします。<br />
使い方は簡単で、スクリプトをロードして<br />
BrowserDetectオブジェクトのプロパティを参照するだけ。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> browser = BrowserDetect.browser; <span class="hljs-comment">//ブラウザ名の取得</span>
<span class="hljs-keyword">var</span> version = BrowserDetect.version; <span class="hljs-comment">//ブラウザバージョンの取得</span>
<span class="hljs-keyword">var</span> os = BrowserDetect.OS; <span class="hljs-comment">// OS名の取得</span>
</code></span></pre>


<h2 class="wp-block-heading">クロスブラウザCSSを書く準備</h2>



<p>もしModernizrを使用した事があればご想像の通りですが、<br />
HTML要素にブラウザ名とバージョンを添えたクラス名を動的に追加してやります。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">"html"</span>).addClass( BrowserDetect.browser );
$(<span class="hljs-string">"html"</span>).addClass( BrowserDetect.browser + BrowserDetect.version );
</code></span></pre>


<p>例えばIE6でアクセスすると、HTML要素には次のようにクラスが追加されます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">&lt;html lang=<span class="hljs-string">"ja"</span> <span class="hljs-class"><span class="hljs-keyword">class</span></span>=<span class="hljs-string">"Explorer Explorer6"</span>&gt;
</code></span></pre>


<h2 class="wp-block-heading">
    CSSを書く<br />
  </h2>



<p>
    あとは子孫クラスタを使ってCSS内で条件分岐をしてやれば良いです。<br /> ハック等に頼らないクリーンなCSSが出来上がりますね。
  </p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-id">#Box</span>{
    <span class="hljs-comment">/* デフォルトのスタイル */</span>
    <span class="hljs-attribute">width</span>:<span class="hljs-number">290px</span>;
    <span class="hljs-attribute">height</span>:<span class="hljs-number">210px</span>;
    <span class="hljs-attribute">border</span>:<span class="hljs-number">5px</span> solid <span class="hljs-number">#666</span>;
    <span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>;
}
<span class="hljs-selector-class">.Explorer6</span> <span class="hljs-selector-id">#Box</span>{
    <span class="hljs-comment">/* IE6用のスタイル */</span>
    <span class="hljs-attribute">width</span>:<span class="hljs-number">320px</span>;
    <span class="hljs-attribute">height</span>:<span class="hljs-number">240px</span>;
}
</code></span></pre>


<h2 class="wp-block-heading">
    この方法の問題点<br />
  </h2>



<h3 class="wp-block-heading">
    JSが働かないとだめ<br />
  </h3>



<p>
    当たり前ですが、JavaScriptが動かない環境ではデザインが崩れる事が予想されます。<br /> （Modernizr使ってる時点で今更何を言ってるのって感じですが…）
  </p>



<h3 class="wp-block-heading">
    HTML4ではHTML要素のclass属性はInvalidである<br />
  </h3>



<p>
    class属性が使用出来る要素について、<br /> HTML5では「The Every HTML Element」と言及している事から問題はなさそうですが、<br /> どうやらHTML4ではInvalidになる様子。<br /> これもまた、Modernizrも同様に孕んでいる問題点です。<br /> （一体誰が気にするのか、とも思いますが）
  </p>



<p>
    以上の問題を踏まえて、<br /> プロジェクトの趣旨/性格に基づいて使用を判断したいですね。
  </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>「Modernizr」 モダンなクロスブラウザCSSの為の支援スクリプト</title>
		<link>https://blog.mach3.jp/2010/07/21/modernizr-js.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Wed, 21 Jul 2010 22:54:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Modernizr]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/07/21/%e3%80%8cmodernizr%e3%80%8d-%e3%83%a2%e3%83%80%e3%83%b3%e3%81%aa%e3%82%af%e3%83%ad%e3%82%b9%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6css%e3%81%ae%e7%82%ba%e3%81%ae%e6%94%af%e6%8f%b4%e3%82%b9%e3%82%af.html</guid>

					<description><![CDATA[HTML5/CSS3で新たに使える機能がブワッと増えたわけですが、 新機能に対応している環境というのはまだまだごくわずかです。 ということは、機能が使えるor使えない場合に処理を分けたりしなければいけないわけで。 「Mo [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>HTML5/CSS3で新たに使える機能がブワッと増えたわけですが、<br />
新機能に対応している環境というのはまだまだごくわずかです。<br />
ということは、機能が使えるor使えない場合に処理を分けたりしなければいけないわけで。<br />
「Modernizr」は、それを支援してくれるJavaScriptライブラリです。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TEb6RR1X0LI/AAAAAAAAA-4/_5uGmJsiuwg/s800/201007212239.png" alt="Modernizr"/></figure>



<p></p>



<span id="more-2243"></span>



<p><a href="http://www.modernizr.com/">Modernizr</a></p>



<figure class="wp-block-image"><a href="http://www.modernizr.com/"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/TEb6RTeoE4I/AAAAAAAAA-8/Cd70kUHhrUw/s800/201007212240.png" alt="Modernizr"/></a></figure>



<p></p>



<p>「Modernizer」ではなく、「Modernizr」。<br />
eが欠けている点に注意。Flickrみたいな感じ。</p>



<p>Modernizrがしてくれる事は、ただ一つの単純な処理です。<br />
閲覧しているブラウザが、或る機能に対応しているかどうかをJavaScriptで判別し、<br />
その結果をhtml要素のclassという形で教えてくれます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TEb6RlzkuBI/AAAAAAAAA_A/cSaQ9nUAgow/s800/201007212235.png" alt="HTML要素に沢山のクラスが"/></figure>



<p></p>



<p>例えば、box-shadowに対応しているかどうかを知りたい場合。<br />
Modernizrを読み込んだ上でhtml要素を調べると、<br />
「boxshadow」または「no-boxshadow」というクラスがhtml要素に付加されています。<br />
あとは子孫セレクタ等を使えば…この先は予想がつくかと思います。</p>



<h2 class="wp-block-heading">簡単な使い方</h2>



<p>スクリプトをダウンロードして読み込みます。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"modernizr.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<p>例えば、boxhadowに対応している場合とそうでない場合のスタイルを書き分けます。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-comment">/* デフォルトのスタイル */</span>
<span class="hljs-selector-id">#box</span>{
    <span class="hljs-attribute">width</span>:<span class="hljs-number">220px</span>;
    <span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;
    <span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>;
    <span class="hljs-attribute">background-color</span>:<span class="hljs-number">#eee</span>;
    <span class="hljs-attribute">border-right</span>:<span class="hljs-number">2px</span> solid <span class="hljs-number">#ccc</span>;
    <span class="hljs-attribute">border-bottom</span>:<span class="hljs-number">2px</span> solid <span class="hljs-number">#999</span>;
}
<span class="hljs-comment">/* boxshadowが使える場合のスタイル */</span>
<span class="hljs-selector-class">.boxshadow</span> <span class="hljs-selector-id">#box</span>{
    <span class="hljs-attribute">border</span>:none;
    <span class="hljs-attribute">-moz-box-shadow</span>:<span class="hljs-number">#666</span> <span class="hljs-number">1px</span> <span class="hljs-number">1px</span> <span class="hljs-number">3px</span>;
    <span class="hljs-attribute">-webkit-box-shadow</span>:<span class="hljs-number">#666</span> <span class="hljs-number">1px</span> <span class="hljs-number">1px</span> <span class="hljs-number">3px</span>;
    <span class="hljs-attribute">box-shadow</span>:<span class="hljs-number">#666</span> <span class="hljs-number">1px</span> <span class="hljs-number">1px</span> <span class="hljs-number">3px</span>;
}
</code></span></pre>


<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TEb6R8GfmwI/AAAAAAAAA_E/0b3f-ol6XKU/s800/201007212244.png" alt="結果のイメージ"/></figure>



<p></p>



<h2 class="wp-block-heading">JavaScriptでの判別にも役立つ</h2>



<p>JavaScriptで新要素の対応状況を調べるスクリプトは以前ご紹介しましたが、<br />
cf) <a href="https://blog.mach3.jp/2010/05/html5js.html">HTML5の新機能が使用可能かどうかを判別するJSコード一覧</a><br />
Modernizrは一括して調べておいてくれるので、問い合わせればすぐに教えてくれます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> bs = Modernizr.boxshadow;
</code></span></pre>


<p>boxShadowが使用可能であればtrueが格納されます。</p>



<p>CSSのプロパティに関わらずストレージ関係やSVG等々、<br />
様々な要素に対応している模様です。<br />
cf) <a href="http://www.modernizr.com/docs/">Modernizr Documentation</a> …これは便利！</p>



<p>非常にシンプルなライブラリですが、それだけに様々なシーンでの活用が期待できます。<br />
HTML5への過渡期を戦うために、頼もしい戦力となるのではないでしょうか。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
