<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>kj23</title>
    <description></description>
    <link>http://kj23.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>CSS中Float概念相关文章采撷</title>
        <author>kj23</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kj23.javaeye.com">kj23</a>&nbsp;
          链接：<a href="http://kj23.javaeye.com/blog/77221" style="color:red;">http://kj23.javaeye.com/blog/77221</a>&nbsp;
          发表时间: 2007年05月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US"><a href="http://www.smashingmagazine.com/2007/05/01/css-float-theory-things-you-should-know/">原始出处</a></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">Float</span>（浮动）概念也许是<span lang="EN-US">CSS</span>中最让人迷惑的一个概念吧。<span lang="EN-US">Float</span>经常被错误理解，而且因为将上下文元素全部浮动导致的可读性、可用性问题备受责难。然而，这些问题的根源并不在于理论本身，而是开发人员以及浏览器对理论的解读造成的。<span lang="EN-US"> </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt">如果你认真的去读一下浮动概念，你会发现并不像所见的那样复杂。大多数问题都是由于老版本的<span lang="EN-US">IE</span>带来的（我只是猜想）。如果你知道这些<span lang="EN-US">bug</span>，你就能避免这些问题。<span lang="EN-US"> </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt">让我们尝试去解决这些问题并澄清一些以前使用浮动的误解。我们参考了成打的相关文章，并选取了最为重要的一些你必须了解的问题。<span lang="EN-US"> </span></p>
