<?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>Waviaei &#187; hack</title>
	<atom:link href="http://waviaei.com/tag/hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://waviaei.com</link>
	<description>WordPress、写真・カメラ、本、Web関連やガジェットなどの話題を書いているブログです。</description>
	<lastBuildDate>Mon, 07 Nov 2011 16:42:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<atom:link rel='hub' href='http://waviaei.com/?pushpress=hub'/>
		<item>
		<title>IE７はDoubled Float-Margin Bugが修正されているのとIEハック</title>
		<link>http://waviaei.com/2006/07/02/ie-css-bug-hack-and-ie7/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ie-css-bug-hack-and-ie7</link>
		<comments>http://waviaei.com/2006/07/02/ie-css-bug-hack-and-ie7/#comments</comments>
		<pubDate>Sun, 02 Jul 2006 10:19:02 +0000</pubDate>
		<dc:creator>Toru</dc:creator>
				<category><![CDATA[WebDesign]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://waviaei.com/2006/07/02/ie-css-bug-hack-and-ie7/</guid>
		<description><![CDATA[今回の新しいデザインを作成した際に、IE固有のバグ「IE Doubled Float-Margin Bugに悩まされました。 このバグは、floatするとmarginが２倍となる、IEのみの原因不明バグ。今回でのデザイン...  <a href="http://waviaei.com/2006/07/02/ie-css-bug-hack-and-ie7/" class="more-link" title="Read IE７はDoubled Float-Margin Bugが修正されているのとIEハック">Read more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>今回の新しいデザインを作成した際に、IE固有のバグ「<a title="IE Doubled Float-Margin Bug - CSS fixes and workarounds" href="http://www.positioniseverything.net/explorer/doubled-margin.html">IE Doubled Float-Margin Bug</a>に悩まされました。</p>
<p>このバグは、<code>float</code>すると<code>margin</code>が２倍となる、IEのみの原因不明バグ。今回でのデザインでもそうだったし、おそらく一番起こりやすいケースが、<code>div</code>を<code>float: left</code>で回り込ませて、同じ<code>div</code>に<code>margin-left: 20px</code>と同じ左方向へマージンを指定するケース。20pxがなぜか２倍の40pxに表示されてしまう。Waviaeiのフッタのように、複数の<code>div</code>を全て<code>float: left</code>させると、一番左端の<code>div</code>のマージンが２倍になる。</p>
<p>解決方法は<a title="IE Doubled Float-Margin Bug - CSS fixes and workarounds" href="http://www.positioniseverything.net/explorer/doubled-margin.html">positioniseverything.net</a>で示されているように、<code>display: inline</code>を指定するか、<a title="View product details at Amazon" href="http://www.amazon.co.jp/exec/obidos/redirect?tag=waviaei-22%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.co.jp/gp/redirect.html%253fASIN=4839919070%2526tag=waviaei-22%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/4839919070%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82">CSSプロフェッショナル・スタイル</a>のp.248に書かれている、マージンの代わりにパディングで指定する。</p>
<p><span id="more-528"></span></p>
<h2>IE7</h2>
<p>今回この「IE Doubled Float-Margin Bug」はIE7では修正せれているみたいだ。少なくともbeta2の段階で、Waviaeiのデザインを試した限りでは問題なかった。</p>
<p>このバグを含め、他にIEに悩まさせれたのは２つ。１つはアイコン画像の透明部分がPNG24の為、表示がおかしくなる問題。IE7ではサポートされているけど、IE6以前ではサポートされていない事は分かっていた。<a title="caramel*vanilla » 透明PNG画像をハックなしに異なるブラウザで表示" href="http://caramel-tea.com/2006/05/no_hack_png/">PNG8</a>でも試したけれど、アイコンの画質が落ちすぎるので諦めた。もう１つは、<code>li</code>に<code>list-style-position: inside</code>と一括指定した上で、後で<code>list-style: none</code>と指定しても、<code>list-style-position: inside</code>が適用されたままになる。</p>
<p>この２つの解決方法は簡単。せっかくなので、IE7ハックを調べてみる。参考にしたのは<a title="Lucky bag::blog: IE7 を含むモダンブラウザ向けの CSS ハックまとめ" href="http://www.lucky-bag.com/archives/2006/06/css-hacks.html">Lucky bag::blog: IE7 を含むモダンブラウザ向けの CSS ハックまとめ</a>と、<a title="Stylesheet Stylebook：IE用CSSの指定方法" href="http://www.stylesheet-stylebook.com/archives/000090.php">Stylesheet Stylebook：IE用CSSの指定方法</a>。</p>
<p>IE用のCSSファイルを用意して、問題のある箇所をバージョン6以下のIEにのみに適用するハックを使って、修正の為のCSSを記述。<code>* html body</code>を使用。</p>
<p>IEのみにこのCSSファイルを読み込ませるには、「Conditional Comments」を利用する。これはハックではなく、マイクロソフトがIEに組み込んだ機能。</p>
<p>[css]<br />
&lt;!&#8211;[if IE]&gt;<br />
	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ie.css&quot; mce_href=&quot;ie.css&quot; /&gt;&lt;![endif]&#8211;&gt;<br />
[/css]</p>
<p>このようにヘッダに記述すると、IEでのみ<code>ie.css</code>が読み込まれるようになる。このときに、後で指定されたCSSは先のそれを上書きする仕様を忘れないように注意。つまり、読み込ませるCSSファイルのリストの一番最後にこれを記述する。WordPressだったら、<code>style.css</code>へのリンクの後になる。この「Conditional Comments」については、MSDNに<a title="About Conditional Comments" href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp">詳細な記事</a>がある。英語が苦手な方は、古いけど<a title="Stylesheet Stylebook：IE用CSSの指定方法" href="http://www.stylesheet-stylebook.com/archives/000090.php">この記事</a>が分かりやすい。</p>
]]></content:encoded>
			<wfw:commentRss>http://waviaei.com/2006/07/02/ie-css-bug-hack-and-ie7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

