﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-小熊泡泡-文章分类-html-css</title><link>http://www.blogjava.net/kangpangpang/category/12870.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 07 Jun 2007 03:23:07 GMT</lastBuildDate><pubDate>Thu, 07 Jun 2007 03:23:07 GMT</pubDate><ttl>60</ttl><item><title>始终在页面固定位置的层(转)</title><link>http://www.blogjava.net/kangpangpang/articles/96331.html</link><dc:creator>小熊泡泡</dc:creator><author>小熊泡泡</author><pubDate>Sat, 27 Jan 2007 15:31:00 GMT</pubDate><guid>http://www.blogjava.net/kangpangpang/articles/96331.html</guid><wfw:comment>http://www.blogjava.net/kangpangpang/comments/96331.html</wfw:comment><comments>http://www.blogjava.net/kangpangpang/articles/96331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kangpangpang/comments/commentRss/96331.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kangpangpang/services/trackbacks/96331.html</trackback:ping><description><![CDATA[
		<p>&lt;HTML&gt;<br />&lt;HEAD&gt;<br />&lt;TITLE&gt;始终在页面固定位置的层&lt;/TITLE&gt;<br />&lt;META HTTP-EQUIV="Content-Type" CONTENT="text/html" charset="gb2312"&gt;<br />&lt;/HEAD&gt;<br />&lt;style&gt;<br />&lt;!--<br />.div{<br />position: absolute;<br />border: 2px solid red;<br />background-color: #EFEFEF;<br />line-height:90px;<br />font-size:12px;<br />z-index:1000;<br />}<br />--&gt;<br />&lt;/style&gt;<br />&lt;BODY&gt;<br />&lt;div id="Javascript.Div1" class="div" style="width: 240; height:90" align="center"&gt;正中...&lt;/div&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function sc1(){<br />document.getElementById("Javascript.Div1").style.top=document.body.scrollTop+(document.body.clientHeight-document.getElementById("Javascript.Div1").offsetHeight)/2<br />document.getElementById("Javascript.Div1").style.left=document.body.scrollLeft+(document.body.clientWidth-document.getElementById("Javascript.Div1").offsetWidth)/2;<br />}<br />&lt;/SCRIPT&gt;</p>
		<p>
				<br />&lt;div id="Javascript.Div2" class="div" style="width: 240; height:90;" align="center"&gt;左上...&lt;/div&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function sc2(){<br />document.getElementById("Javascript.Div2").style.top=document.body.scrollTop<br />document.getElementById("Javascript.Div2").style.left=document.body.scrollLeft;<br />}<br />&lt;/SCRIPT&gt;</p>
		<p>&lt;div id="Javascript.Div3" class="div" style="width: 240; height:90;" align="center"&gt;左下...&lt;/div&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function sc3(){<br />document.getElementById("Javascript.Div3").style.top=document.body.scrollTop+document.body.clientHeight-document.getElementById("Javascript.Div3").offsetHeight;<br />document.getElementById("Javascript.Div3").style.left=document.body.scrollLeft;<br />}<br />&lt;/SCRIPT&gt;</p>
		<p>&lt;div id="Javascript.Div4" class="div" style="width: 240; height:90;" align="center"&gt;右上...&lt;/div&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function sc4(){<br />document.getElementById("Javascript.Div4").style.top=document.body.scrollTop;<br />document.getElementById("Javascript.Div4").style.left=document.body.scrollLeft+document.body.clientWidth-document.getElementById("Javascript.Div4").offsetWidth;<br />}<br />&lt;/SCRIPT&gt;</p>
		<p>&lt;div id="Javascript.Div5" class="div" style="width: 240; height:90;" align="center"&gt;右下...&lt;/div&gt;<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />function sc5(){</p>
		<p>document.getElementById("Javascript.Div5").style.top=document.body.scrollTop+document.body.clientHeight-document.getElementById("Javascript.Div5").offsetHeight;<br />document.getElementById("Javascript.Div5").style.left=document.body.scrollLeft+document.body.clientWidth-document.getElementById("Javascript.Div5").offsetWidth;;<br />}<br />&lt;/SCRIPT&gt;</p>
		<p>
				<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />&lt;!--<br />function scall(){<br />sc1();sc2();sc3();sc4();sc5();<br />}<br />window.onscroll=scall;<br />window.onresize=scall;<br />window.onload=scall;<br />//--&gt;<br />&lt;/SCRIPT&gt;<br />&lt;div style="position: absolute; top: 0; left: 0; width: 10000; height: 4000;"&gt;&lt;/div&gt;<br />&lt;/BODY&gt;<br />&lt;/HTML&gt;</p>
<img src ="http://www.blogjava.net/kangpangpang/aggbug/96331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kangpangpang/" target="_blank">小熊泡泡</a> 2007-01-27 23:31 <a href="http://www.blogjava.net/kangpangpang/articles/96331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS的十八般技巧（转载）</title><link>http://www.blogjava.net/kangpangpang/articles/57294.html</link><dc:creator>小熊泡泡</dc:creator><author>小熊泡泡</author><pubDate>Sat, 08 Jul 2006 14:41:00 GMT</pubDate><guid>http://www.blogjava.net/kangpangpang/articles/57294.html</guid><wfw:comment>http://www.blogjava.net/kangpangpang/comments/57294.html</wfw:comment><comments>http://www.blogjava.net/kangpangpang/articles/57294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kangpangpang/comments/commentRss/57294.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kangpangpang/services/trackbacks/57294.html</trackback:ping><description><![CDATA[
		<ul>
				<li>原文作者：Roger Johansson 
</li>
				<li>作者简介：住在瑞典哥德堡，1994年开始接触和参与web设计，456 Berea Street是他的住址，因此采用这个名字作为他的个人主页域名 
</li>
				<li>原文出处：<a href="http://www.456bereastreet.com/archive/200503/css_tips_and_tricks_part_1/" target="new"><font color="#60a179">www.456bereastreet.com</font></a></li>
				<li>原文发表时间：2005年3月15日 
</li>
				<li>阿捷说明：此文原名"CSS tips and tricks"，有2篇，我将它们合并翻译在本文中。 </li>
		</ul>
		<p>最近,经常有朋友问我一些工作中遇到的CSS问题。他们总是不能很好的控制CSS，影响CSS的效率发挥。我来分析总结一下错误所在，帮助大家更加容易使用CSS。</p>
		<p>本文总结了我开始使用CSS布局方法以来所有的技巧和兼容方案，我愿意把这些与你分享，我会重点解释一些新手容易犯的错误(包括我自己也犯过的)，如果你已经是CSS高手，这些经验技巧可能已经都知道，如果你有更多的，希望可以帮我补充。</p>
		<h4>一.使用css缩写</h4>
		<p>使用缩写可以帮助减少你CSS文件的大小，更加容易阅读。css缩写的主要规则请参看《<a href="http://www.w3cn.org/article/tips/2005/103.html" target="new"><font color="#60a179">常用css缩写语法总结</font></a>》，这里就不展开描述。</p>
		<h4>二.明确定义单位，除非值为0</h4>
		<p>忘记定义尺寸的单位是CSS新手普遍的错误。在HTML中你可以只写width="100"，但是在CSS中，你必须给一个准确的单位，比如：width:100px width:100em。只有两个例外情况可以不定义单位：行高和0值。除此以外，其他值都必须紧跟单位，注意，不要在数值和单位之间加空格。</p>
		<h4>三.区分大小写</h4>
		<p>当在XHTML中使用CSS，CSS里定义的元素名称是区分大小写的。为了避免这种错误，我建议所有的定义名称都采用小写。</p>
		<p>class和id的值在HTML和XHTML中也是区分大小写的，如果你一定要大小写混合写，请仔细确认你在CSS的定义和XHTML里的标签是一致的。</p>
		<h4>四.取消class和id前的元素限定</h4>
		<p>当你写给一个元素定义class或者id，你可以省略前面的元素限定，因为ID在一个页面里是唯一的，而clas s可以在页面中多次使用。你限定某个元素毫无意义。例如：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">div#content { /* declarations */ } <br />fieldset.details { /* declarations */ } </font>
				</strong>
		</span>
		<p>可以写成</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">#content { /* declarations */ } <br />.details { /* declarations */ } </font>
				</strong>
		</span>
		<p>这样可以节省一些字节。</p>
		<h4>五.默认值</h4>
		<p>通常padding的默认值为0，background-color的默认值是transparent。但是在不同的浏览器默认值可能不同。如果怕有冲突，可以在样式表一开始就先定义所有元素的margin和padding值都为0，象这样：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">* { <br />margin:0; <br />padding:0; <br />} </font>
				</strong>
		</span>
		<h4>六.不需要重复定义可继承的值</h4>
		<p>CSS中，子元素自动继承父元素的属性值，象颜色、字体等，已经在父元素中定义过的，在子元素中可以直接继承，不需要重复定义。但是要注意，浏览器可能用一些默认值覆盖你的定义。</p>
		<h4>七.最近优先原则</h4>
		<p>如果对同一个元素的定义有多种，以最接近(最小一级)的定义为最优先，例如有这么一段代码</p>
		<span class="code">
				<p class="update">Update: Lorem ipsum dolor set</p>
		</span>
		<p>在CSS文件中，你已经定义了元素p，又定义了一个class"update"</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">p { <br />margin:1em 0; <br />font-size:1em; <br />color:#333; <br />} <br />.update { <br />font-weight:bold; <br />color:#600; <br />} <br /></font>
				</strong>
		</span>
		<p>这两个定义中，class="update"将被使用，因为class比p更近。你可以查阅W3C的《 Calculating a selector’s specificity》 了解更多。</p>
		<h4>八.多重class定义</h4>
		<p>一个标签可以同时定义多个class。例如：我们先定义两个样式，第一个样式背景为#666；第二个样式有10 px的边框。</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">.one{width:200px;background:#666;}<br />.two{border:10px solid #F00;} </font>
				</strong>
		</span>
		<p>在页面代码中，我们可以这样调用</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">&lt;div class="one two"&gt;&lt;/div&gt;</font>
				</strong>
		</span>
		<p>这样最终的显示效果是这个div既有#666的背景，也有10px的边框。是的，这样做是可以的，你可以尝试一下。</p>
		<h4>九.使用子选择器(descendant selectors)</h4>
		<p>CSS初学者不知道使用子选择器是影响他们效率的原因之一。子选择器可以帮助你节约大量的class定义。我们来看下面这段代码：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">&lt;div id="subnav"&gt; <br />&lt;ul&gt; <br />&lt;li class="subnavitem"&gt; &lt;a href="#" class="subnavitem"&gt;Item 1&lt;/a&gt;&lt;/li&gt;&gt; <br />&lt;li class="subnavitemselected"&gt; &lt;a href="#" class="subnavitemselected"&gt; Item 1&lt;/a&gt; &lt;/li&gt; <br />&lt;li class="subnavitem"&gt; &lt;a href="#" class="subnavitem"&gt; Item 1&lt;/a&gt; &lt;/li&gt;<br />&lt;/ul&gt; <br />&lt;/div&gt; </font>
				</strong>
		</span>
		<p>这段代码的CSS定义是：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">div#subnav ul { /* Some styling */ } <br />div#subnav ul li.subnavitem { /* Some styling */ } <br />div#subnav ul li.subnavitem a.subnavitem { /* Some styling */ } <br />div#subnav ul li.subnavitemselected { /* Some styling */ } <br />div#subnav ul li.subnavitemselected a.subnavitemselected { /* Some styling */ } </font>
				</strong>
		</span>
		<p>你可以用下面的方法替代上面的代码</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">&lt;ul id="subnav"&gt; <br />&lt;li&gt; &lt;a href="#"&gt; Item 1&lt;/a&gt; &lt;/li&gt; <br />&lt;li class="sel"&gt; &lt;a href="#"&gt; Item 1&lt;/a&gt; &lt;/li&gt; <br />&lt;li&gt; &lt;a href="#"&gt; Item 1&lt;/a&gt; &lt;/li&gt; <br />&lt;/ul&gt; </font>
				</strong>
		</span>
		<p>样式定义是：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">#subnav { /* Some styling */ } <br />#subnav li { /* Some styling */ } <br />#subnav a { /* Some styling */ } <br />#subnav .sel { /* Some styling */ } <br />#subnav .sel a { /* Some styling */ } </font>
				</strong>
		</span>
		<p>用子选择器可以使你的代码和CSS更加简洁、更加容易阅读。</p>
		<h4>十.不需要给背景图片路径加引号</h4>
		<p>为了节省字节，我建议不要给背景图片路径加引号，因为引号不是必须的。例如：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">background:url("images/***.gif") #333;</font>
				</strong>
		</span>
		<p>可以写为</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">background:url(images/***.gif) #333;</font>
				</strong>
		</span>
		<p>如果你加了引号，反而会引起一些浏览器的错误。</p>
		<h4>十一.组选择器(Group selectors)</h4>
		<p>当一些元素类型、class或者id都有共同的一些属性，你就可以使用组选择器来避免多次的重复定义。这可以节省不少字节。 
</p>
		<p>
		</p>
		<p>例如：定义所有标题的字体、颜色和margin，你可以这样写：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">h1,h2,h3,h4,h5,h6 { <br />font-family:"Lucida Grande",Lucida,Arial,Helvetica,sans-serif; <br />color:#333; <br />margin:1em 0; <br />} </font>
				</strong>
		</span>
		<p>如果在使用时，有个别元素需要定义独立样式，你可以再加上新的定义，可以覆盖老的定义，例如：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">h1 { font-size:2em; } <br />h2 { font-size:1.6em; } </font>
				</strong>
		</span>
		<h4>十二.用正确的顺序指定链接的样式</h4>
		<p>当你用CSS来定义链接的多个状态样式时，要注意它们书写的顺序，正确的顺序是：:link :visited :hover :active。抽取第一个字母是"LVHA"，你可以记忆成"LoVe HAte"(喜欢讨厌)。为什么这么定义，可以参考Eric Meyer的《<a href="http://www.meyerweb.com/eric/css/link-specificity.html" target="new"><font color="#60a179">Link Specificity</font></a>》。</p>
		<p>如果你的用户需要用键盘来控制，需要知道当前链接的焦点，你还可以定义:focus属性。:focus属性的效果也取决与你书写的位置，如果你希望聚焦元素显示:hover效果，你就把:focus写在:hover前面；如果你希望聚焦效果替代:hover效果，你就把:focus放在:hover后面。</p>
		<h4>十三.清除浮动</h4>
		<p>一个非常常见的CSS问题，定位使用浮动的时候，下面的层被浮动的层所覆盖，或者层里嵌套的子层超出了外层的范围。</p>
		<p>通常的解决办法是在浮动层后面添加一个额外元素，例如一个div或者一个br，并且定义它的样式为clear: both。这个办法有一点牵强，幸运的是还有一个好办法可以解决，参看这篇文章《<a href="http://www.positioniseverything.net/easyclearing.html" target="new"><font color="#60a179">How To Clear Floats Without Structural Markup</font></a>》(注：本站将尽快翻译此文)。</p>
		<p>上面2种方法可以很好解决浮动超出的问题，但是如果当你真的需要对层或者层里的对象进行clear的时候怎么办？一种简单的方法就是用overflow属性，这个方法最初的发表在《<a href="http://www.sitepoint.com/blog-post-view?id=238086" target="new"><font color="#60a179">Simple Clearing of Floats</font></a>》，又在《<a href="http://www.mezzoblue.com/archives/2005/03/03/clearance/" target="new"><font color="#60a179">Clearance</font></a>》和《<a href="http://annevankesteren.nl/archives/2005/03/clearing-floats" target="new"><font color="#60a179">Super simple clearing floats</font></a>》中被广泛讨论。</p>
		<p>上面那一种clear方法更适合你，要看具体的情况，这里不再展开论述。另外关于float的应用，一些优秀的文章已经说得很清楚，推荐你阅读：《<a href="http://css.maxdesign.com.au/floatutorial/" target="new"><font color="#60a179">Floatutorial</font></a>》、《<a href="http://www.complexspiral.com/publications/containing-floats/" target="new"><font color="#60a179">Containing Floats</font></a>》和《<a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating" target="new"><font color="#60a179">Float Layouts</font></a>》</p>
		<h4>十四.横向居中(centering)</h4>
		<p>这是一个简单的技巧，但是值得再说一遍，因为我看见太多的新手问题都是问这个：CSS如何横向居中？你需要定义元素的宽，并且定义横向的margin，如果你的布局包含在一个层(容器)中，就象这样：</p>
		<div id="wrap">
				<!-- 你的布局这里开始 -->
		</div>
		<p>你可以这样定义使它横向居中：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">#wrap { <br />width:760px; /* 修改为你的层的宽度 */ <br />margin:0 auto; <br />} </font>
				</strong>
		</span>
		<p>但是IE5/Win不能正确显示这个定义，我们采用一个非常有用的技巧来解决：用text-align属性。就象这样：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">body { <br />text-align:center; <br />} <br />#wrap { <br />width:760px; /* 修改为你的层的宽度 */ <br />margin:0 auto; <br />text-align:left; <br />} </font>
				</strong>
		</span>
		<p>第一个body的text-align:center; 规则定义IE5/Win中body的所有元素居中(其他浏览器只是将文字居中) ，第二个text-align:left;是将#warp中的文字居左。</p>
		<h4>十五.导入(Import)和隐藏CSS</h4>
		<p>因为老版本浏览器不支持CSS，一个通常的做法是使用@import技巧来把CSS隐藏起来。例如：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">@import url("main.css"); </font>
				</strong>
		</span>
		<p>然而，这个方法对IE4不起作用，这让我很是头疼了一阵子。后来我用这样的写法：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">@import "main.css"; </font>
				</strong>
		</span>
		<p>这样就可以在IE4中也隐藏CSS了，呵呵，还节省了5个字节呢。想了解@import语法的详细说明，可以看这里《<a href="http://centricle.com/ref/css/filters/" target="new"><font color="#60a179">centricle’s css filter chart</font></a>》</p>
		<h4>十六.针对IE的优化</h4>
		<p>有些时候，你需要对IE浏览器的bug定义一些特别的规则，这里有太多的CSS技巧(hacks)，我只使用其中的两种方法，不管微软在即将发布的IE7 beta版里是否更好的支持CSS，这两种方法都是最安全的。</p>
		<ul>
				<li>1.注释的方法 
