<?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>zoom &#8211; WL</title>
	<atom:link href="https://wwl3.com/tag/zoom/feed/" rel="self" type="application/rss+xml" />
	<link>https://wwl3.com</link>
	<description>越来越好，越好越来</description>
	<lastBuildDate>Thu, 18 Sep 2014 14:08:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://wwl-1316477995.cos.ap-shanghai.myqcloud.com/uploads/2023/01/logo-188x188.jpg</url>
	<title>zoom &#8211; WL</title>
	<link>https://wwl3.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>IE Haslayout 详解</title>
		<link>https://wwl3.com/2008/12/ie-haslayout-%e8%af%a6%e8%a7%a3/</link>
		
		<dc:creator><![CDATA[不一样的蚊子]]></dc:creator>
		<pubDate>Tue, 09 Dec 2008 19:21:20 +0000</pubDate>
				<category><![CDATA[WEB规范]]></category>
		<category><![CDATA[haslayout]]></category>
		<category><![CDATA[zoom]]></category>
		<guid isPermaLink="false">http://wwl3.com/?p=117</guid>

					<description><![CDATA[IE的haslayout是个很纠结的东西，掌握好CSS就得掌握好它。初学CSS时走了很多弯路，以下几篇文章在我的学习中起了很大的作用，希望能让大家受益。 此文是和老包共同弄的，参考了On have layout 。 另外两篇文章摘自CSS Mastery【精通CSS】，与此文相互补充，希望对大家有帮助 Having “layout” 拥有布局 IE haslayout 拥有layout概述 Internet Explorer 中有很多奇怪的渲染问题可以通过赋予其&#8221;layout&#8221;得到解决。John Gallant 和 Holly Bergevin 把这些问题归类为&#8221;尺寸臭虫(dimensional bugs)&#8221;[32]，意思是这些臭虫可以通过赋予相应元素某个宽度或高度解决。 &#8220;Layout&#8221;是一个 Internet Explorer for Windows的私有概念，它决定了一个元素如何显示以及约束其包含的内容、如何与其他元素交互和建立联系、如何响应和传递应用程序事件、用户事件等。这种渲染特性可以通过某些 CSS 属性被不可逆转地触发。而有些 HTML 元素则默认就具有&#8221;layout&#8221;。 微软的开发者们认为元素都应该可以拥有一个&#8221;属性(property)&#8221;(这是面向对象编程中的一个概念)，于是他们便使用了 hasLayout，这种渲染特性生效时也就是将 hasLayout 设成了 true 之时。了解hasLayout将对IE的臭虫会有更多深入的体会甚至解决方案。 拥有layout的定义 一个元素&#8221;得到 layout&#8221;，或者说一个元素&#8221;拥有 layout&#8221; 的时候，是指它的微软专有属性 hasLayout 为此被设为了 true 。一个&#8221;layout元素&#8221;可以是一个默认就拥有 layout 的元素或者是一个通过设置某些 CSS 属性得到 layout 的元素。 而&#8221;无layout元素&#8221;，是指 hasLayout 未被触发的元素，比如一个未设定宽高尺寸的干净 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>IE的haslayout是个很纠结的东西，掌握好CSS就得掌握好它。初学CSS时走了很多弯路，以下几篇文章在我的学习中起了很大的作用，希望能让大家受益。</p>
<p>此文是和<a href="http://www.om19.cn/" target="_blank">老包</a>共同弄的，参考了<a href="http://www.satzansatz.de/cssd/onhavinglayout.html" target="_blank">On have layout</a> 。</p>
<p>另外两篇文章摘自<a href="http://www.douban.com/subject/1583135/" target="_blank">CSS Mastery【精通CSS】</a>，与此文相互补充，希望对大家有帮助</p>
<ul>
<li><a href="https://wwl3.com/2009/03/ie-has-layout-and-bugs/">Having “layout”</a></li>
<li><a href="https://wwl3.com/2009/03/ie-has-layout-and-bugs-zh/">拥有布局 IE haslayout</a></li>
</ul>
<h3>拥有layout概述</h3>
<p>Internet Explorer 中有很多奇怪的渲染问题可以通过赋予其&#8221;layout&#8221;得到解决。John Gallant 和 Holly Bergevin 把这些问题归类为&#8221;尺寸臭虫(dimensional bugs)&#8221;[32]，意思是这些臭虫可以通过赋予相应元素某个宽度或高度解决。</p>
<p>&#8220;Layout&#8221;是一个 Internet Explorer for Windows的私有概念，它决定了一个元素如何显示以及约束其包含的内容、如何与其他元素交互和建立联系、如何响应和传递应用程序事件、用户事件等。这种渲染特性可以通过某些 CSS 属性被不可逆转地触发。而有些 HTML 元素则默认就具有&#8221;layout&#8221;。</p>
<p>微软的开发者们认为元素都应该可以拥有一个&#8221;属性(property)&#8221;(这是面向对象编程中的一个概念)，于是他们便使用了 hasLayout，这种渲染特性生效时也就是将 hasLayout 设成了 true 之时。了解hasLayout将对IE的臭虫会有更多深入的体会甚至解决方案。<span id="more-117"></span></p>
<h3>拥有layout的定义</h3>
<p>一个元素&#8221;得到 layout&#8221;，或者说一个元素&#8221;拥有 layout&#8221; 的时候，是指它的微软专有属性 hasLayout 为此被设为了 true 。一个&#8221;layout元素&#8221;可以是一个默认就拥有 layout 的元素或者是一个通过设置某些 CSS 属性得到 layout 的元素。<br />
而&#8221;无layout元素&#8221;，是指 hasLayout 未被触发的元素，比如一个未设定宽高尺寸的干净 div 元素就可以做为一个&#8221;无layout祖先&#8221;。</p>
<p>给一个默认没有 layout 的元素赋予 layout 的方法包括设置可触发 hasLayout = true 的 CSS 属性。参考默认 layout 元素以及这些属性列表。没有办法设置 hasLayout = false ， 除非把一开始那些触发 hasLayout = true 的 CSS 属性去除或重置。</p>
<h3>拥有layout的各种问题</h3>
<p>Layout 在显示盒模型时有着不同寻常而且难以预料的效果，而且有时甚至会牵连到他们的子元素。</p>
<p>一个元素是否具有&#8221;layout&#8221;可能会引发如下的一些问题（包括但不限于）：</p>
<ul>
<li>IE 很多常见的浮动臭虫。</li>
<li>元素本身对一些基本属性的异常处理问题。</li>
<li>容器和其子孙之间的空白边重叠问题。</li>
<li>使用列表时遇到的诸多问题。</li>
<li>背景图像的定位偏差问题。</li>
<li>使用脚本时遇到的浏览器之间处理不一致的问题。</li>
</ul>
<h3>Layout 的由来</h3>
<p>不同于标准属性，也不像某些浏览器的私有 CSS 属性，layout 无法通过某一个 CSS 声明直接设定 。也就是说没有&#8221;layout属性&#8221;这么一个东西，元素要么本身自动拥有 layout，要么借助一些 CSS 声明悄悄地获得 layout。</p>
<p>下列元素应该是默认具有 layout 的：</p>
<ul>
<li>&lt;html&gt;, &lt;body&gt;</li>
<li>&lt;table&gt;, &lt;tr&gt;, &lt;th&gt;, &lt;td&gt;</li>
<li>&lt;img&gt;</li>
<li>&lt;hr&gt;</li>
<li>&lt;input&gt;, &lt;button&gt;, &lt;select&gt;, &lt;textarea&gt;, &lt;fieldset&gt;, &lt;legend&gt;</li>
<li>&lt;iframe&gt;, &lt;embed&gt;, &lt;object&gt;, &lt;applet&gt;</li>
<li>&lt;marquee&gt;</li>
</ul>
<p>下列 CSS 属性和取值将会让一个元素获得 layout：</p>
<ul>
<li>position: absolute<br />
绝对定位元素的包含区块(containing block)就会经常在这一方面出问题。</li>
<li>float: left|right<br />
由于 layout 元素的特性，浮动模型会有很多怪异的表现。</li>
<li>display: inline-block<br />
当一个内联级别的元素需要 layout 的时候往往就要用到它，这也可能也是这个 CSS 属性的唯一效果&#8211;让某个元素拥有 layout。&#8221;inline-block行为&#8221;在IE中是可以实现的，但是非常与众不同： IE/Win: inline-block and hasLayout 。</li>
<li>width: 除 &#8220;auto&#8221; 外的任意值<br />
很多人遇到 layout 相关问题发生时，一般都会先尝试用这个来修复。</li>
<li>height: 除 &#8220;auto&#8221; 外的任意值<br />
height: 1% 就在 Holly Hack 中用到。</li>
<li>zoom: 除 &#8220;normal&#8221; 外的任意值<br />
IE专有属性。不过 zoom: 1 可以临时用做调试。</li>
<li>writing-mode: tb-rl<br />
MS专有属性。</li>
<li>overflow: hidden|scroll|auto<br />
在 IE7 中，overflow 也变成了一个 layout 触发器，这个属性在之前版本 IE 中没有触发 layout 的功能。</li>
<li>overflow-x|-y: hidden|scroll|auto<br />
overflow-x 和 overflow-y 是 CSS3 盒模型中的属性，尚未得到浏览器的广泛支持。他们在之前版本IE中没有触发 layout 的功能。</li>
<li>另外 IE7 的荧幕上又新添了几个 haslayout 的演员，如果只从 hasLayout 这个方面考虑，min/max 和 width/height 的表现类似，position 的 fixed 和 absolute 也是一模一样。</li>
<li>position: fixed</li>
<li>min-width: 任意值<br />
就算设为0也可以让该元素获得 layout。</li>
<li>max-width: 除 &#8220;none&#8221; 之外的任意值</li>
<li>min-height: 任意值<br />
即使设为0也可以让该元素的 haslayout=true</li>
<li>max-height: 除 &#8220;none&#8221; 之外的任意值</li>
</ul>
<h3>有关内联级别元素</h3>
<p>对于内联元素(可以是默认即为内联的比如 span 元素，也可以是 display: inline 的元素)</p>
<ul>
<li>width 和 height 只在 IE5.x 下和 IE6 或更新版本的 quirks 模式下触发 hasLayout 。而对于 IE6，如果浏览器运行于标准兼容模式下，内联元素会忽略 width 或 height 属性，所以设置 width 或 height 不能在此种情况下令该元素具有 layout。</li>
<li>zoom 总是可以触发 hasLayout，但是在 IE5.0 中不支持。</li>
</ul>
<p>具有&#8221;layout&#8221; 的元素如果同时也 display: inline ，那么它的行为就和标准中所说的 inline-block 很类似了：在段落中和普通文字一样在水平方向和连续排列，受 vertical-align 影响，并且大小可以根据内容自适应调整。这也可以解释为什么单单在 IE/Win 中内联元素可以包含块级元素而少出问题，因为在别的浏览器中 display: inline 就是内联，不像 IE/Win 一旦内联元素拥有 layout 还会变成 inline-block。</p>
<h3>重置 hasLayout</h3>
<p>在另一条规则中重设以下属性为默认值将重置(或撤销)hasLayout，如果没有其他属性再添加 hasLayout 的话：</p>
<ul>
<li>width, height (设为 &#8220;auto&#8221;)</li>
<li>max-width, max-height (设为 &#8220;none&#8221;)(在 IE 7 中)</li>
<li>position (设为 &#8220;static&#8221;)</li>
<li>float (设为 &#8220;none&#8221;)</li>
<li>overflow (设为 &#8220;visible&#8221;) (在 IE 7 中)</li>
<li>zoom (设为 &#8220;normal&#8221;)</li>
<li>writing-mode (从 &#8220;tb-rl&#8221; 设为 &#8220;lr-t)</li>
</ul>
<p>display 属性的不同：当用&#8221;inline-block&#8221;设置了 haslayout = true 时，就算在一条独立的规则中覆盖这个属性为&#8221;block&#8221;或&#8221;inline&#8221;，haslayout 这个标志位也不会被重置为 false。</p>
<p>把 mid-width, mid-height 设为它们的默认值&#8221;0&#8243;仍然会赋予 hasLayout，但是 IE 7 却可以接受一个不合法的属性&#8221;auto&#8221;来重置 hasLayout。</p>
<p class="zoundry_raven_tags"><!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --> <span class="ztags"><span class="ztagspace">Technorati</span> : <a class="ztag" rel="tag" href="http://www.technorati.com/tag/css">css</a>, <a class="ztag" rel="tag" href="http://www.technorati.com/tag/haslayout">haslayout</a>, <a class="ztag" rel="tag" href="http://www.technorati.com/tag/ie">ie</a>, <a class="ztag" rel="tag" href="http://www.technorati.com/tag/web+standard">web standard</a>, <a class="ztag" rel="tag" href="http://www.technorati.com/tag/zoom">zoom</a></span><br />
<span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a class="ztag" rel="tag" href="http://del.icio.us/tag/css">css</a>, <a class="ztag" rel="tag" href="http://del.icio.us/tag/haslayout">haslayout</a>, <a class="ztag" rel="tag" href="http://del.icio.us/tag/ie">ie</a>, <a class="ztag" rel="tag" href="http://del.icio.us/tag/web%20standard">web standard</a>, <a class="ztag" rel="tag" href="http://del.icio.us/tag/zoom">zoom</a></span><br />
<span class="ztags"><span class="ztagspace">Zooomr</span> : <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=css">css</a>, <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=haslayout">haslayout</a>, <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=ie">ie</a>, <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=web%20standard">web standard</a>, <a class="ztag" rel="tag" href="http://www.zooomr.com/search/photos/?q=zoom">zoom</a></span><br />
<span class="ztags"><span class="ztagspace">Flickr</span> : <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/css">css</a>, <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/haslayout">haslayout</a>, <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/ie">ie</a>, <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/web%20standard">web standard</a>, <a class="ztag" rel="tag" href="http://www.flickr.com/photos/tags/zoom">zoom</a></span></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