<h1 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm; tab-stops: 0cm"><span lang="EN-US">What You Should Know About Floats&nbsp; </span></h1>
<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt double; mso-border-bottom-alt: double gray .3pt; mso-element: para-border-div">
<p class="HorizontalLine"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&nbsp;</span><span lang="EN-US" style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>关于图文围绕的实践可以追溯到很久很久以前。这也就是为什么从<span lang="EN-US">Netscape1.1</span>开始这个功能被引入浏览器，以及为什么<span lang="EN-US">CSS</span>使用浮动属性来实现它。<span style="mso-ansi-language: #00FF">&lsquo;Float(浮动)&rsquo;这个术语引用自伴随Netscape1.1一同发布的&lsquo;Additions to HTML <st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="2" negative="False" numbertype="1" unitname="’" w:st="on">2.0&rsquo;</st1:chmetcnv>文档，描述一个元素浮动至某一侧并停下的表现方式。&rdquo;[</span><span lang="EN-US"><a href="http://www.complexspiral.com/publications/containing-floats/"><span style="mso-ansi-language: #00FF">Containing Floats</span></a></span><span style="mso-ansi-language: #00FF">]&nbsp;</span><span lang="EN-US" style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>浮动元素的定位还是基于正常的文档流，然后从文档流中抽出并尽可能远的移动至左侧或者右侧。文字内容会围绕在浮动元素周围。当一个元素从正常文档流中抽出后，仍然在文档流中的其他元素将忽略该元素并填补他原先的空间。<span lang="EN-US">&rdquo; [<a href="http://css.maxdesign.com.au/floatutorial/definitions.htm">Float Positioning</a>] </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;</span>&ldquo;</span>元素浮动后将自动转为块级元素。该元素可以被移动至当前行的左侧或右侧。<span style="mso-ansi-language: #00FF">属性如下：float: left, float: right or float: none&rdquo;[</span><span lang="EN-US"><a href="http://css.maxdesign.com.au/floatutorial/introduction.htm"><span style="mso-ansi-language: #00FF">Floatutorial: Float Basics</span></a></span><span style="mso-ansi-language: #00FF">] <o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;</span>&ldquo;</span>你应该为所有的浮动元素设定宽度属性（除非是＜img＞元素，因其具有隐含的宽度）。如果不设定宽度，结果将是不可预知的。<span lang="EN-US">&rdquo;[<a href="http://css.maxdesign.com.au/floatutorial/introduction.htm">Floatutorial: Float Basics</a>] </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;</span>&ldquo;</span>举例来说，浮动元素应该定义宽度属性，不论是显式指定的还是隐含的。另外，它会尽可能的水平的填充容器元素，就像非浮动内容那样，不给其他内容空间以围绕它们。其次，和正常文档流中的元素不同，浮动元素的垂直边距<span lang="EN-US">(margin)</span>不会叠加。最后，浮动元素可以和临近在正常文档流中块级元素重叠（译注：浮动元素不占任何正常文档流空间，所以建议不要理解成重叠，而是腾空浮动的概念。）。<span lang="EN-US">&rdquo;[<a href="http://www.brainjar.com/css/positioning/default3.asp">CSS Positioning: Floats</a>]<span style="mso-spacerun: yes">&nbsp; </span></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>首先我们要牢记的一件事情是，浮动元素只能浮动至左侧或者右侧，没有浮动至中间一说，这是很多新手容易范的错误。记住，最基本的规则，浮动元素只能浮动至两侧。<span lang="EN-US">&rdquo; [<a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating">Float Layouts</a>] </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;</span>&ldquo;</span>当我们让一个元素浮动，它会往右或者往左浮动直至遇到容器的边缘。如果我们向同一方向再浮动一个元素，它会浮动直至碰到前一个浮动元素的边缘。如果我们浮动更多的元素，他们将一个挨一个排列，但不久就会空间不足，当该行已经无法容纳更多的浮动元素，则下一个浮动元素会换行继续排列。<span lang="EN-US">&rdquo; [<a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating">Float Layouts</a>] </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">Containing blocks or containing boxes</span>：<span lang="EN-US">&ldquo;</span>容器元素是指包含其他子元素的行级或块级元素。。。。<span lang="EN-US">&rdquo;</span><span lang="EN-US" style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN"> </span><span lang="EN-US">[<a href="http://css.maxdesign.com.au/floatutorial/definitions.htm">Floatutorial</a>] </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&nbsp;&ldquo;</span>当明确指定时，浮动元素垂直位置由它原先在文档流中的位置决定，顶端与当前行顶端对其。但是水平方向上，它尽可能远的向容器元素边缘移动，但是仍遵循容器元素的填充距离<span lang="EN-US">(padding)</span>。<span style="mso-ansi-language: #00FF">同行的行内元素则围绕浮动元素排列。&rdquo;</span><span style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: #00FF"> </span><span style="mso-ansi-language: #00FF">[</span><span lang="EN-US"><a href="http://www.brainjar.com/css/positioning/default2.asp"><span style="mso-ansi-language: #00FF">CSS Positioning: Floats</span></a></span><span style="mso-ansi-language: #00FF">] </span><span style="mso-spacerun: yes">&nbsp;</span><span style="mso-ansi-language: #00FF"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>由于浮动元素不占据正常文档流空间，所以浮动元素前后那些未明确指定位置的块级元素会占据浮动元素本来应该处在的位置，就好像它从来不曾存在过。而浮动元素之后的那行会根据浮动元素缩小宽度。浮动元素之前的元素则会重新被排列，占据独立的一行。<span style="mso-ansi-language: #00FF">（译注：ie 和 ff 在这种情况下的表现不尽相同）&rdquo;</span><span style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: #00FF"> </span><span style="mso-ansi-language: #00FF">[</span><span lang="EN-US"><a href="http://www.w3.org/TR/CSS2/visuren.html#floats"><span style="mso-ansi-language: #00FF">W3C Visual Formatting Model</span></a></span><span style="mso-ansi-language: #00FF">] </span><span style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: #00FF"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>如果当前行的水平方向上没有足够的空间容纳浮动元素，则向下一行，直至有能容纳该元素的行。<span lang="EN-US">&rdquo; [<a href="http://css.maxdesign.com.au/floatutorial/introduction.htm">Floatutorial: Float Basics</a>] </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;</span>&ldquo;</span>任何浮动元素都不可能超过原来所处文档留位置的上边界。浮动元素的顶端必定和当前行顶端对齐（或者在没有当前行元素时和前一个块级元素底部边缘对齐）。<span lang="EN-US">&rdquo;[<a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating">Float Layouts</a>] </span><span lang="EN-US" style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>想要真正理解浮动理论，你必须明白在<span lang="EN-US">CSS</span>中什么是行<span style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN"> </span><span lang="EN-US">(line box)</span>。不幸的是，为了解释什么是行，你必须先明白什么是行级元素。行级元素指的是那些非块级元素，例如＜em＞而行是一个逻辑上的概念，是一个虚拟的矩形，包含了组成该行的所有行级元素，其高度至少等于这些行级元素中最高的那个。<span style="mso-ansi-language: #00FF">&rdquo;&nbsp;[</span><span lang="EN-US"><a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating"><span style="mso-ansi-language: #00FF">Float Layouts</span></a></span><span style="mso-ansi-language: #00FF">]<span style="mso-spacerun: yes">&nbsp; </span><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span style="mso-ansi-language: #00FF">&ldquo;如果我们将Div中所有的列都加上 float: left 它们会挨个向左排列，如果我们希望在页面底部有一个页脚，并不需要一个最长的列，只要加上 clear: both 就可以了&rdquo;[</span><span lang="EN-US"><a href="http://www.autisticcuckoo.net/archive.php?id=2004/12/10/floating"><span style="mso-ansi-language: #00FF">Float Layouts</span></a></span><span style="mso-ansi-language: #00FF">] </span><span style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: #00FF"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>使用浮动元素包含浮动元素这样的布局方式有一个潜在的缺点，即你的页面是否能够一直保持一致的展现效果将取决于浏览器的实现是否保持一致。特别是当浮动元素是一个更为复杂的布局中的一部分的话，将变得更加不堪一击。<span lang="EN-US">&rdquo;[<a href="http://www.complexspiral.com/publications/containing-floats/">Containing Floats</a>] </span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&nbsp;</span></p>
<h1 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm; tab-stops: 0cm"><span lang="EN-US">Clearing the floats </span></h1>
<p class="MsoBodyText"><span lang="EN-US">&nbsp; </span></p>
<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: gray 1pt double; mso-border-bottom-alt: double gray .3pt; mso-element: para-border-div">
<p class="HorizontalLine"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&nbsp; </span><span lang="EN-US" style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>浮动元素之后的元素会自动围绕该浮动元素。如果你不希望这样，你可以为这些元素应用<span lang="EN-US">&lsquo;clear&rsquo;</span>属性。<span style="mso-ansi-language: #00FF">该属性有4种设值：</span><span style="BACKGROUND: #eeeeee; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Verdana; mso-ansi-language: #00FF">clear: left</span><span style="mso-ansi-language: #00FF">, </span><span class="SourceText"><span style="BACKGROUND: #eeeeee; mso-ansi-language: #00FF">clear: right</span></span><span style="mso-ansi-language: #00FF">, </span><span class="SourceText"><span style="BACKGROUND: #eeeeee; mso-ansi-language: #00FF">clear: both</span></span><span style="mso-ansi-language: #00FF"> or </span><span class="SourceText"><span style="BACKGROUND: #eeeeee; mso-ansi-language: #00FF">clear: none</span></span><span style="mso-ansi-language: #00FF">&rdquo;[</span><span lang="EN-US"><a href="http://css.maxdesign.com.au/floatutorial/clear.htm"><span style="mso-ansi-language: #00FF">Floats and &ldquo;clear&rdquo;</span></a></span><span style="mso-ansi-language: #00FF">] </span><span style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: #00FF"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt">有很多技巧可以做到清理浮动元素，但不引入额外的无语义标签。下面<span lang="EN-US">3</span>种是比较常见的做法：<span lang="EN-US"> a) </span>将容器元素一起浮动<span lang="EN-US">&nbsp; b) </span>在容器元素上使用<span lang="EN-US"> overflow: hidden&nbsp; c) </span>使用<span lang="EN-US">:after</span>这样的<span lang="EN-US">css</span>伪类。<span lang="EN-US"> [<a href="http://www.robertnyman.com/2007/04/12/how-to-clear-css-floats-without-extra-markup-different-techniques-explained/">How to clear CSS floats without extra markup</a>]<span style="mso-spacerun: yes">&nbsp; </span></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>插入一个清理元素是使容器正确包裹所有浮动元素的标准做法，这样做具有将容器底部边缘<span lang="EN-US">&lsquo;</span>拖拉<span lang="EN-US">&rsquo;</span>以包裹所含元素的效果。<span lang="EN-US">&rdquo;&nbsp;[<a href="http://www.positioniseverything.net/easyclearing.html">How To Clear Floats Without Structural Markup</a>] </span><span lang="EN-US" style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN"><o:p></o:p></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&ldquo;</span>对于基于浮动设计的布局来说，一个常见的问题就是浮动元素的容器不会自动伸展来包含浮动元素。如果你希望在所有的浮动元素的外面加上边框（例如，在容器元素上加上边框），这样你必须显示的命令浏览器来伸展容器。你可以是用<span lang="EN-US"><a href="http://www.quirksmode.org/blog/archives/2005/03/clearing_floats.html">overflow method</a></span>方法。<span lang="EN-US">&rdquo;&nbsp;</span><span lang="EN-US">&nbsp; </span></p>
<p class="MsoBodyText">使用<span lang="EN-US">:after&nbsp; </span>想像一下我们使用<span lang="EN-US">:after</span>来插入一个点号，并且设置它的属性<span lang="EN-US">{clear: both;}</span>。这就是所有你需要做的事情，但是没有人会接受容器底部有那么一丝空隙，所以我们还要设置<span lang="EN-US" style="BACKGROUND: #eeeeee; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Verdana">{height: 0;}</span><span lang="EN-US">&nbsp;</span>和 <span class="SourceText"><span lang="EN-US" style="BACKGROUND: #eeeeee">{visibility: hidden;}</span></span><span lang="EN-US"> </span>来保证严丝合缝。 <span class="SourceText"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;</span>[</span></span><span lang="EN-US"><a href="http://www.positioniseverything.net/easyclearing.html">How To Clear Floats Without Structural Markup</a></span><span class="SourceText"><span lang="EN-US">] <o:p></o:p></span></span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US">&nbsp;</span><span lang="EN-US">&nbsp;</span></p>
<p class="MsoBodyText" style="MARGIN-BOTTOM: 14.15pt"><span lang="EN-US"><a href="http://www.smashingmagazine.com/2007/05/01/css-float-theory-things-you-should-know/">原始出处</a></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://kj23.javaeye.com/blog/77221#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 05 May 2007 21:29:00 +0800</pubDate>
        <link>http://kj23.javaeye.com/blog/77221</link>
        <guid>http://kj23.javaeye.com/blog/77221</guid>
      </item>
      <item>
        <title>简单小巧的多级联动菜单</title>
        <author>kj23</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kj23.javaeye.com">kj23</a>&nbsp;
          链接：<a href="http://kj23.javaeye.com/blog/51818" style="color:red;">http://kj23.javaeye.com/blog/51818</a>&nbsp;
          发表时间: 2007年02月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          看到今天贴了几个联动菜单的帖子<br /><br />这个应该大家都有各自比较好的代码了<br /><br />我也顺手贴一个我们team里面用的比较小巧的代码<br /><br /><pre name="code" class="java">