<ul><li>(a)在IE中隐藏一个CSS定义，你可以使用子选择器(child selector):<br /><span class="code"><strong><font face="Verdana" color="#60a179">html&gt;body p { <br />/* 定义内容 */ <br />} </font></strong></span></li><li>(b)下面这个写法只有IE浏览器可以理解(对其他浏览器都隐藏) <br /><span class="code"><strong><font face="Verdana" color="#60a179">* html p { <br />/* declarations */ <br />} </font></strong></span></li><li>(c)还有些时候，你希望IE/Win有效而IE/Mac隐藏，你可以使用"反斜线"技巧：<br /><span class="code"><strong><font face="Verdana" color="#60a179">/* \*/ <br />* html p { <br />declarations <br />} <br />/* */ </font></strong></span></li></ul></li>
				<li>2.条件注释(conditional comments)的方法 
<p>另外一种方法，我认为比CSS　Hacks更加经得起考验就是采用微软的私有属性条件注释(conditional comments)。用这个方法你可以给IE单独定义一些样式，而不影响主样式表的定义。就象这样：</p><span class="code"><strong><font face="Verdana" color="#60a179">&lt;!--[if IE]&gt; <br />&lt;link rel="stylesheet" type="text/css" href="ie.css" /&gt; <br />&lt;![endif]--&gt; </font></strong></span></li>
		</ul>
		<h4>十七.调试技巧：层有多大？</h4>
		<p>当调试CSS发生错误，你就要象排版工人，逐行分析CSS代码。我通常在出问题的层上定义一个背景颜色，这样就能很明显看到层占据多大空间。有些人建议用border，一般情况也是可以的，但问题是，有时候border 会增加元素的尺寸，border-top和boeder-bottom会破坏纵向margin的值，所以使用background更加安全些。 </p>
		<p>另外一个经常出问题的属性是outline。outline看起来象boeder，但不会影响元素的尺寸或者位置。只有少数浏览器支持outline属性，我所知道的只有Safari、OmniWeb、和Opera。</p>
		<h4>十八.CSS代码书写样式</h4>
		<p>在写CSS代码的时候，对于缩进、断行、空格，每个人有每个人的书写习惯。在经过不断实践后，我决定采用下面这样的书写样式：</p>
		<span class="code">
				<strong>
						<font face="Verdana" color="#60a179">selector1, <br />selector2 { <br />property:value; <br />} </font>
				</strong>
		</span>
		<p>当使用联合定义时，我通常将每个选择器单独写一行，这样方便在CSS文件中找到它们。在最后一个选择器和大括号{之间加一个空格，每个定义也单独写一行，分号直接在属性值后，不要加空格。</p>
		<p>我习惯在每个属性值后面都加分号，虽然规则上允许最后一个属性值后面可以不写分号，但是如果你要加新样式时容易忘记补上分号而产生错误，所以还是都加比较好。</p>
		<p>最后，关闭的大括号}单独写一行。</p>
		<p>空格和换行有助与阅读。</p>
