<?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>Hsiang Chieh &#187; hack</title>
	<atom:link href="http://www.beautycss.org/blog/articles/tag/hack/feed" rel="self" type="application/rss+xml" />
	<link>http://www.beautycss.org/blog</link>
	<description></description>
	<lastBuildDate>Thu, 13 Oct 2011 17:55:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>两个CSS的问题</title>
		<link>http://www.beautycss.org/blog/articles/70</link>
		<comments>http://www.beautycss.org/blog/articles/70#comments</comments>
		<pubDate>Sun, 28 Sep 2008 02:14:28 +0000</pubDate>
		<dc:creator>hsiang</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[ie6]]></category>

		<guid isPermaLink="false">http://www.beautycss.org/blog/?p=70</guid>
		<description><![CDATA[第一个，让IE6支持min-width和max-width # // 说明：让 IE6 及其以下版本支持 CSS 中 min/max-width/height 属性 # // minmax.js: make IE5+/Win support CSS min/max-width/height # # /*@cc_on # @if (@_win32 &#38;&#38; @_jscript_version&#62;4) # # var minmax_elements; # # minmax_props= new Array( # new Array(’min-width’, ‘minWidth’), # new Array(’max-width’, ‘maxWidth’), # new Array(’min-height’,&#8217;minHeight’), # new Array(’max-height’,&#8217;maxHeight’) # ); # # // Binding. [...]]]></description>
			<content:encoded><![CDATA[<div>第一个，让IE6支持min-width和max-width</p>
<blockquote><p>#<br />
// 说明：让 IE6 及其以下版本支持 CSS 中 min/max-width/height 属性<br />
#<br />
// minmax.js: make IE5+/Win support CSS min/max-width/height<br />
#</p>
<p>#<br />
/*@cc_on<br />
#<br />
@if (@_win32 &amp;&amp; @_jscript_version&gt;4)<br />
#<br />
#<br />
var minmax_elements;<br />
#<br />
#<br />
minmax_props= new Array(<br />
#<br />
new Array(’min-width’, ‘minWidth’),<br />
#<br />
new Array(’max-width’, ‘maxWidth’),<br />
#<br />
new Array(’min-height’,&#8217;minHeight’),<br />
#<br />
new Array(’max-height’,&#8217;maxHeight’)<br />
#<br />
);<br />
#<br />
#<br />
// Binding. Called on all new elements. If , initialise; check all<br />
#<br />
// elements for minmax properties<br />
#<br />
#<br />
function minmax_bind(el) {<br />
#<br />
var i, em, ms;<br />
#<br />
var st= el.style, cs= el.currentStyle;<br />
#<br />
#<br />
if (minmax_elements==window.undefined) {<br />
#<br />
// initialise when body element has turned up, but only on IE<br />
#<br />
if (!document.body || !document.body.currentStyle) return;<br />
#<br />
minmax_elements= new Array();<br />
#<br />
window.attachEvent(’onresize’, minmax_delayout);<br />
#<br />
// make font size listener<br />
#<br />
em= document.createElement(’div’);<br />
#<br />
em.setAttribute(’id’, ‘minmax_em’);<br />
#<br />
em.style.position= ‘absolute’; em.style.visibility= ‘hidden’;<br />
#<br />
em.style.fontSize= ‘xx-large’; em.style.height= ‘5em’;<br />
#<br />
em.style.top=’-5em’; em.style.left= ‘0′;<br />
#<br />
if (em.style.setExpression) {<br />
#<br />
em.style.setExpression(’width’, ‘minmax_checkFont()’);<br />
#<br />
document.body.insertBefore(em, document.body.firstChild);<br />
#<br />
}<br />
#<br />
}<br />
#<br />
#<br />
// transform hyphenated properties the browser has not caught to camelCase<br />
#<br />
for (i= minmax_props.length; i–&gt;0;)<br />
#<br />
if (cs[minmax_props[i][0]])<br />
#<br />
st[minmax_props[i][1]]= cs[minmax_props[i][0]];<br />
#<br />
// add element with properties to list, store optimal size values<br />
#<br />
for (i= minmax_props.length; i–&gt;0;) {<br />
#<br />
ms= cs[minmax_props[i][1]];<br />
#<br />
if (ms &amp;&amp; ms!=’auto’ &amp;&amp; ms!=’none’ &amp;&amp; ms!=’0′ &amp;&amp; ms!=”) {<br />
#<br />
st.minmaxWidth= cs.width; st.minmaxHeight= cs.height;<br />
#<br />
minmax_elements[minmax_elements.length]= el;<br />
#<br />
// will need a layout later<br />
#<br />
minmax_delayout();<br />
#<br />
break;<br />
#<br />
} }<br />
#<br />
}<br />
#<br />
#<br />
// check for font size changes<br />
#<br />
#<br />
var minmax_fontsize= 0;<br />
#<br />
function minmax_checkFont() {<br />
#<br />
var fs= document.getElementById(’minmax_em’).offsetHeight;<br />
#<br />
if (minmax_fontsize!=fs &amp;&amp; minmax_fontsize!=0)<br />
#<br />
minmax_delayout();<br />
#<br />
minmax_fontsize= fs;<br />
#<br />
return ‘5em’;<br />
#<br />
}<br />
#<br />
#<br />
// Layout. Called after window and font size-change. Go through elements we<br />
#<br />
// picked out earlier and set their size to the minimum, maximum and optimum,<br />
#<br />
// choosing whichever is appropriate<br />
#<br />
#<br />
// Request re-layout at next available moment<br />
#<br />
var minmax_delaying= false;<br />
#<br />
function minmax_delayout() {<br />
#<br />
if (minmax_delaying) return;<br />
#<br />
minmax_delaying= true;<br />
#<br />
window.setTimeout(minmax_layout, 0);<br />
#<br />
}<br />
#<br />
#<br />
function minmax_stopdelaying() {<br />
#<br />
minmax_delaying= false;<br />
#<br />
}<br />
#<br />
#<br />
function minmax_layout() {<br />
#<br />
window.setTimeout(minmax_stopdelaying, 100);<br />
#<br />
var i, el, st, cs, optimal, inrange;<br />
#<br />
for (i= minmax_elements.length; i–&gt;0;) {<br />
#<br />
el= minmax_elements[i]; st= el.style; cs= el.currentStyle;<br />
#<br />
#<br />
// horizontal size bounding<br />
#<br />
st.width= st.minmaxWidth; optimal= el.offsetWidth;<br />
#<br />
inrange= true;<br />
#<br />
if (inrange &amp;&amp; cs.minWidth &amp;&amp; cs.minWidth!=’0′ &amp;&amp; cs.minWidth!=’auto’ &amp;&amp; cs.minWidth!=”) {<br />
#<br />
st.width= cs.minWidth;<br />
#<br />
inrange= (el.offsetWidth<br />
#<br />
}<br />
#<br />
if (inrange &amp;&amp; cs.maxWidth &amp;&amp; cs.maxWidth!=’none’ &amp;&amp; cs.maxWidth!=’auto’ &amp;&amp; cs.maxWidth!=”) {<br />
#<br />
st.width= cs.maxWidth;<br />
#<br />
inrange= (el.offsetWidth&gt;optimal);<br />
#<br />
}<br />
#<br />
if (inrange) st.width= st.minmaxWidth;<br />
#<br />
#<br />
// vertical size bounding<br />
#<br />
st.height= st.minmaxHeight; optimal= el.offsetHeight;<br />
#<br />
inrange= true;<br />
#<br />
if (inrange &amp;&amp; cs.minHeight &amp;&amp; cs.minHeight!=’0′ &amp;&amp; cs.minHeight!=’auto’ &amp;&amp; cs.minHeight!=”) {<br />
#<br />
st.height= cs.minHeight;<br />
#<br />
inrange= (el.offsetHeight<br />
#<br />
}<br />
#<br />
if (inrange &amp;&amp; cs.maxHeight &amp;&amp; cs.maxHeight!=’none’ &amp;&amp; cs.maxHeight!=’auto’ &amp;&amp; cs.maxHeight!=”) {<br />
#<br />
st.height= cs.maxHeight;<br />
#<br />
inrange= (el.offsetHeight&gt;optimal);<br />
#<br />
}<br />
#<br />
if (inrange) st.height= st.minmaxHeight;<br />
#<br />
}<br />
#<br />
}<br />
#<br />
#<br />
// Scanning. Check document every so often until it has finished loading. Do<br />
#<br />
// nothing until arrives, then call main init. Pass any new elements<br />
#<br />
// found on each scan to be bound<br />
#<br />
#<br />
var minmax_SCANDELAY= 500;<br />
#<br />
#<br />
function minmax_scan() {<br />
#<br />
var el;<br />
#<br />
for (var i= 0; i<br />
#<br />
el= document.all[i];<br />
#<br />
if (!el.minmax_bound) {<br />
#<br />
el.minmax_bound= true;<br />
#<br />
minmax_bind(el);<br />
#<br />
} }<br />
#<br />
}<br />
#<br />
#<br />
var minmax_scanner;<br />
#<br />
function minmax_stop() {<br />
#<br />
window.clearInterval(minmax_scanner);<br />
#<br />
minmax_scan();<br />
#<br />
}<br />
#<br />
#<br />
minmax_scan();<br />
#<br />
minmax_scanner= window.setInterval(minmax_scan, minmax_SCANDELAY);<br />
#<br />
window.attachEvent(’onload’, minmax_stop);<br />
#<br />
#<br />
@end @*/</p></blockquote>
<p>由于只有 IE6 及其以下版本不支持min/max-width/height 属性，因此，我们可以用下面的调用方式：</p>
<blockquote><p> </p></blockquote>
<p>第二个是这样的。我来描述一下。一个DIV里左边是标题，比如叫做 title，右边是更多，比如用图片more表示。</p>
<blockquote><p>+div:text-align:left;</p>
<p>-title</p>
<p>-more(img):float:right;</p>
<p>/div</p></blockquote>
<p>一开始我偷懒的方式如下：DIV设置左对齐，然后more浮动向右。 结果，出现了一个问题：more被挤到下面一行了。在群里问了下，得知把titile 和 more 在源码里对调一下位置。也就是先写more再写title。如下：</p>
<blockquote><p>+div:text-align:left;</p>
<p>-more(img):float:right;</p>
<p>-title</p>
<p>/div</p></blockquote>
<p>之所以出现这样的问题，估计是titile文字被浏览器理解为inline效果了。</p>
<p>而后来又有了另外一个方法。给title 套一个 span。</p>
<blockquote><p>+div:text-align:left;</p>
<p>-span title /span</p>
<p>-more(img):float:right;</p>
<p>/div</p></blockquote>
<p>综合说来，第二个解决方法比较好，因为多了一个span就能更好的对 title 进行控制。</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.beautycss.org/blog/articles/70/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6的PNG BUG以及链接失效解决方法</title>
		<link>http://www.beautycss.org/blog/articles/54</link>
		<comments>http://www.beautycss.org/blog/articles/54#comments</comments>
		<pubDate>Sun, 28 Sep 2008 02:06:13 +0000</pubDate>
		<dc:creator>hsiang</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://www.beautycss.org/blog/?p=54</guid>
		<description><![CDATA[先前的一个客户最近在套CMS标签了，需要我的配合。天啊，万恶的IE6开始作祟了。 我这边的电脑上只有IE7，没有IE6，没办法只好装了个绿色的。但是大家都知道，绿色的IE6在内核上依然是你机器上浏览器的内核（在我机器上就是IE7），也就是说绿色版的IE6其实是IE7和IE6的合体。而且在一些机器上绿色IE6经常不老实工作，比如，你打开6,输入一个地址，一回车，它就自动调用其他浏览器打开。 绿色IE6导致了我在制作的过程中，自己看着IE6没问题了，实际上用纯IE6去看的话，还是问题多多。询问了很多人，看有没有能完美解决IE6 IE7 共存的方法。但是好像除了虚拟机意外，没有其他的。 哎 真是万恶的IE6啊 附带一个IE6的PNG透明图的问题，网上找的JS方法和htc方法，我都实验了一下，不知道是方法的问题还是我愚笨，我都没搞出效果来。最后还是用了滤镜法。 教程的地址在这里 滤镜法的不爽之出还是挺多的，今天花了两个多小时来调试滤镜法所带来的链接失效问题。这里顺便总结下： 网上说在a标签里加一个postion：relative 就能解决，这个我实验了一下是可以的。但是，如果恰巧周围还有用定位法布局的地方，那就可能会互相影响，基本上只能用hack补救了。比如我遇到的这个 &#60;div id=”nav(用了相对定位来确定位置的)”&#62; &#60;li&#62;&#60;a href=”#”&#62;要处理的失效链接&#60;/a&#62;&#60;/li&#62; &#60;/div&#62; LOOK，是不是会比较麻烦。 哎，还是有时间研究下JS和HTC的方法吧。万恶的IE6！！！]]></description>
			<content:encoded><![CDATA[<p>先前的一个客户最近在套CMS标签了，需要我的配合。天啊，万恶的IE6开始作祟了。</p>
<p>我这边的电脑上只有IE7，没有IE6，没办法只好装了个绿色的。但是大家都知道，绿色的IE6在内核上依然是你机器上浏览器的内核（在我机器上就是IE7），也就是说绿色版的IE6其实是IE7和IE6的合体。而且在一些机器上绿色IE6经常不老实工作，比如，你打开6,输入一个地址，一回车，它就自动调用其他浏览器打开。</p>
<p>绿色IE6导致了我在制作的过程中，自己看着IE6没问题了，实际上用纯IE6去看的话，还是问题多多。询问了很多人，看有没有能完美解决IE6 IE7 共存的方法。但是好像除了虚拟机意外，没有其他的。 哎 真是万恶的IE6啊</p>
<p>附带一个IE6的PNG透明图的问题，网上找的JS方法和htc方法，我都实验了一下，不知道是方法的问题还是我愚笨，我都没搞出效果来。最后还是用了滤镜法。<a href="http://www.purecss.com.cn/article.asp?id=307&amp;keyword=%E6%BB%A4%E9%95%9C" target="_blank"></a></p>
<p><a href="http://www.purecss.com.cn/article.asp?id=307&amp;keyword=%E6%BB%A4%E9%95%9C" target="_blank">教程的地址在这里</a></p>
<p>滤镜法的不爽之出还是挺多的，今天花了两个多小时来调试滤镜法所带来的链接失效问题。这里顺便总结下：<br />
网上说在a标签里加一个postion：relative 就能解决，这个我实验了一下是可以的。但是，如果恰巧周围还有用定位法布局的地方，那就可能会互相影响，基本上只能用hack补救了。比如我遇到的这个</p>
<p>&lt;div id=”nav(用了相对定位来确定位置的)”&gt;</p>
<p>&lt;li&gt;&lt;a href=”#”&gt;要处理的失效链接&lt;/a&gt;&lt;/li&gt;</p>
<p>&lt;/div&gt;</p>
<p>LOOK，是不是会比较麻烦。</p>
<p>哎，还是有时间研究下JS和HTC的方法吧。万恶的IE6！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beautycss.org/blog/articles/54/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>绿色版IE6出现的一个问题</title>
		<link>http://www.beautycss.org/blog/articles/169</link>
		<comments>http://www.beautycss.org/blog/articles/169#comments</comments>
		<pubDate>Fri, 07 Mar 2008 10:28:40 +0000</pubDate>
		<dc:creator>hsiang</dc:creator>
				<category><![CDATA[技术文章]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[ie6]]></category>

		<guid isPermaLink="false">http://www.beautycss.org/blog/?p=169</guid>
		<description><![CDATA[最近出现了这么一个问题。当我在页面里添加以&#60;a href=“#”&#62;&#60;img src=“&#8230;”/&#62;&#60;/a&#62;的形式添加png图以后，在IE6加载这个页面时，图片是好好的。但是当加载完以后，图片就消失了,但是链接的区域还在，鼠标移上去依然显示链接状态。 在其他非绿色IE6上实验没有此问题。]]></description>
			<content:encoded><![CDATA[<p>最近出现了这么一个问题。当我在页面里添加以&lt;a href=“#”&gt;&lt;img src=“&#8230;”/&gt;&lt;/a&gt;的形式添加png图以后，在IE6加载这个页面时，图片是好好的。但是当加载完以后，图片就消失了,但是链接的区域还在，鼠标移上去依然显示链接状态。</p>
<p>在其他非绿色IE6上实验没有此问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beautycss.org/blog/articles/169/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