// author: downpour
var DoubleCombo = Class.create();

DoubleCombo.prototype = {
	
  initialize: function(source, target, ignore, url, options, excute) {
  	this.source = $(source);
  	this.target = $(target);
  	this.ignore = $A(ignore);
  	this.url = url;
  	this.options = $H(options);
  	this.source.onchange = this.doChange.bindAsEventListener(this);
  	if(excute) {
  		this.doChange();
  	}
  },
  
  doChange: function() {
	
	if(this.source.value != '') {
		
		// first clear the ignore ones
		this.ignore.each(
			function(value) {
				$(value).options.length = 1;
				$(value).options[0].selected = 'selected';
			}
		);
		
		// create parameter for ajax
		var query = $H({ id: this.source.value });
  	
  		var parameters = {
  			method: 'post', 
			parameters: $H(this.options).merge(query).toQueryString(), 
			onComplete: this.getResponse.bindAsEventListener(this)
  		}
  	
  		var locationRequest = new Ajax.Request( this.url, parameters );
	}
	
  },
  
  getResponse: function(request) {
  	this.target.options.length = 1;
  	this.target.options[0].selected = 'selected';
  	var response = $A(request.responseText.trim().split(';'));
  	response.length--;
  	for(var i = 0; i &lt; response.length; i++) {
  		var optionParam = response[i].split(',');
  		this.target.options[this.target.options.length] = new Option(optionParam[1], optionParam[0]);
  	}
  }
}</pre><br /><br /><br />简单说一下几个参数吧：<br />source  第一级菜单<br /><br />target  联动菜单<br /><br />ignore  当有时候3级联动时，例如 国家  省  市 例如上海没有省的，可以忽略第3级菜单<br /><br />url     action url<br /><br />options action参数<br /><br />excute  是否联动<br /><br /><br />拿比较常见的例子来看   国家  省  市   3级联动来作为例子<br /><br /><br /><pre name="code" class="java">&lt;html-el:select property="country" styleId="country" >
	&lt;html-el:options collection="countries" property="id" labelProperty="name" />