<img src ="http://www.blogjava.net/kangpangpang/aggbug/57294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kangpangpang/" target="_blank">小熊泡泡</a> 2006-07-08 22:41 <a href="http://www.blogjava.net/kangpangpang/articles/57294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>text-overflow 全兼容 （转载）</title><link>http://www.blogjava.net/kangpangpang/articles/57292.html</link><dc:creator>小熊泡泡</dc:creator><author>小熊泡泡</author><pubDate>Sat, 08 Jul 2006 14:39:00 GMT</pubDate><guid>http://www.blogjava.net/kangpangpang/articles/57292.html</guid><wfw:comment>http://www.blogjava.net/kangpangpang/comments/57292.html</wfw:comment><comments>http://www.blogjava.net/kangpangpang/articles/57292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kangpangpang/comments/commentRss/57292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kangpangpang/services/trackbacks/57292.html</trackback:ping><description><![CDATA[
		<strong>text-overflow</strong> 这个CSS属性用于设置或检索是否使用一个省略标记(...)标示对象内文本的溢出。比起在后台用程序截断文本再附上省略标记的做法，用CSS来处理文本溢出显然更温和(unobtrusive)一些。所以它已经被定义在 <span class="nobr"><img alt="&gt;&gt;" src="http://ajaxcn.org/theme/images/Icon-Extlink.png" border="0" /><a href="http://www.w3.org/TR/css3-text/" target="_blank"><strong><font color="#003366">CSS 3</font></strong></a></span> 规范中，但目前为止，还只有 IE6+ 提供了对其的支持(<span class="nobr"><img alt="&gt;&gt;" src="http://ajaxcn.org/theme/images/Icon-Extlink.png" border="0" /><a href="http://archivist.incutio.com/viewlist/css-discuss/68339" target="_blank"><strong><font color="#003366">据说</font></strong></a></span> Safari 1.3+ 已经支持)。 
