<?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>understandard &#187; haslayout</title>
	<atom:link href="http://www.understandard.net/tag/haslayout/feed" rel="self" type="application/rss+xml" />
	<link>http://www.understandard.net</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 02:24:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>hasLayoutメモ</title>
		<link>http://www.understandard.net/css/css005.html</link>
		<comments>http://www.understandard.net/css/css005.html#comments</comments>
		<pubDate>Sun, 27 Jul 2008 14:08:33 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[haslayout]]></category>
		<category><![CDATA[IE7]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=22</guid>
		<description><![CDATA[IE7に付いたズーム機能を使って拡大・縮小したときにbodyに指定した背景画像が拡大・縮小されず、理由が分からず困ったことがありました。
「原因はhaslayoutの値がfalseになっているから」
隣にいた同僚にそう教 [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			
関連投稿はまだありません。
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>IE7に付いたズーム機能を使って拡大・縮小したときにbodyに指定した背景画像が拡大・縮小されず、理由が分からず困ったことがありました。</p>
<p>「原因はhaslayoutの値がfalseになっているから」<br />
隣にいた同僚にそう教えてもらってなんとかズーム機能に対応はできましたが、今後同様の事例が出た時に困らないようにメモ。</p>
<h2>でhasLayoutって何？</h2>
<p>hasLayout は IE 独自のプロパティで、各要素がレイアウト情報を持っているかどうかを示すもののようです。<br />
上に書いた背景画像の拡大・縮小時のバグはhasLayoutプロパティの値がfalseになっている場合に起こるそうです。</p>
<p>その他のバグの情報はMicrosoftの<a href="http://support.microsoft.com/kb/933053/ja">Internet Explorer 7 におけるズーム機能の問題</a>で紹介されてます。<br />
ここで回避策として ZOOM 機能を無効化するという方法が書かれていますが、本末転倒というか全く意味ないですｗ</p>
<p>とにかく、haslayoutの値がfalseになってるからバグるなら、値ををtrueにすればバグらないはず。<br />
cssで下の表に示すプロパティを指定すればhaslayoutに伴うバグを回避できます（参考：MSDN <a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/ms533776.aspx">hasLayout Property (A, ABBR, ACRONYM, &#8230;)</a>）。</p>
<table border="0" summary="hasLayoutの値をtrueにする指定">
<tbody>
<tr>
<th>プロパティ</th>
<th>値</th>
</tr>
<tr>
<td>display</td>
<td>inline-block</td>
</tr>
<tr>
<td>float</td>
<td>left もしくは right</td>
</tr>
<tr>
<td>height</td>
<td>any value</td>
</tr>
<tr>
<td>position</td>
<td>absolute</td>
</tr>
<tr>
<td>width</td>
<td>any value</td>
</tr>
<tr>
<td>writing-mode</td>
<td>tb-rl</td>
</tr>
<tr>
<td>zoom</td>
<td>any value</td>
</tr>
</tbody>
</table>
<p>これを使って一番てっとり早くバグを解消するには、</p>
<pre class="brush: css;">*{
zoom:1;
}</pre>
<p>を指定すること。</p>
<p>これを指定するだけで、拡大・縮小時のバグが解消されてハッピー！となれば良かったんですが、そうはいかないのがさすがIE…。</p>
<h2>*{zoom:1;}の落とし穴</h2>
<p>全称セレクタを使ってhaslayoutの値をtrueにしたら、今まで発生しなかったバグが発生してしまいました…。</p>
<p>記事を書いていたら、olのリスト番号が表示されない！<br />
zoom:1を指定するまではちゃんと表示されていたので、原因は間違いなくこれ。</p>
<p>それで調べてみたら、<a href="http://webtech-walker.com/archive/2007/11/27033016.html/trackback">hasLayoutプロパティがtrueで発生するバグ &#8211; Webtech Walker</a>で解説されていました。<br />
サンプルページもあり、非常にわかりやすかったです。</p>
<p>前の記事で全称セレクタについて書きましたが、全称セレクタを使うってことは二次災害的なデメリットが生まれるし、良くないんだなと改めて痛感しました。</p>
<p>そこで全称セレクタではなく、バグる要素にだけzoom:1を指定することでひとまず解決しました。</p>
<p>IE８からhaslayoutはなくなるらしいですが、ブラウザの移行がすんなり進むとも考えにくいので、これからもしばらくはhaslayoutに頭を悩ませることになりそうですね。</p>
<p><ins datetime="2009-10-20T08:42:26+00:00"><span>※2009年10月20日17時42分</span>　追加</ins></p>
<p>せっかくなので、haslayoutをfalseにする指定も。<br />
こちらは、毎度勉強させてもらってるヨモツネットさんから。<br />
<a href="http://www.yomotsu.net/lab/css/tips_haslayout-false">hasLayout を false にするには | ヨモツネット</a></p>
<table border="0" summary="hasLayoutの値をfalseにする指定">
<tbody>
<tr>
<th>プロパティ</th>
<th>値</th>
</tr>
<tr>
<td>display</td>
<td>block もしくは inline</td>
</tr>
<tr>
<td>float</td>
<td>none</td>
</tr>
<tr>
<td>height</td>
<td>auto</td>
</tr>
<tr>
<td>position</td>
<td>static もしくは relative</td>
</tr>
<tr>
<td>width</td>
<td>auto</td>
</tr>
<tr>
<td>writing-mode</td>
<td>lr-tb</td>
</tr>
<tr>
<td>zoom</td>
<td>normal</td>
</tr>
</tbody>
</table>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<p>関連投稿はまだありません。</p>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/css/css005.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