&lt;/html-el:select>


&lt;html-el:select property="province" styleId="province">
	&lt;option value="">--Please Select--&lt;/option>
         ................
&lt;/html-el:select>

&lt;html-el:select property="city" styleId="city">
	&lt;option value="">--Please Select--&lt;/option>
         ................
&lt;/html-el:select>


&lt;script type="text/javascript">
	new DoubleCombo('country', 'province', null, '&lt;c:url value="/xxxx.do?combo=true">&lt;/c:url>', {});

&lt;script type="text/javascript">
	new DoubleCombo('province', 'city', null, '&lt;c:url value="/xxxx.do?combo=true">&lt;/c:url>', {});</pre>
          <br/>
          <span style="color:red;">
            <a href="http://kj23.javaeye.com/blog/51818#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 Feb 2007 14:30:46 +0800</pubDate>
        <link>http://kj23.javaeye.com/blog/51818</link>
        <guid>http://kj23.javaeye.com/blog/51818</guid>
      </item>
      <item>
        <title>[Tip][一段非常有意思的debug CSS]</title>
        <author>kj23</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kj23.javaeye.com">kj23</a>&nbsp;
          链接：<a href="http://kj23.javaeye.com/blog/47924" style="color:red;">http://kj23.javaeye.com/blog/47924</a>&nbsp;
          发表时间: 2007年01月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">