<p class="paragraph">幸好，Opera 和 Firefox 都有相应的hack方法。 
</p><p class="paragraph">Opera 提供了一个 <b class="bold">-o-text-overflow:ellipsis</b> 来模拟CSS3中的 text-overflow:ellipsis，郭爽的Blog里有一个<span class="nobr"><img alt="&gt;&gt;" src="http://ajaxcn.org/theme/images/Icon-Extlink.png" border="0" /><a href="http://blog.guoshuang.com/showlog.asp?cat_id=31&amp;log_id=3601" target="_blank"><strong><font color="#003366">demo</font></strong></a></span>。 
</p><p class="paragraph">而Firefox，有人贡献了一个Firefox独有的XBL技术实现 -- <span class="nobr"><img alt="&gt;&gt;" src="http://ajaxcn.org/theme/images/Icon-Extlink.png" border="0" /><a href="http://blog.360.yahoo.com/blog-ktYYK_s5fqJ2Hu1ryv2QSL0-?p=120" target="_blank"><strong><font color="#003366">Simulating text-overflow on Firefox with unobtrusive Javascript</font></strong></a></span>， 博客的作者劝大家不要再花精力去寻找其他针对Firefox的解决办法了，因为他已经花费了大量的时间都无法找到一个满意的方案。从<span class="nobr"><img alt="&gt;&gt;" src="http://ajaxcn.org/theme/images/Icon-Extlink.png" border="0" /><a href="http://www.hedgerwow.com/360/dhtml/text-overflow.php" target="_blank"><strong><font color="#003366">demo</font></strong></a></span> 源码中可以看到如下的CSS属性定义 </p><div class="code"><pre>text-overflow:ellipsis;
-moz-binding:url(<span class="java-quote"><font color="#00aa00">"moz-text-overflow.xml#XBLDocument"</font></span>);</pre></div><p class="paragraph">从代码中看出，这个解决方案还需要一个 xml 格式的XBL组件定义文件以及配套的一个 js 文件，其实我想也可以通过直接编写js 来实现相同的效果，不过不如标题中所说的那么 unobtrusive 而已。 
</p><p class="paragraph">最后，一个兼容主流浏览器的 text-overflow CSS 定义可能如下： </p><div class="code"><pre>.textOverflow {
    overflow: hidden;
    text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
    -moz-binding: url(<span class="java-quote"><font color="#00aa00">"moz-text-overflow.xml#XBLDocument"</font></span>);/*配套对应的xml和js文件*/
}</pre></div><img src ="http://www.blogjava.net/kangpangpang/aggbug/57292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kangpangpang/" target="_blank">小熊泡泡</a> 2006-07-08 22:39 <a href="http://www.blogjava.net/kangpangpang/articles/57292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何用CSS使图片自适应显示宽度 (转载)</title><link>http://www.blogjava.net/kangpangpang/articles/57290.html</link><dc:creator>小熊泡泡</dc:creator><author>小熊泡泡</author><pubDate>Sat, 08 Jul 2006 13:39:00 GMT</pubDate><guid>http://www.blogjava.net/kangpangpang/articles/57290.html</guid><wfw:comment>http://www.blogjava.net/kangpangpang/comments/57290.html</wfw:comment><comments>http://www.blogjava.net/kangpangpang/articles/57290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kangpangpang/comments/commentRss/57290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kangpangpang/services/trackbacks/57290.html</trackback:ping><description><![CDATA[
		<h3 class="heading-1">
				<a title="链接到如何用CSS使图片自适应显示宽度" href="http://ajaxcn.org/space/start/2006-07-05/1#如何用CSS使图片自适应显示宽度">
				</a> </h3>
		<p>公司的项目中需要显示由用户提供URI链接的图片，可是预先无法获知图片的尺寸大小，如果图片尺寸过大将会影响页面布局。最理想的解决方案自然是自动生成缩略图，涉及的后台工作较为复杂，用CSS进行控制是一个可以接受的捷径。 </p>
		<p class="paragraph">如果用 <b class="bold">width</b> 属性强行设定显示尺寸似乎太不智能。幸好 Firefox/Opera/IE 7 都提供了 <b class="bold">max-width</b> 属性支持。假定希望图片显示宽度不超过500像素，CSS可能如下： 
