<?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>Pivot Code &#187; 溢出</title>
	<atom:link href="http://www.pivotcode.com/tag/%e6%ba%a2%e5%87%ba/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pivotcode.com</link>
	<description>欢迎来我的小思想绽放的地方……</description>
	<lastBuildDate>Sun, 30 Oct 2011 13:37:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>IE6下图像的最大宽度</title>
		<link>http://www.pivotcode.com/ie6-img-max-widht/</link>
		<comments>http://www.pivotcode.com/ie6-img-max-widht/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 09:10:01 +0000</pubDate>
		<dc:creator>Vidar Liu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[max-width]]></category>
		<category><![CDATA[overflow]]></category>
		<category><![CDATA[兼容性]]></category>
		<category><![CDATA[最大宽度]]></category>
		<category><![CDATA[溢出]]></category>

		<guid isPermaLink="false">http://mingsenliu.com/?p=177</guid>
		<description><![CDATA[图像如果显示在一个限制了宽度的div容器中时，图像有多大，它便会显示多大,当布局小于图像大小时便会产生溢出。同样的问题在table容器中一样。 那么你会说可以在CSS中定义布局中图像的宽度。那么如果图像小于布局的宽度时，图像便会被拉伸变形。那么有什么好的办法让这个图像即不会溢出，又能保持它原来的大小呢？这个时候我们可以用CSS的max-width方法来限制图像的最大宽度解决这个问题，具体用法就是: .layout&#123;width:600px;&#125; .layout img&#123;max-width:600px;height:auto;&#125;/*如果不希望图片会因为限制宽度而变形的话，那么把高度设置为自适应*/ 如此，问题解决，但是并不是所有问题都解决了，浏览器兼容性是永远都是前段工程师的噩梦，因为该死的IE6并不对这个属性提供支持。所以我们不得不针对IE6做一些处理。接下来就是只有IE支持的属性值：expression IE5及其以后版本支持在CSS中使用expression，用来把CSS属性和Javas cript表达式关联起来，这里的CSS属性可以是元素固有的属性，也可以是自定义属性。就是说CSS属性后面可以是一段Javas cript表达式，CSS属性的值等于Javascript表达式计算的结果。 在表达式中可以直接引用元素自身的属性和方法，也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。 用法是expression(statement),例如我们上面的CSS，我们需要在规则中加入 .layout&#123;width:600px;&#125; .layout img&#123;max-width:600px;width:expression&#40;this.width &#62; 600 ? 600: true&#41;;height:auto;&#125;/*this是指当前元素‘.’操作符中文代表中文意义的‘的’,width字面翻译宽度，后面是三元判断表达式，意思是说当img的宽度大于600时，img的宽等于600，否则不进行任何操作*/ 相关日志也谈IE6下block元素float多出文字BUG网页测试工具分享IE6固定定位position属性fixed BUG体验篇：Microsoft Expression Web 3 SuperPreview全攻略“IETester”微软官方产品SuperPreview之感慨篇]]></description>
			<content:encoded><![CDATA[<p>图像如果显示在一个限制了宽度的div容器中时，图像有多大，它便会显示多大,当布局小于图像大小时便会产生溢出。同样的问题在table容器中一样。</p>
<p>那么你会说可以在CSS中定义布局中图像的宽度。那么如果图像小于布局的宽度时，图像便会被拉伸变形。那么有什么好的办法让这个图像即不会溢出，又能保持它原来的大小呢？这个时候我们可以用CSS的max-width方法来限制图像的最大宽度解决这个问题，具体用法就是:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.layout</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">600px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.layout</span> img<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">max-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">600px</span><span style="color: #00AA00;">;</span>height<span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*如果不希望图片会因为限制宽度而变形的话，那么把高度设置为自适应*/</span></pre></div></div>

<p>如此，问题解决，但是并不是所有问题都解决了，浏览器兼容性是永远都是前段工程师的噩梦，因为该死的IE6并不对这个属性提供支持。所以我们不得不针对IE6做一些处理。接下来就是只有IE支持的属性值：expression</p>
<blockquote><p>IE5及其以后版本支持在CSS中使用expression，用来把CSS属性和Javas cript表达式关联起来，这里的CSS属性可以是元素固有的属性，也可以是自定义属性。就是说CSS属性后面可以是一段Javas cript表达式，CSS属性的值等于Javascript表达式计算的结果。 在表达式中可以直接引用元素自身的属性和方法，也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。</p></blockquote>
<p>用法是expression(statement),例如我们上面的CSS，我们需要在规则中加入</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.layout</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">600px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.layout</span> img<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">max-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">600px</span><span style="color: #00AA00;">;</span>width<span style="color: #00AA00;">:</span>expression<span style="color: #00AA00;">&#40;</span>this.<span style="color: #000000; font-weight: bold;">width</span> <span style="color: #00AA00;">&gt;</span> <span style="color: #cc66cc;">600</span> ? <span style="color: #cc66cc;">600</span><span style="color: #00AA00;">:</span> true<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>height<span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*this是指当前元素‘.’操作符中文代表中文意义的‘的’,width字面翻译宽度，后面是三元判断表达式，意思是说当img的宽度大于600时，img的宽等于600，否则不进行任何操作*/</span></pre></div></div>

<p><iframe width="600" height="500" frameborder="0" src="http://www.pivotcode.com/demo/imgoverflow.html"></iframe></p>
<h2  class="related_post_title">相关日志</h2><ul class="related_post"><li><a href="http://www.pivotcode.com/ie-6-overflow-element/" title="也谈IE6下block元素float多出文字BUG">也谈IE6下block元素float多出文字BUG</a></li><li><a href="http://www.pivotcode.com/web-test-tools-share-2/" title="网页测试工具分享">网页测试工具分享</a></li><li><a href="http://www.pivotcode.com/ie6-position-fixed-bug/" title="IE6固定定位position属性fixed BUG">IE6固定定位position属性fixed BUG</a></li><li><a href="http://www.pivotcode.com/microsoft-expression-web-3-superpreview/" title="体验篇：Microsoft Expression Web 3 SuperPreview全攻略">体验篇：Microsoft Expression Web 3 SuperPreview全攻略</a></li><li><a href="http://www.pivotcode.com/superpreview-lament/" title="“IETester”微软官方产品SuperPreview之感慨篇">“IETester”微软官方产品SuperPreview之感慨篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.pivotcode.com/ie6-img-max-widht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>也谈IE6下block元素float多出文字BUG</title>
		<link>http://www.pivotcode.com/ie-6-overflow-element/</link>
		<comments>http://www.pivotcode.com/ie-6-overflow-element/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 06:28:17 +0000</pubDate>
		<dc:creator>Vidar Liu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[BUG]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[overflow]]></category>
		<category><![CDATA[溢出]]></category>

		<guid isPermaLink="false">http://mingsenliu.com/?p=113</guid>
		<description><![CDATA[最近做的一个项目经常会用到块级元素（block）浮动定位（float）的方式做的一个类似于BBS文章列表多行多列的布局方案。 我大概看了一下网上对于此种布局的布局办法，发现大多都是用表格来做的。连豆瓣、discuz的论坛也都是表格布局。 但是我对表格的布局有种敬而远之的畏惧感，一个是它的代码量很大，虽然用DW里添加表格的工具很快的添加，但是对于它的自适应元素的问题，我始终难以控制的行云流水。因此，我还是决定用css来做。 我选择用ul元素做列表框架，li元素做列表行，span元素做各列的容器的布局方式实现。 【css部分】 @charset &#34;utf-8&#34;; /* CSS Document */ ul li&#123;margin:0; padding:0; list-style:none; font-size:12px; color:#333&#125;/*初始化ul,li元素，让我们更方便使用*/ ul li&#123;width:800px; height:35px; line-height:35px; border-bottom:1px dashed #ccc&#125;/*定义高35像素的li元素，宽是布局的宽，还定义了一个虚线的下边框*/ ul li span&#123;display:block; float:left; height:35px; line-height:35px;&#125;/*定义span元素为块级元素，左浮动，高为li元素的高*/ &#160; /*分别定义需要的列span元素的宽度*/ ul li span.listOne&#123;width:300px;&#125; ul li span.listTwo&#123;width:200px;&#125; ul li span.listThr&#123;width:100px;&#125; ul li span.listFou&#123;width:100px;&#125; ul li span.listFiv&#123;width:100px;&#125; 【html部分】 &#160; &#160; &#160; &#160; &#160; &#160; &#60;ul&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>最近做的一个项目经常会用到块级元素（block）浮动定位（float）的方式做的一个类似于BBS文章列表多行多列的布局方案。</p>
<p>我大概看了一下网上对于此种布局的布局办法，发现大多都是用表格来做的。连豆瓣、discuz的论坛也都是表格布局。</p>
<p>但是我对表格的布局有种敬而远之的畏惧感，一个是它的代码量很大，虽然用DW里添加表格的工具很快的添加，但是对于它的自适应元素的问题，我始终难以控制的行云流水。因此，我还是决定用css来做。</p>
<p>我选择用ul元素做列表框架，li元素做列表行，span元素做各列的容器的布局方式实现。</p>
<h2>【css部分】</h2>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@charset &quot;utf-8&quot;;</span>
<span style="color: #808080; font-style: italic;">/* CSS Document */</span>
ul li<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*初始化ul,li元素，让我们更方便使用*/</span>
ul li<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">800px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">dashed</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*定义高35像素的li元素，宽是布局的宽，还定义了一个虚线的下边框*/</span>
ul li span<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">block</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*定义span元素为块级元素，左浮动，高为li元素的高*/</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*分别定义需要的列span元素的宽度*/</span>
ul li span<span style="color: #6666ff;">.listOne</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">300px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listTwo</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listThr</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listFou</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listFiv</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<h2>【html部分】</h2>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&lt;ul&gt;
&nbsp;
	&lt;li&gt;
&lt;span&gt;帖子列表&lt;/span&gt;
&lt;span&gt;帖子分类&lt;/span&gt;
&lt;span&gt;发布者&lt;/span&gt;
&lt;span&gt;最后回复&lt;/span&gt;
&lt;span&gt;发布时间&lt;/span&gt;&lt;/li&gt;
&nbsp;
&nbsp;
	&lt;li&gt;
&lt;span&gt;&lt;a href=&quot;#&quot;&gt;这里是帖子标题&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;&lt;a href=&quot;#&quot;&gt;这里是帖子分类&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;&lt;a href=&quot;#&quot;&gt;发布者姓名&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;回复者姓名&lt;/span&gt;
&lt;span&gt;2009-10-10 20：10&lt;/span&gt;&lt;/li&gt;
&nbsp;
&lt;/ul&gt;</pre></div></div>

<p>这样，如果在IE6+浏览器看的话，会是预想的两行5列的效果，没有任何问题。但是，如果在IE6下看，右侧会多出最后一列中的末字到下一行，如图所示</p>
<p><a href="http://mingsenliu.com/wp-content/uploads/2009/12/overflow.jpg" target="_blank"><img class="aligncenter size-full wp-image-133" title="overflow" src="http://mingsenliu.com/wp-content/uploads/2009/12/overflow.jpg" alt="overflow" width="456" height="89" /></a></p>
<p>代码是没有任何问题的，因为在其他浏览器没有任何问题。所以那肯定是IE6的问题。</p>
<p>以前没有用过此种布局，因此并没有过处理此问题的经验。后来去往上搜了一下，往上大多都是出自同门师傅的答案，内容如下：</p>
<p>“1.是注释引起的,删除所有注释即可.<br />
2.hidden的input直接放在form下.<br />
3.display为none的div也有可能引发此bug.<br />
2,3可以通过外面再包一次DIV解决”</p>
<p>另外有一篇很详细的解说，但是他是通过宽度的调整解决的我没有尝试，有兴趣的可以试一下，奉上地址如下：<br />
<span style="color: #99cc00;">《IE6/IE7文字溢出bug原因及解决办法》</span><a href="http://www.yarak.net.cn/default.asp?id=82">http://www.yarak.net.cn/default.asp?id=82</a><br />
后来问了一下同事，他对此问题有过相应经验，不过他所知道的答案也是网上流传的方式。但是我的代码里并没有注释和以上类似的任何条件。<br />
后经尝试，得出以下方案：<br />
<span style="color: #ff0000;">1、在span的父元素上定义溢出隐藏overflow：hidden;可以解决此问题。</span><br />
<span style="color: #ff0000;">2、span元素在html中书写时不进行换行（块级元素的特性）</span><br />
<span style="color: #ff0000;">3、span元素去掉浮动（float）并把显示方式改成display：inline-block</span><br />
<span style="color: #000000;">如此，溢出BUG问题解决</span></p>
<h2  class="related_post_title">相关日志</h2><ul class="related_post"><li><a href="http://www.pivotcode.com/ie6-img-max-widht/" title="IE6下图像的最大宽度">IE6下图像的最大宽度</a></li><li><a href="http://www.pivotcode.com/css-five-common-functions/" title="CSS五个常见却不常用的属性">CSS五个常见却不常用的属性</a></li><li><a href="http://www.pivotcode.com/ie6-position-fixed-bug/" title="IE6固定定位position属性fixed BUG">IE6固定定位position属性fixed BUG</a></li><li><a href="http://www.pivotcode.com/css-text-shadow/" title="css文字阴影">css文字阴影</a></li><li><a href="http://www.pivotcode.com/cssimg-position-vote/" title="CSS结合单图定位制作的一个漂亮的投票应用">CSS结合单图定位制作的一个漂亮的投票应用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.pivotcode.com/ie-6-overflow-element/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

