<?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>IE6 &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/ie6/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>
		<item>
		<title>実験室: ボックスサイズの解釈はIE6の方がわかりやすいと思う</title>
		<link>https://blog.mach3.jp/2010/06/19/css-box-sizing.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Sat, 19 Jun 2010 19:26:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/06/19/%e5%ae%9f%e9%a8%93%e5%ae%a4-%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%ae%e8%a7%a3%e9%87%88%e3%81%afie6%e3%81%ae%e6%96%b9%e3%81%8c%e3%82%8f%e3%81%8b%e3%82%8a%e3%82%84.html</guid>

					<description><![CDATA[IE6がボーダー/パディングを含んだ値としてwidthを解釈するのに対し、 他の多くのブラウザはそれらをwidthに足した値で描画します。 この問題はCSSを書く人なら誰しも一度はぶちあたる壁ですね。 多くのバグで我々を [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>IE6がボーダー/パディングを含んだ値としてwidthを解釈するのに対し、<br />
他の多くのブラウザはそれらをwidthに足した値で描画します。<br />
この問題はCSSを書く人なら誰しも一度はぶちあたる壁ですね。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TByZ9fQbaAI/AAAAAAAAA8k/UzI2o1m-WFM/s800/201006191919.png" alt="IE6でのbox-sizing"/></figure>



<p></p>



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



<p>多くのバグで我々を悩ませるIE6さんではありますが、<br />
この一点についてはIE6の解釈の方がコーディング上効率が良いと思います。</p>



<p>デザインからコーディングする際は<br />
画像エディタ上のサイズそのままを記載すれば良いですし、<br />
レイアウト中にカラム幅を指定する場合にも<br />
わざわざpaddingやborder-widthを足したり引いたりするのは非効率です。</p>



<p>では、どうするか。</p>



<h2 class="wp-block-heading">box-sizingを活用する</h2>



<p>その為に用意されたCSSプロパティがbox-sizingです。<br />
<a href="http://www.w3.org/TR/css3-ui/#box-sizing">CSS3 Basic User Interface Module</a><br />
ボックス要素の描画モードを、<br />
ボーダー/パディングを含む「border-box」か、含まない「content-box」に指定する事が出来ます。<br />
このborder-boxを活用すれば、IE6ライクな計算方法でコーディングが出来るわけですね。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TByZ9hfi4SI/AAAAAAAAA8o/AHToOstsNzI/s800/201006191837.png" alt="box-sizing"/></figure>



<p></p>



<p>ただ、未だ全てのブラウザで動くわけではなく、<br />
多くのブラウザでは独自プロパティとして実装しているのが現状です。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-class">.border-box</span>{
    <span class="hljs-attribute">-moz-box-sizing</span>: border-box; <span class="hljs-comment">/* Firefox */</span>
    <span class="hljs-attribute">-webkit-box-sizing</span>: border-box; <span class="hljs-comment">/* Webkit */</span>
    <span class="hljs-attribute">-ms-box-sizing</span>: border-box; <span class="hljs-comment">/* IE8 beta1 */</span>
    <span class="hljs-attribute">box-sizing</span>:border-box; <span class="hljs-comment">/* IE8, Opera */</span>
}
</code></span></pre>


<h2 class="wp-block-heading">box-sizingに非対応のブラウザはどうしよう</h2>



<p>生まれた時からborder-boxなIE6さん（カッコイイ！）は良いとして、<br />
他の非対応のブラウザはどうしましょうか。<br />
IE7はDOCTYPEスイッチで後方互換させる手もありますが、<br />
その為にDTDを削除するのは避けたい所。</p>



<p>こういう困ったときはjQuery先生にお願いします。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$.fn.borderBox = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">force</span>)</span>{
    <span class="hljs-keyword">var</span> s = <span class="hljs-built_in">document</span>.documentElement.style, box, getNum;
    <span class="hljs-keyword">if</span> ( force || ( s.maxHeight !== <span class="hljs-literal">undefined</span> &amp;&amp;
    s.boxSizing === <span class="hljs-literal">undefined</span> &amp;&amp; s.msBoxSizing === <span class="hljs-literal">undefined</span> &amp;&amp;
    s.MozBoxSizing === <span class="hljs-literal">undefined</span> &amp;&amp; s.WebkitBoxSizing === <span class="hljs-literal">undefined</span> ) ){
        getNum = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">str</span>)</span>{
            <span class="hljs-keyword">return</span> <span class="hljs-built_in">Number</span>(str.replace(<span class="hljs-regexp">/&#91;a-zA-Z]+$/</span>,<span class="hljs-string">""</span>));
        };
        <span class="hljs-keyword">this</span>.each( <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
            box = $( <span class="hljs-keyword">this</span> );
            <span class="hljs-keyword">if</span>( box.css(<span class="hljs-string">"width"</span>) !== <span class="hljs-string">"auto"</span> ){
                box.width(
                    box.width() -
                    getNum( box.css(<span class="hljs-string">"paddingLeft"</span>) ) -
                    getNum( box.css(<span class="hljs-string">"paddingRight"</span>) ) -
                    getNum( box.css(<span class="hljs-string">"borderLeftWidth"</span>) ) -
                    getNum( box.css(<span class="hljs-string">"borderRightWidth"</span>) )
                );
            }
            <span class="hljs-keyword">if</span>( box.css(<span class="hljs-string">"height"</span>) !== <span class="hljs-string">"auto"</span> ){
                box.height(
                    box.height() -
                    getNum( box.css(<span class="hljs-string">"paddingTop"</span>) ) -
                    getNum( box.css(<span class="hljs-string">"paddingBottom"</span>) ) -
                    getNum( box.css(<span class="hljs-string">"borderTopWidth"</span>) ) -
                    getNum( box.css(<span class="hljs-string">"borderBottomWidth"</span>) )
                );
            }
        });
        <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
    } <span class="hljs-keyword">else</span> {
        <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
    }
};
</code></span></pre>


<p>使い方：</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">style</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/css"</span>&gt;</span><span class="css">
<span class="hljs-selector-class">.border-box</span>{
    <span class="hljs-attribute">-moz-box-sizing</span>: border-box;
    <span class="hljs-attribute">-webkit-box-sizing</span>: border-box;
    <span class="hljs-attribute">-ms-box-sizing</span>: border-box;
    <span class="hljs-attribute">box-sizing</span>:border-box;
}
</span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span>&gt;</span><span class="javascript">
    $(<span class="hljs-string">".border-box"</span>).borderBox();
</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<p>box-sizingならびに*-box-sizingに対応していないブラウザ（IE6を除く）のwidth/heightを<br />
borderWidth/paddingを含めた値として再計算するスクリプトです。<br />
だいぶその場しのぎのスクリプトではありますが、<br />
IE6を明示的に処理から除外するのってちょっと新鮮ですね。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>マルチブラウザでキャプチャが撮れる「BrowserSeal」を試してみた</title>
		<link>https://blog.mach3.jp/2010/06/15/browserseal.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 15 Jun 2010 21:29:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[WebClip]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/06/15/%e3%83%9e%e3%83%ab%e3%83%81%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%a7%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3%e3%81%8c%e6%92%ae%e3%82%8c%e3%82%8b%e3%80%8cbrowserseal%e3%80%8d%e3%82%92%e8%a9%a6.html</guid>

					<description><![CDATA[様々なブラウザのキャプチャを撮れるサービスやツールは、最近かなり増えてきていますね。 Cross-Browser Testing: A Detailed Review Of Tools And Services &#82 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>様々なブラウザのキャプチャを撮れるサービスやツールは、最近かなり増えてきていますね。<br />
<a href="http://www.smashingmagazine.com/2010/06/04/cross-browser-testing-a-detailed-review-of-tools-and-services/">Cross-Browser Testing: A Detailed Review Of Tools And Services &#8211; Smashing Magazine</a><br />
先日SmashingMagazineで多くのサービスやソフトウェアが紹介されていましたが、<br />
その中でも気になった「BrowserSeal」を試してみました。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TBdxrV9k_0I/AAAAAAAAA8E/aiur1aCnwZs/s800/201006152120.png" alt="BrowserSeal"/></figure>



<p></p>



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



<p><a href="http://www.browserseal.com/">BrowserSeal : fast multi browser website screenshot application</a></p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TBdxrtKl1kI/AAAAAAAAA8I/0epJBgkjlO4/s800/201006152036.png" alt="BrowserSeal"/></figure>



<p></p>



<p>BrowserSealはWebサービスの類ではなく、<br />
様々なバージョンのブラウザでの動作確認と、スクリーンショットの撮影が行える<br />
Windows用のデスクトップアプリケーションです。</p>



<p>Webサービスのレスポンスを待つ必要が無い為、<br />
ローカルでも高速にWebサイトの確認が行えます。</p>



<h2 class="wp-block-heading">本命かもしれないブラウザパック</h2>



<p>ローカルで動作させる為には当然それぞれのブラウザをインストールする必要がありますが、<br />
BrowserSealは以下のブラウザのスタンドアローンエディションを一度に導入出来ます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TBdxr7SGGCI/AAAAAAAAA8M/Eg7xGYo7D8Y/s800/201006152123.png" alt="様々なブラウザのスタンドアローンエディション"/></figure>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Includes Firefox 3.0.16, Firefox 3.5.6, Internet Explorer 6.00.2900.2180, Internet Explorer 7.00.5730.13, Internet Explorer 8.00.6001.18702, Chrome 3, Opera 8.54, Opera 9.64, Opera 10.10, Safari 3.2.3 and Safari 4.0.4.</p>
</blockquote>



<p>これらのブラウザはいずれもBrowserSealを介さずに<br />
独立したウィンドウとしてそのまま立ち上げる事が出来ます。<br />
JavaScriptなどの検証も行いたい場合に大変便利ですね。</p>



<h2 class="wp-block-heading">BrowserSealでキャプチャを撮る</h2>



<p>トライアル版では、キャプチャを撮れるのはFirefoxとIEの2ブラウザに留まります。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/TBdxr4DV2rI/AAAAAAAAA8Q/xGKOlSUHdpc/s800/201006152126.png" alt="BrowserSealでキャプチャを撮る"/></figure>



<p></p>



<p>BrowserSeal本体のアドレスバーにURLを入力すると、<br />
ブラウザが順番に立ち上がってWebページを開き、<br />
キャプチャを撮る動作後に閉じられます。<br />
（なんかこう、ちょっとアナログな感じもしますが…）</p>



<p>とられたキャプチャは本体にタブ分けされて表示されます。<br />
長いページ等は、キチンと下までスクロールして撮影してくれます。</p>



<p>個人的にはブラウザパックが本命なのでトライアル版でも十分いけますが、<br />
スクリーンショット機能を存分に駆使したい方は有償版（$49.00）を手に入れましょう。<br />
自動化してくれるBrowserSeal.ROBOT（$199.0）なんてのも用意されています。</p>



<p><a href="http://www.browserseal.com/">BrowserSeal : fast multi browser website screenshot application</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>IE6を安らかに眠らせる為にWeb制作者が出来ること</title>
		<link>https://blog.mach3.jp/2010/05/17/say-good-night-ie6.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Mon, 17 May 2010 22:52:00 +0000</pubDate>
				<category><![CDATA[Monologue]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/05/17/ie6%e3%82%92%e5%ae%89%e3%82%89%e3%81%8b%e3%81%ab%e7%9c%a0%e3%82%89%e3%81%9b%e3%82%8b%e7%82%ba%e3%81%abweb%e5%88%b6%e4%bd%9c%e8%80%85%e3%81%8c%e5%87%ba%e6%9d%a5%e3%82%8b%e3%81%93%e3%81%a8.html</guid>

					<description><![CDATA[既にサポートがとうの昔に終了を告げているIE6ですが、 そんな9年前のミルクのようなブラウザを未だに使用している人がいる事で、 Web制作者は頭を悩ませています。 そこで、Web制作に携わる立場から、 この現状で何が出来 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>既にサポートがとうの昔に終了を告げているIE6ですが、<br />
そんな<a href="http://www.microsoft.com/australia/technet/ie8milk/Default.aspx">9年前のミルクのようなブラウザ</a>を未だに使用している人がいる事で、<br />
Web制作者は頭を悩ませています。</p>



<p>そこで、Web制作に携わる立場から、<br />
この現状で何が出来るのかをちょっと考えてみました。</p>



<p><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/S_FJYWHXbDI/AAAAAAAAA58/EMeElewR0tQ/s800/201005172028.png" alt="腐った牛乳"><br />
<a href="http://www.microsoft.com/australia/technet/ie8milk/Default.aspx">Upgrade to Internet Explorer 8 | Microsoft Australia</a></p>



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



<h2 class="wp-block-heading">旧バージョン対応作業料金を別途にする</h2>



<p>2バージョン以前のブラウザでの動作保証には、<br />
別途料金として何割かを上乗せをする、等。<br />
その際、「旧バージョン対応作業料」等として明記しておく。</p>



<p>制作側の作業コストの補填は勿論ですが、<br />
顧客サイドのブラウザのバージョンアップを促す効果も期待できると思います。</p>



<p>例えば、<em>「最終顧客の社内システムがIE6依存の為、対応せざるを得ない」</em><br />
というケースはかなり頻出しますが、<br />
対応するのとしないのとで数字として明確な差があれば、<br />
顧客社内でも、システムのバージョンアップを提案しやすくなるのではないでしょうか。</p>



<h2 class="wp-block-heading">CSSを外してしまおう</h2>



<p>かつてNetscape4.x対策として講じられた方法ですが、<br />
そろそろIE6等にもあてがっても良い時期が来ているのではないでしょうか。<br />
（もしくは、その時期はとうに過ぎ去っているような）</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/S_FJYq8of2I/AAAAAAAAA58/6sOBKwaFnJc/s800/201005172151.png" alt="古いブラウザはCSSを外してしまう"/></figure>



<p></p>



<p>Netscape4.xは、確かmedia属性を弄ったようなおぼろげな記憶がありますが、<br />
IE6の場合はこんなコードで実現出来ます。（jQueryを使用しています）</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">if</span> (<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">document</span>.documentElement.style.maxHeight == <span class="hljs-string">"undefined"</span>) {
    $(<span class="hljs-string">"link&#91;rel=stylesheet]"</span>).remove(); <span class="hljs-comment">// link要素のスタイルシートを削除</span>
    $(<span class="hljs-string">"style&#91;type=text/css]"</span>).remove(); <span class="hljs-comment">// style要素を削除</span>
    $(<span class="hljs-string">"&lt;div&gt;"</span>).prependTo( $(<span class="hljs-string">"body"</span>)).load(<span class="hljs-string">"browser-update.html"</span>);
}
</code></span></pre>


<p>最後の行はブラウザアップデートを促すメッセージを読み込む処理です。<br />
cf) <a href="/2010/04/no-more-ie6.html">「No More IE6」へのアプローチ</a></p>



<p>このような処理は、旧ブラウザを使用するユーザーに対して<br />
それを使い続ける事のデメリットを分かりやすく伝える事が出来ます。<br />
「セキュリティがどうの」などという当事者にとってはピンと来ない話をされるよりかは、<br />
効果は期待できそうですね。</p>



<p>同時に、アップデートページへの導線も用意してあげれば、<br />
リテラシーが低いユーザーさんも安心です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>と、制作者にとっては結構当たり前かもしれない事を淡々と流す記事になりましたが、<br />
モダンブラウザに乗り換えないユーザーさんに共通して言えるのは<br />
<em>それを使い続ける事による明確なデメリット</em>が見つからないからではないか、と考えています。</p>



<p>であれば、それを明らかな形として提示してみれば、<br />
バージョンアップする動機が生まれるのではないでしょうか。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>「No More IE6」へのアプローチ</title>
		<link>https://blog.mach3.jp/2010/04/03/no-more-ie6.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Sat, 03 Apr 2010 22:56:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/04/03/%e3%80%8cno-more-ie6%e3%80%8d%e3%81%b8%e3%81%ae%e3%82%a2%e3%83%97%e3%83%ad%e3%83%bc%e3%83%81.html</guid>

					<description><![CDATA[マイリスペクト「地獄のミサワの「女に惚れさす名言集」」 にインスパイアされて描いてみました。ペンタブほしい。 さて、Web制作者にとってIE6への対応はかなりの足枷。 出来るだけIE6ユーザーにはモダンブラウザに乗り換え [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/S7c_vH_BvUI/AAAAAAAAA58/eLSdDO682lQ/201004032209.png" alt="No More IEへのアプローチ"/></figure>



<p></p>



<p>マイリスペクト「<a href="http://jigokuno.com/">地獄のミサワの「女に惚れさす名言集」</a>」<br />
にインスパイアされて描いてみました。ペンタブほしい。</p>



<p>さて、Web制作者にとってIE6への対応はかなりの足枷。<br />
出来るだけIE6ユーザーにはモダンブラウザに乗り換えてもらいたい所ですね。<br />
そこで、IE6で閲覧すると、アップデートを促すメッセージを表示させる。<br />
そのための手法をいくつかまとめてみました。</p>



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



<h2 class="wp-block-heading">1. CSSハックで表示</h2>



<p>IE6用のメッセージを予め文書内に設置しておき、<br />
CSSハックでIE6にだけ表示する。とても簡単。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-id">#no-more-ie6</span>{
    <span class="hljs-attribute">display</span>: none;
    <span class="hljs-attribute">_display</span>: block;
}
</code></span></pre>


<p>ただ、ハックを使うとCSSがValidで無くなるため、<br />
好まない人もいるでしょう。そこで、</p>



<h2 class="wp-block-heading">2. 条件分岐コメント</h2>



<p>IE独自の条件分岐コメントで、IE6だけにメッセージを表示する。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"stylesheet"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/css"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"style.css"</span> /&gt;</span>
<span class="hljs-comment">&lt;!--&#91;if lte IE 6.0]&gt;
&lt;link rel="stylesheet" type="text/css" href="ie6.css"  /&gt;
&lt;!&#91;endif]--&gt;</span>
</code></span></pre>


<h3 class="wp-block-heading">style.css</h3>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-id">#no-more-ie6</span>{
    <span class="hljs-attribute">display</span>: none;
}
</code></span></pre>


<h3 class="wp-block-heading">ie6.css</h3>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-id">#no-more-ie6</span>{
    <span class="hljs-attribute">display</span>: block;
}
</code></span></pre>


<p>しかし、IE6からの脱却を勧めたいのにIE6専用のスタイルシートを用意する、<br />
というのもなんだか気持ち悪いですね。</p>



<h2 class="wp-block-heading">3. よろしい、ならばJavaScriptだ</h2>



<p>jQuery等のライブラリを用意すればいとも簡単に処理できます。</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">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">"jquery.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
<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">"noie6.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


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


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">if</span> (<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">document</span>.documentElement.style.maxHeight == <span class="hljs-string">"undefined"</span>) {
    $(<span class="hljs-string">"&lt;div&gt;&lt;strong&gt;貴方がお使いのブラウザはもう息をしていません。&lt;/strong&gt;&lt;/div&gt;"</span>)
    .prependTo( $(<span class="hljs-string">"body"</span>) );
}
</code></span></pre>


<p>これでページ最上部にメッセージが挿入されます。<br />
なんて便利なんだjQuery。</p>



<h2 class="wp-block-heading">4. Ajaxでもっと彩り豊かに</h2>



<p>メッセージと一緒にモダンブラウザのダウンロードページに誘導したい。<br />
そうなるとHTML生成の部分がかなりゴチャゴチャして気持ち悪いソースになります。<br />
ならば、Ajaxで外部読み込みをしてみましょう。</p>



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


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">if</span> (<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">document</span>.documentElement.style.maxHeight == <span class="hljs-string">"undefined"</span>) {
    $(<span class="hljs-string">"&lt;div /&gt;"</span>).prependTo( $(<span class="hljs-string">"body"</span>)).load(<span class="hljs-string">"noie6.html"</span>);
}
</code></span></pre>


<h3 class="wp-block-heading">noie6.html</h3>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"no-more-ie6"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h4</span>&gt;</span>そのブラウザ、息してますか？<span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>今すぐ息をしているブラウザにアップデート！<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">li</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">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>Google Chrome<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">li</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">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>Firefox<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">li</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">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>Safari<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></span></pre>


<p>だいぶすっきりしました。</p>



<p>それにしても、<a href="http://ie6funeral.com/">立派な葬式をあげてもらえたり</a>、<br />
わざわざ<a href="http://ajaxian.com/archives/jquery-one-line-plugin-to-crash-ie6">専用のクラックコード</a><br />
を考案してもらえたり、（良い子は真似をしないように）<br />
世界中の人々に構ってもらえるIE6はずいぶんと幸せ者だと思います。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