</p>
		<p class="paragraph">
		</p>
		<div class="code">
				<pre>fit-image {
    border    : 0;
    max-width : 500px;
}</pre>
		</div>
		<p class="paragraph">让我痛恨的 IE6 不支持 <b class="bold">max-width</b> 属性，但是利用 IE 独有的 <span class="nobr"><img alt="&gt;&gt;" src="http://ajaxcn.org/theme/images/Icon-Extlink.png" border="0" /><a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/recalc.asp" target="_blank">expression</a></span> 属性可以迂回的解决这个问题。 
</p>
		<p class="paragraph">
		</p>
		<div class="code">
				<pre>fit-image {
    border    : 0;
    max-width : 500px;
    width:      expression (
      function(img){
        img.onload=function(){
          <span class="java-keyword">this</span>.style.width = '';
          <span class="java-keyword">this</span>.style.width = (<span class="java-keyword">this</span>.width &gt; 500)?<span class="java-quote">"500px"</span>:<span class="java-keyword">this</span>.width+<span class="java-quote">"px"</span>
        }; 
        <span class="java-keyword">return</span> '120px'  //加载时显示宽度为120px
      }(<span class="java-keyword">this</span>)
    );
}</pre>
		</div>
		<p class="paragraph">利用&lt;img&gt; 的 onload 事件使图片加载完成后计算其尺寸大小，如果超过500像素就显示为500像素，否则显示其默认宽度。 
