<?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>clearfix &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/clearfix/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Fri, 17 Sep 2010 02:38:08 +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>IE9.jsで実現するシンプルなclearfixとその他の恩恵</title>
		<link>https://blog.mach3.jp/2010/09/17/ie9js-clearfix.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Fri, 17 Sep 2010 02:38:08 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[clearfix]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[GoogleCode]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=719</guid>

					<description><![CDATA[既に広く知られているであろう、IE9.jsは、 新旧IEの差異を（出来るだけ）埋めてくれる素晴らしいスクリプトです。 今日のお話は、IE9.jsで実現出来るシンプルなclearfixと、 このスクリプトで実際どんな恩恵が [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>既に広く知られているであろう、<a href="http://code.google.com/p/ie7-js/">IE9.js</a>は、<br />
新旧IEの差異を（出来るだけ）埋めてくれる素晴らしいスクリプトです。<br />
今日のお話は、IE9.jsで実現出来るシンプルなclearfixと、<br />
このスクリプトで実際どんな恩恵が受けられるかの備忘録です。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TJLUD970GRI/AAAAAAAABCU/oxPr4vt8h9U/201009171134.png" alt="IE9.js"/></figure>



<p></p>



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



<p>cf) <a href="http://code.google.com/p/ie7-js/">ie7-js &#8211; Project Hosting on Google Code</a></p>



<h2 class="wp-block-heading">シンプルになったclearfix</h2>



<p>念の為スクリプトのロードも記載しておきます。<br />
IE用の条件分岐コメントを外すと他のブラウザでエラーが出ますのでご注意を。<br />
（これも内部で条件分岐して頂けると大変幸せだなぁ）</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-comment">&lt;!--&#91;if lt IE 9]&gt;
&lt;script src="http://ie7-js.googlecode.com/svn/trunk/lib/IE9.js"&gt;&lt;/script&gt;
&lt;!&#91;endif]--&gt;</span>
</code></span></pre>


<p>そしてこちらがシンプルになったclearfixのコード。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-class">.clearfix</span><span class="hljs-selector-pseudo">:after</span>{
    <span class="hljs-attribute">content</span>:<span class="hljs-string">""</span>;
    <span class="hljs-attribute">clear</span>:both;
    <span class="hljs-attribute">display</span>:block;
    <span class="hljs-attribute">height</span>:<span class="hljs-number">0</span>;
}
</code></span></pre>


<p>余計なハックを用いず、一種類のセレクタだけでクリーンに書けます。<br />
IE9.jsにより、旧IEでも擬似クラス「:after」が使えるようになったおかげです。<br />
もちろん、「:before」も使えます。</p>



<h2 class="wp-block-heading">その他のIE9.jsの恩恵</h2>



<h3 class="wp-block-heading">ボックスサイズの計算法の統一化</h3>



<p><a href="/2010/06/css-box-sizing.html">ボックスサイズの解釈はIE6の方がわかりやすいと思う</a><br />
で触れたとおり、IE6はボックスサイズをborder-widthとpaddingを含めた値として解釈します。<br />
が、IE9.jsを導入する事で、IE6も他のブラウザ同様の計算法に修正してくれます。<br />
border-boxの方が計算しやすいとは言え、統一してくれるに越したことはありませんね。</p>



<h3 class="wp-block-heading">first-child, last-childの実現</h3>



<p>IE6は言わずもがな、<br />
IE7/8はfirst-childには対応しているものの、last-childは使えません。<br />
IE9.jsはこれら全てにfirst/last-childを提供してくれます。</p>



<h3 class="wp-block-heading">HTML5の新要素にも対応してくれる</h3>



<p>header/nav/article/section等、HTML5で追加された新要素は、<br />
IE～8ではhtml5.js等の力を借りないとCSSを適用する事が出来ませんでした。<br />
IE9.jsは同様の処理も行ってくれちゃいますので、html5.jsをロードする必要がありません。</p>



<h3 class="wp-block-heading">ie7-squish.js</h3>



<p>別途ie7-squish.jsをロードする事で、<br />
ダブルマージン等のIE6のお馴染みのバグを幾つか修復してくれます。<br />
さらに詳細は公式で。<br />
cf) <a href="http://ie7-js.googlecode.com/svn/test/index.html">IE7.js Test Pages</a></p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-comment">&lt;!--&#91;if lt IE 7]&gt;
&lt;script src="http://ie7-js.googlecode.com/svn/trunk/lib/ie7-squish.js"&gt;&lt;/script&gt;
&lt;!&#91;endif]--&gt;</span>
</code></span></pre>


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



<p>IE7jsライブラリの存在は知っていたのですが、予想以上の働きをしてくれる模様。<br />
作者に感謝すると共に、改めて世界中の技術者がIEに頭を悩ませているんだなと実感させられます。<br />
無数の開発者が一丸となってIEという共通の課題を…胸が熱くなりますね。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