/*----- the debug css style -----*/

* { outline: 2px dotted red }
* * { outline: 2px solid green }
* * * { outline: 2px dotted orange }
* * * * { outline: 2px solid blue }
* * * * * { outline: 1px dotted red }
* * * * * * { outline: 1px solid green }
* * * * * * * { outline: 1px dotted orange }
* * * * * * * * { outline: 1px solid blue }	

/*----- the debug css style -----*/
</pre><br /><br />虽然也可以用ff的插件来outline，但是总有些不方便，毕竟那是动态的，自己需要用到加上border呢，又嫌麻烦。<br /><br /><br />这段css可以比较有效的帮助我们调错，还可以根据情况注释掉一部分，调试某一层次对象。<br /><br /><br />不过这般现代css技术，ie是无福消受了。呵呵，也就是个小tip，看官误笑。
          <br/>
          <span style="color:red;">
            <a href="http://kj23.javaeye.com/blog/47924#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 16 Jan 2007 20:30:33 +0800</pubDate>
        <link>http://kj23.javaeye.com/blog/47924</link>
        <guid>http://kj23.javaeye.com/blog/47924</guid>
      </item>
      <item>
        <title>[CakePHP Manual 中文手册 翻译 预览版]</title>
        <author>kj23</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kj23.javaeye.com">kj23</a>&nbsp;
          链接：<a href="http://kj23.javaeye.com/blog/36785" style="color:red;">http://kj23.javaeye.com/blog/36785</a>&nbsp;
          发表时间: 2006年12月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://www.cakephp.org" target="_blank">www.cakephp.org</a><br /><br />CakePHP Manual 中文手册 翻译<br /><br />http://www.1x3x.net/cakephp/index.html<br /><br />预览地址<br /><br /><br />目前翻译工作完成 2/3 <br /><br />争取本周末完成第一稿<br /><br />页面样式稍微调了一下，实在太累了，先放这么点出来<br /><br />希望捧个人场 小弟我是个新人，望指教<br /><br />看到网上也有别的同学翻译了，唉，就当学习过程吧<br /><br />PHP on rails特别是他的ajax基于prototype蛮对我胃口的<br /><br />任何我的错误都希望你提出来啊，谢谢<br /><br />hasOne 关联的定义与查询<br />假设你已经准备好了User和Profile两个model，让我们来定义他们之间的关联。hasOne关联的定义是通过在model中增加一个array来实现的。下面是示例代码<br /><br /><pre name="code" class="java">