</p>
		<p class="paragraph">
				<b class="bold">expression</b> 不是符合WEB标准的做法，不到万不得以不建议使用。但是不能不承认IE的很多扩展是不错的，IE不应该被轻视！ <a title="链接到start/2006-07-05/1" href="http://ajaxcn.org/space/start/2006-07-05/1"><img alt="PermaLink" src="http://ajaxcn.org/theme/images/Icon-Permalink.png" border="0" /></a></p>
<img src ="http://www.blogjava.net/kangpangpang/aggbug/57290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kangpangpang/" target="_blank">小熊泡泡</a> 2006-07-08 21:39 <a href="http://www.blogjava.net/kangpangpang/articles/57290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何取到css里selected的属性值</title><link>http://www.blogjava.net/kangpangpang/articles/57139.html</link><dc:creator>小熊泡泡</dc:creator><author>小熊泡泡</author><pubDate>Fri, 07 Jul 2006 07:18:00 GMT</pubDate><guid>http://www.blogjava.net/kangpangpang/articles/57139.html</guid><wfw:comment>http://www.blogjava.net/kangpangpang/comments/57139.html</wfw:comment><comments>http://www.blogjava.net/kangpangpang/articles/57139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kangpangpang/comments/commentRss/57139.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kangpangpang/services/trackbacks/57139.html</trackback:ping><description><![CDATA[
		<p>&lt;style type="text/css"&gt;<br /> #test {<br />  height: 200px;<br />  width: 200px;<br />  background-color:red;<br /> }<br />&lt;/style&gt;</p>
		<p>&lt;script&gt;<br /> window.onload = function(){<br />  var div = document.getElementById("test");<br />  var s = div.currentStyle || window.getComputedStyle(div,'') || document.defaultView.getComputedStyle(div, '');<br />  var p = s.width || s.getPropertyValue("width");<br />  alert(p);<br />&lt;/script&gt;</p>
<img src ="http://www.blogjava.net/kangpangpang/aggbug/57139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kangpangpang/" target="_blank">小熊泡泡</a> 2006-07-07 15:18 <a href="http://www.blogjava.net/kangpangpang/articles/57139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>