<?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>IE &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/ie/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Thu, 17 Feb 2011 03:01:54 +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>IEの透過PNG+opacityの不具合を治すメモ</title>
		<link>https://blog.mach3.jp/2011/02/17/png-and-opacity-on-explorer.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Thu, 17 Feb 2011 03:01:54 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DD_belatedPNG]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PNG]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1595</guid>

					<description><![CDATA[透過PNGの処理が下手くそなのは、IE6だけではなく、IE7/8も同様です。 IEで透過PNGをあてた要素のopacityを弄ると、周りがグレーがかって汚くなります。 この現象はよく知られていると思いますが、今日はこの不 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>透過PNGの処理が下手くそなのは、IE6だけではなく、IE7/8も同様です。<br />
IEで透過PNGをあてた要素のopacityを弄ると、周りがグレーがかって汚くなります。<br />
この現象はよく知られていると思いますが、今日はこの不具合の治し方のメモを記しておきます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/_JJkNs5Ixl70/TVu-3xR1lSI/AAAAAAAABMM/DOQpFbompG8/201102162110.png" alt="IEの透過PNG+opacityの不具合を治すメモ"/></figure>



<p></p>



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



<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">style</span>&gt;</span><span class="css">
<span class="hljs-selector-class">.test</span> {
    <span class="hljs-attribute">display</span>:block;
    <span class="hljs-attribute">width</span>:<span class="hljs-number">128px</span>;
    <span class="hljs-attribute">height</span>:<span class="hljs-number">128px</span>;
    <span class="hljs-attribute">background</span>:<span class="hljs-built_in">url</span>(./test.png) <span class="hljs-number">0</span> <span class="hljs-number">0</span> no-repeat transparent;
}
<span class="hljs-selector-class">.test</span><span class="hljs-selector-pseudo">:hover</span> {
    <span class="hljs-attribute">background-image</span>:<span class="hljs-built_in">url</span>(./test-hover.png);
}
</span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"test"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></span></pre>


<p>test.pngとtest-hover.pngは透過PNGです。<br />
IE6では当然透過されずに背景がグレーになります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/_JJkNs5Ixl70/TVu99U1FJqI/AAAAAAAABL8/IkDaUNtWpnI/20110216a.png" alt="IE6は背景がグレーに"/></figure>



<p></p>



<p>IE7,8では綺麗に表示されている様子ですが…</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">".test"</span>).css( <span class="hljs-string">"opacity"</span>, <span class="hljs-string">"0.5"</span> );
</code></span></pre>


<p>このようにfilterのopacityを弄ってやると、下記の画像のような状態になります。キタナイ。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/_JJkNs5Ixl70/TVu99fg5tCI/AAAAAAAABMA/21E-ATnMuv0/20110216b.png" alt="IE7,8ではフチが黒くなる"/></figure>



<p></p>



<h2 class="wp-block-heading">DD_belatedPNGはどうか</h2>



<p>上記の現象はalphaImageLoaderを使えば解決出来るのですが、<br />
alphaImageLoaderはhover時の処理が面倒だったり、遅かったりと問題もあります。<br />
そこで去年ぐらいからもてはやされているDD_belatedPNGを使ってみましょう。</p>



<p><a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG: Medicine for your IE6/PNG headache!</a></p>



<p>DD_belatedPNGは他の透過PNG用ライブラリと異なり、<br />
alphaImageLoaderを使わずにVMLで透過を実現しているのが特徴。<br />
パフォーマンスも比較的上々のようです。</p>



<h3 class="wp-block-heading">IE8でエラーが出る</h3>



<p>が、困ったことにIE6向けのライブラリであるが為か、<br />
IE8で走らせようとするとエラーが出ます。<br />
今回のお題はIE6～8全てに関わる物なのですが、困りました。</p>



<h3 class="wp-block-heading">jQuery移植版を使用する</h3>



<p>探してみたところ、DD_belatedPNGをjQueryプラグインとして移植した記事を発見。<br />
そこらへんの問題も解決してくださったみたいです。素晴らしい！</p>



<dl>
<dt>該当記事</dt>
<dd><a href="http://wakuworks.jugem.jp/?eid=153">DD_belatedPNG を改造して、jQuery.belatedPNG を作ってみた | プログラマ気分</a></dd>
<dt>リポジトリ</dt>
<dd><a href="https://github.com/wakuworks/jquery.belatedPNG/">wakuworks/jquery.belatedPNG &#8211; GitHub</a></dd>
</dl>



<h2 class="wp-block-heading">jquery.belatedPNG.jsで試してみよう</h2>



<p>jquery.belatedPNG.jsは、<br />
jQueryオブジェクトにfixPng()メソッドを提供します。<br />
こんな感じにしてみる。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">".test"</span>).fixPng().css(<span class="hljs-string">"opacity"</span>,<span class="hljs-string">"0.5"</span>);
</code></span></pre>


<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/_JJkNs5Ixl70/TVu99irjazI/AAAAAAAABME/sqTbHGUerLQ/20110216c.png" alt="jquery.belatedPNG.jsで試してみよう"/></figure>



<p></p>



<p>opacityを設定しても汚くならない！素晴らしい！</p>



<h3 class="wp-block-heading">マウスイベントが効かなくなる問題</h3>



<p>ただ、このままだとa要素に対するマウスイベントが効かなくなってしまう模様。<br />
CSSで設定した:hoverのスタイルも適用されず、<br />
クリックしてもウンともスンともいいません。</p>



<p>なので、子要素に「透明な何か」を入れてあげる事で解決を試みます。 例えば透過Gif。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"test"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"trans.gif"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"128"</span> <span class="hljs-attr">height</span>=<span class="hljs-string">"128"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Foobar"</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></span></pre>


<p>これでマウスイベントがきちんと効くようになりました。<br />
hoverのスタイルも適用されます。</p>



<p>もしくは、同サイズの透明要素を中にappendしてやったり。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">var</span> $test = $(<span class="hljs-string">".test"</span>);

<span class="hljs-comment">// opacityに非対応なブラウザに適用</span>
<span class="hljs-keyword">if</span>( !$.support.opacity ){
    $test.fixPng()
    .append(
        $(<span class="hljs-string">"&lt;span&gt;"</span>).css({
            display : <span class="hljs-string">"block"</span>,
            width : $test.width(),
            height : $test.height(),
            backgroundColor : <span class="hljs-string">"#ffffff"</span>,
            opacity : <span class="hljs-number">0</span>,
            cursor : <span class="hljs-string">"pointer"</span>
        })
    );
}

$test.css( <span class="hljs-string">"opacity"</span>, <span class="hljs-string">"0.5"</span> );
</code></span></pre>


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



<p>
  jQueryのプラグインでfadeIn/fadeOut等を使うとopacityが弄られますが、<br /> その影響でこの不具合に遭遇する事があるので注意したいですね。
</p>



<p>
  マウスイベントの件は、他に良い解決策あったら知りたいです！
</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>JavaScriptで「パスワードを表示」機能を実装してみる</title>
		<link>https://blog.mach3.jp/2011/01/18/javascript-password-toggle.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 18 Jan 2011 02:11:39 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Password]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1437</guid>

					<description><![CDATA[通常なら文字が伏せてある状態のパスワード入力フォームですが、 入力したパスワードを確認する為の「パスワードを表示」機能を JavaScriptで実装する為のメモです。（jQuery使用） ざっくりとした仕掛け チェックボ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>通常なら文字が伏せてある状態のパスワード入力フォームですが、<br />
入力したパスワードを確認する為の「パスワードを表示」機能を<br />
JavaScriptで実装する為のメモです。（jQuery使用）</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/TTSLFjwxAHI/AAAAAAAABJo/qKQvnTxJ7io/201101180330.png" alt="JavaScriptで「パスワードを表示」機能を実装してみる"/></figure>



<p></p>



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



<ol class="wp-block-list">
<li>ざっくりとした仕掛け</li>



<li>IE兄弟はinput要素のtype属性をいじれないらしい</li>



<li>textとpasswordを並べて表示/非表示をトグルする</li>



<li>コード抜粋</li>
</ol>



<h2 class="wp-block-heading">ざっくりとした仕掛け</h2>



<p>チェックボックスにチェックを入れると、<br />
パスワードのtypeが<em>text</em>に切り替わって内容が確認出来るようになる仕組み。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TTSLFy-TuyI/AAAAAAAABJw/xTl8BbYjSXI/201101180231.png" alt="ざっくりとした仕掛け"/></figure>



<p></p>



<p><em>type直接いじれば楽じゃーん。</em><br />
そう考えていた時代が僕にもありました。</p>



<h2 class="wp-block-heading">IE兄弟はinput要素のtype属性をいじれないらしい</h2>



<p>ところがIEはinput要素のtype属性を弄ろうとするとエラーになります。<br />
その為jQueryでも、attr()で同様の処理を行おうとすると、以下の例外が投げられてきます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>type property can&#8217;t be changed</p>
</blockquote>



<p>HTML</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"password"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"foo"</span> /&gt;</span>
</code></span></pre>


<p>JavaScript</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">try</span> {
    $(<span class="hljs-string">"#foo"</span>).attr(<span class="hljs-string">"type"</span>, <span class="hljs-string">"text"</span> );
} <span class="hljs-keyword">catch</span>( e ){
    <span class="hljs-built_in">console</span>.log( e ); <span class="hljs-comment">// type property can't be changed</span>
}
</code></span></pre>


<p>cloneNode等で複製したオブジェクトでも同様なので、<br />
これを回避する為には手作業で要素の複製を行い、<br />
それでもって元の要素とスワップしなければならないみたいです。面倒ですね！</p>



<h2 class="wp-block-heading">textとpasswordを並べて表示/非表示をトグルする</h2>



<p>面倒なのは回避する事にして、<br />
<em>input[type=text]</em>と<em>input[type=password]</em>を並べておき<br />
表示/非表示を切り替える方向でやってみます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/TTSLF1EUU9I/AAAAAAAABJs/bdY4vXqHq84/201101180318.png" alt="textとpasswordを並べて表示/非表示をトグルする"/></figure>



<p></p>



<ol class="wp-block-list">
<li>input[type=text]とinput[type=password]の入力内容を同期させる</li>



<li>チェックボックスのON/OFFでそれぞれの表示/非表示を切り替える</li>
</ol>



<h2 class="wp-block-heading">コード抜粋</h2>



<p>こんな感じになりました。</p>



<p><a href="http://jsfiddle.net/mach3ss/Dk448/">DEMO ( jsFiddle )</a></p>



<h3 class="wp-block-heading">HTML</h3>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"password"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"pswd"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"pswd"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"pswd-text"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"pswd-text"</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"display:none;"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"pswd-toggle"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"pswd-toggle"</span> <span class="hljs-attr">data-for</span>=<span class="hljs-string">"pswd"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"pswd-toggle"</span>&gt;</span>パスワードを表示する<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
</code></span></pre>


<p><em>パスワード（#pswd）</em>の相方となる<em>テキストフィールド（#pswd-text）</em>を非表示にして設置。<br />
<em>チェックボックス（#pswd-toggle）</em>には、<em>data-for</em>属性で対象のID(pswd)を入れておきます。<br />
ちょうど、label要素のfor属性のように。</p>



<h3 class="wp-block-heading">JavaScript</h3>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$.fn.extend({
    <span class="hljs-attr">togglePassword</span> : <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> config </span>)</span>{
        option = $.extend({
            <span class="hljs-string">"postfix"</span> : <span class="hljs-string">"-text"</span>
        }, config );
        <span class="hljs-comment">// 入力内容を同期するfunction</span>
        sync = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
            <span class="hljs-keyword">var</span> i = <span class="hljs-keyword">this</span>.type.toUpperCase() === <span class="hljs-string">"PASSWORD"</span> ?
                <span class="hljs-keyword">this</span>.id + option.postfix :
                <span class="hljs-keyword">this</span>.id.replace( option.postfix, <span class="hljs-string">""</span> );
            $( <span class="hljs-string">"#"</span> + i ).val( $(<span class="hljs-keyword">this</span>).val() );
        };
        <span class="hljs-comment">// 表示/非表示を切り替えるfunction</span>
        toggle = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
            <span class="hljs-keyword">if</span>( <span class="hljs-keyword">this</span>.checked ){
                $.data( <span class="hljs-keyword">this</span>, <span class="hljs-string">"pswd"</span> ).hide();
                $.data( <span class="hljs-keyword">this</span>, <span class="hljs-string">"text"</span> ).show();
            } <span class="hljs-keyword">else</span> {
                $.data( <span class="hljs-keyword">this</span>, <span class="hljs-string">"pswd"</span> ).show();
                $.data( <span class="hljs-keyword">this</span>, <span class="hljs-string">"text"</span> ).hide();
            }
        };
        <span class="hljs-keyword">this</span>.each( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
            <span class="hljs-keyword">var</span> id, pswd, text, check, handlers;
            id = <span class="hljs-keyword">this</span>.getAttribute( <span class="hljs-string">"data-for"</span> );
            pswd = $(<span class="hljs-string">"#"</span> + id );
            text = $(<span class="hljs-string">"#"</span> + id + option.postfix );
            check = $(<span class="hljs-keyword">this</span>);
            <span class="hljs-comment">// テキストフィールドのイベント</span>
            handlers = { <span class="hljs-attr">keyup</span> : sync, <span class="hljs-attr">blur</span> : sync };
            pswd.bind( handlers );
            text.bind( handlers );
            <span class="hljs-comment">// チェックボックスのイベント</span>
            $.data( <span class="hljs-keyword">this</span>, <span class="hljs-string">"pswd"</span>, pswd );
            $.data( <span class="hljs-keyword">this</span>, <span class="hljs-string">"text"</span>, text );
            $(<span class="hljs-keyword">this</span>).click( toggle );
            <span class="hljs-comment">// 初期化</span>
            toggle.apply( <span class="hljs-keyword">this</span> );
        });
    }
});

$(<span class="hljs-string">"#pswd-toggle"</span>).togglePassword();
</code></span></pre>


<p>IEスルーするなら恐ろしく短いコードで済みそうですが…残念。</p>
]]></content:encoded>
					
		
		
			</item>
		<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>