&lt;?php
class User extends AppModel
{
    var $name = 'User';
    var $hasOne = array('Profile' =>
                        array('className'    => 'Profile',
                              'conditions'   => '',
                              'order'        => '',
                              'dependent'    =>  true,
                              'foreignKey'   => 'user_id'
                        )
                  );
}
?>
</pre><br /><br /><br />$hasOne变量是一个array，Cake通过该变量来构建User与Profile之间的关联。我们来看每一个元素代表的意义：<br /><br />className (required)：关联对象的类名，上面代码中我们设为'Profile'表示关联的是Profile对象。 <br />conditions: 关联对象的选择条件，（译注：类似hibernate中的formula）。具体到我们的例子来看，假设我们仅关联Profile的header color为绿色的文件记录，我们可以这样定义conditions，"Profile.header_color = 'green'"。 <br />order: 关联对象的排序方式。假设你希望关联的对象是经过排序的，你可以为order赋值，就如同SQL中的order by子句："Profile.name ASC"。 <br />dependent：这是个布尔值，如果为true，父对象删除时会级联删除关联子对象。在我们的Blog中，如果"Bob"这个用户被删除了，则关联的Profile都会被删除。类似一个外键约束。 <br />foreignKey：指向关联Model的外键字段名。仅在你不遵循Cake的命名约定时需要设置。 <br />现在，现在当我们使用find() findAll()检索User对象时，你会发现关联的Profile对象也被检索回来，非常的方便：<br /><br /><pre name="code" class="java">
$user = $this->User->read(null, '25');
print_r($user);

//output:

Array
(
    [User] => Array
        (
            [id] => 25
            [first_name] => John
            [last_name] => Anderson
            [username] => psychic
            [password] => c4k3roxx
        )

    [Profile] => Array
        (
            [id] => 4
            [name] => Cool Blue
            [header_color] => aquamarine
            [user_id] = 25
        )
)
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://kj23.javaeye.com/blog/36785#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 01 Dec 2006 09:43:25 +0800</pubDate>
        <link>http://kj23.javaeye.com/blog/36785</link>
        <guid>http://kj23.javaeye.com/blog/36785</guid>
      </item>
  </channel>
</rss>