<?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>优马</title>
	<atom:link href="http://www.gracepress.cn/uma/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gracepress.cn/uma</link>
	<description>学点代码，积少成多......</description>
	<lastBuildDate>Mon, 05 Sep 2011 12:52:27 +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>Audio player使用方法(同样适用于多站点)</title>
		<link>http://www.gracepress.cn/uma/audio_player_usage.html</link>
		<comments>http://www.gracepress.cn/uma/audio_player_usage.html#comments</comments>
		<pubDate>Sun, 04 Sep 2011 10:35:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[播放器]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=393</guid>
		<description><![CDATA[1、下载Audio player，然后解压上传到”wp-content/plugins”目录下，并在后台激活此插件； 2、在 “控制面板” &#124; “设置” &#124; “Audio player”进行设置（其实大部分默认即可），主要是设置“默认音频文件夹”，比如我在空间根目录下新建一个 “audio”文件夹，在下拉选项选“自定义”，并输入autio文件URL，如我的网站为”http://gracepress.cn”，那么就输入”http://gracepress.cn/audio”，然后验证完成; 3、日志中调用方法： 1）本地调用（先按上面的方法设置好“默认音频文件夹”） [a去掉udio:name.mp3] 2）远程调用 [a去掉udio:http://url/name.mp3] 3）播放多首 [a去掉udio:http://url/name.mp3,http://url/name.mp3] 4）自动播放 [a去掉udio:http://url/name.mp3&#124;autostart=yes] 5）循环播放 [a去掉udio:http://url/name.mp3&#124;loop=yes][Audio clip: view full post to listen]]]></description>
			<content:encoded><![CDATA[<p>1、下载Audio player，然后解压上传到”wp-content/plugins”目录下，并在后台激活此插件；<br />
2、在 “控制面板” | “设置” | “Audio player”进行设置（其实大部分默认即可），主要是设置“默认音频文件夹”，比如我在空间根目录下新建一个 “audio”文件夹，在下拉选项选“自定义”，并输入autio文件URL，如我的网站为”http://gracepress.cn”，那么就输入”http://gracepress.cn/audio”，然后验证完成;<br />
3、日志中调用方法：  <span id="more-393"></span><br />
1）本地调用（先按上面的方法设置好“默认音频文件夹”）<br />
  [a去掉udio:name.mp3]</p>
<p>2）远程调用<br />
  [a去掉udio:http://url/name.mp3]<br />
3）播放多首<br />
[a去掉udio:http://url/name.mp3,http://url/name.mp3]</p>
<p>4）自动播放<br />
[a去掉udio:http://url/name.mp3|autostart=yes]<br />
5）循环播放<br />
[a去掉udio:http://url/name.mp3|loop=yes][Audio clip: view full post to listen]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/audio_player_usage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript学习笔记 3:窗口、JavaScript DOM、框架 3/5</title>
		<link>http://www.gracepress.cn/uma/javascript_note_3_window_javascript-dom_frames.html</link>
		<comments>http://www.gracepress.cn/uma/javascript_note_3_window_javascript-dom_frames.html#comments</comments>
		<pubDate>Sat, 03 Sep 2011 18:32:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=380</guid>
		<description><![CDATA[本人的JavaScript学习笔记，主要参考<a href="http://www.webmonkey.com/tutorials/">网猴</a>及<a href="http://www.w3school.com.cn/">w3school中文网</a> ，按<a href="http://www.webmonkey.com/tutorials/">网猴</a>的结构，分5部分，这是第3部分：窗口、JavaScript、框架。 <a href="http://www.gracepress.cn/uma/javascript_note_3_window_javascript-dom_frames.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>JavaScript窗口操作</h3>
<h4>在HTML中打开窗口</h4>
<p>我们已经知道如何在HTML中打开一个窗口。多数当前流行的浏览器中, 你可用一个href语句打开一个新窗口，例如：</p>
<pre class="brush: js">
点击 <a href="yer_new_window.html" target="yer_new_window">
这里</a>即可打开另一个窗口.
</pre>
<p>说明：上述代码，目标链接打开的窗口是上面名为”yer_new_window” 的窗口。<br />
简单温习href目标后，下面将学习如何在JavaScript中打开窗口</p>
<h4>在JavaScript中打开窗口</h4>
<p>在HTML中打开窗口存在一些缺陷：你左右不了其窗口的大小及式样。但JavaScript给了你这种控制权。</p>
<p>JavaScript中打开窗口的语法是：</p>
<pre class="brush: js">
window.open("URL","name","features");
</pre>
<p>  <span id="more-380"></span><br />
参数说明：<br />
第一个参数 URL，实际使用时，可能是这样的 “http://shop34219081.taobao.com”<br />
第二个参数 name，窗口的名字，如果你打开窗口时已有一个同名窗口打开，那么URL将把open语句送到原先已打开的窗口。<br />
第三个参数 features，该参数可选，它表示窗口所具有的不同特征，具体参阅“Windows特性”</p>
<p>来看实例1：</p>
<pre class="brush: js">
<a onclick="window.open('win_1.html','javascript_1');" href="#">
Here's a window named javascript_1</a>.
</pre>
<p>来看实例2：</p>
<pre class="brush: css">
<a onclick="window.open('win_2.html','javascript_2');" href="#">
Here's a window named javascript_1</a>.
</pre>
<p>这两个小实例将会在两个窗口中打开两个页面，且两个窗口名分别为javascript_1，javascript_1，如果又有一实例是这样的：</p>
<pre class="brush:  js">
<a onclick="window.open('win_3.html','javascript_1');" href="#">
Here's a window named javascript_1</a>.
</pre>
<p>那么你就将一个名为window_3.html的页面放置到了第一个窗口中。</p>
<p><strong><span style="color: #008000;"> 学习点</span></strong><br />
window.open(”URL”,”name”,”features”)<br />
<span style="color: #993300;">注意：</span><span style="color: #808080;">请不要混淆方法 Window.open() 与方法 Document.open()，这两者的功能完全不同。为了使您的代码清楚明白，请使用 Window.open()，而不要使用 open()</span></p>
<div class="t_box">window.open(“URL”,”name”,”features”)  属于Window 对象的方法，详情请见w3school中文网的<a href="http://www.w3school.com.cn/htmldom/met_win_open.asp">HTML DOM教程</a></div>
<h3>JavaScript DOM </h3>
<p>你要是了解 HTML DOM，就不会对JavaScript DOM难于理解，关于HTML DOM ，详情请见w3school中文网的<a href="http://www.w3school.com.cn/htmldom/index.asp">HTML DOM教程</a></p>
<p>在JavaScript 中缺省的窗口对象为 window，如何获取缺省窗口的属性呢？</p>
<pre class="brush:  js">
var the_status = window.status;
</pre>
<p>这是说：找到称为window 的status属性，将之调用到变量the_status中。窗口的status特性包含了状态条上出现的词句。你也可事先设置它，像这样：</p>
<pre class="brush:  js">
window.status = "I'm monkeying around!";
</pre>
<h4>窗口间的交流</h4>
<p>有时候我们同时打开了两个窗口，并且需要将另一个窗口移到前台。为了使用javascript实现窗口之间的交流，需要对该窗口施加一个引用。</p>
<pre class="brush:  js">
var new_window = window.open("hello.html","html_name",
"width=200,height=200");
</pre>
<p>该语句打开一个小窗口并将其赋值给变量new_window作为对该窗口的引用。</p>
<p>你可以象对窗口调用方法那样对new_window调用方法。</p>
<pre class="brush:  js">
new_window.blur();
</pre>
<p>现在我们看看将新窗口移到前台或移到后台的两个链接：</p>
<pre class="brush:  js">
<a href="#" onMouseOver="new_window.focus();">Bring
it forward</a>
<a href="#" onMouseOver="new_window.blur();">Put it
backward</a>
</pre>
<p>将上面的代码连起来，完整的就是这样的:</p>
<pre class="brush:  js">
[html][head][title]Getting and using a window reference[/title]
[script language="JavaScript"]
<!-- hide me
// open a new window and get a reference to it
var new_window = window.open("hello.html","html_name","width=200,height=200");
// blur the new window
new_window.blur();
// show me -->
</script></head><body>
<h1>A new window has been opened and moved to the background.</h1>

<a href="#" onmouseover="new_window.focus();">Bring it forward</a>
<a href="#" onmouseover="new_window.blur();">Put it backward</a>
[/body][/html]
</pre>
<h3>框架 Frames </h3>
<p>其实，框架也是窗口的一个特性，主要是用来实现分隔窗口。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/javascript_note_3_window_javascript-dom_frames.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript学习笔记 2:变量、字符串、条件语句、事件及图片交换 2/5</title>
		<link>http://www.gracepress.cn/uma/javascript_note_2_variables_strings_if-then_image_swapping.html</link>
		<comments>http://www.gracepress.cn/uma/javascript_note_2_variables_strings_if-then_image_swapping.html#comments</comments>
		<pubDate>Sat, 03 Sep 2011 17:20:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=347</guid>
		<description><![CDATA[本人的JavaScript学习笔记，主要参考<a href="http://www.webmonkey.com/tutorials/">网猴</a>及<a href="http://www.w3school.com.cn/">w3school中文网</a> ，按<a href="http://www.webmonkey.com/tutorials/">网猴</a>的结构，分5部分，这是第2部分：变量、字符串、条件语句、图片交换。 <a href="http://www.gracepress.cn/uma/javascript_note_2_variables_strings_if-then_image_swapping.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>变量</h3>
<p>还是通过一个实例来学习变量的相关语法：</p>
<pre class="brush: js">
<!--variables.html-->
[html]
[head]
[script language="JavaScript"]
<!-- hide me
// load up some variables ,定义变量
var hen_num = 3;
var eggs_per_week_each = 5;
var weeks_per_month = 4;

// do some calculations ;计算
var eggs_per_month_each = eggs_per_week_each * weeks_per_month;
var eggs_per_month_all = eggs_per_month_each * hen_num;

//here's how to use JavaScript to write out HTML
//这里介绍如何用JavaScript写变量和网页。
document.writeln("<b>我家母鸡每月生蛋 ");
document.writeln(eggs_per_month_all);
document.writeln(" 个.</b>[p]");

// end hiding -->
[/script]
[/head]
[/html]
</pre>
<p><span style="color: #008000;"><strong>学习点</strong></span><br />
①当首次用一变量时，应以“<strong>var</strong>”申明。 尽管以var 作为变量申明严格说并不必要，但这是一个好习惯。<br />
②变量名对大小写敏感<br />
③可用document.writeln() 来写文本和网页中的HTML  <span id="more-347"></span></p>
<div class="t_box">
document.writeln()属于Document 对象的方法，详情请见w3school中文网 <a href="http://www.w3school.com.cn/htmldom/dom_obj_document">HTML DOM教程</a>
</div>
<h3>变量字符串</h3>
<p>别小看JavaScript中字字符串，它的使用相当灵活：</p>
<pre class="brush: js">
<!--string.html-->
[html][head]
[script language="JavaScript"]
<!-- hide me
var nice_monkey = "猴子对着你笶,并读诗.";
var bad_monkey = "猴子对着你皱眉头.";
// 定义变量，并给变量赋值，使它等于这些字符串，于是当你想写这些字符串时，你可写：

document.writeln(nice_monkey+"");
var monkey = prompt("猴子的名字?", "傻猴");
//这里我们称为用户反馈提示方式，当它被调用时，启动一个对话框请求用户输入信息。用
//户完成后敲OK返回信息。在上行中返回信息放入其变量中。

var demanding="想要";
var tech="一台电脑!";
var techy_monkey = monkey + demanding + tech;

document.writeln(techy_monkey+"");
document.writeln(techy_monkey.fontcolor('red');
//这一句的意思是:将字符串 techy_monkey 用红色显示在屏幕上
// end hiding -->
[/script]
 [/Head][/Html]
</pre>
<p><span style="color: #008000;"><strong>学习点</strong></span><br />
* var secs_per_min = 60;<br />
* var bad_monkey = “The monkey scowls at you and burps.”;<br />
* var techy_monkey = monkey + demanding + tech;</p>
<p>* var monkey = prompt(”What’s the monkey’s name?”, “The monkey”);</p>
<p>* document.writeln(”[b]The monkey dances[/b] “);<br />
* document.writeln(bad_monkey +”[br]“);<br />
* 字符串对象：<br />
document.writeln(techy_monkey.fontcolor(’red’);</p>
<div class="t_box">
prompt ( )属于Window 对象的方法，详情请见w3school中文网的HTML DOM教程
</div>
<h3>条件语句</h3>
<h4>If 语句</h4>
<pre class="brush: js">
if (条件) {
  条件成立时执行代码
}
</pre>
<h4>If…else 语句</h4>
<pre class="brush: js">
if (条件){
  条件成立时执行此代码
}
else{
  条件不成立时执行此代码
}
</pre>
<h4>If…else if…else 语句</h4>
<pre class="brush: js">
if (条件1){
  条件1成立时执行代码
}
else if (条件2){
  条件2成立时执行代码
}
else{
  条件1和条件2均不成立时执行代码
}
</pre>
<p><strong>实例：</strong></p>
<pre class="brush: js">
<!--if_then.html-->
[html]
[head]
[title]If Then Exercise[/title]
[script language = "JavaScript"]
  var color = prompt("What color do you prefer, red or blue? ","");
  var adjective;
  if (color == "red") {
    adjective = "lurid.";
  }else if (color == "blue") {
    adjective = "cool.";
  }else {
    adjective = "confused."
  }
  var sentence = "You like " + color + "? The monkey thinks you're " +adjective + "[p]";
  // stop hiding me -->
[/script]
[/head]

 [body]
[script language = "JavaScript"]
  <!-- begin hiding me
  document.writeln(sentence.fontcolor(color));
  // end hiding -->
[/script]
[/body]
[/html]
</pre>
<h3>链接事件</h3>
<p>用户点击一个链结，或将鼠标移到其上，JavaScript发送一个链结事件。<br />
一种链结事件叫做<span style="color: #008000;">onClick</span>，当用户点击它时才发送。<br />
另一种叫<span style="color: #008000;">onMouseOver</span>，用户将鼠标移到上面时即发送。</p>
<pre class="brush: js">
[html]
 [head]
 [/head]
 [body]
 <a href="#" onClick="alert('Ooo, do it again!');">Click on me!</a>
 <a href="#" onMouseOver="alert('Hee hee!');">Mouse over me!</a>
 [/body]
[/html]
</pre>
<p><strong><span style="color: #008000;"> 学习点</span></strong><br />
onClick, onMouseOver</p>
<div class="t_box">
拓展<br />
事件：事件是可以被 JavaScript 侦测到的行为如（鼠标点击；页面或图像载入；鼠标悬浮于页面的某个热点之上；在表单中选取输入框；确认表单；键盘按键）</p>
<p><span style="color: #008000;">常用事件</span><br />
onClick<br />
onload 和 onUnload<br />
onFocus, onBlur 和 onChangeonSubmit<br />
onMouseOver 和 onMouseOut<br />
更详细的内容，请见<a href="http://www.w3school.com.cn/htmldom/dom_obj_event.asp">HTML DOM Event</a> 对象
</div>
<h3>图片交换</h3>
<p>JavaScripts的一个主要应用是其具有使你移动鼠标时图片自动切换功能。</p>
<pre class="brush: js">
[html]
[head]
[title]图片交换[/title]
[/head]

[body]
<img src="image/monkey.gif" name="the_image">
<!--这就象一个标准的 <img src= > 标签，只是它被给了一个名字：the_image，
名字是任意取的-->

<a href="#" onMouseOver="document.the_image.src='image/thau.gif';">
change</a>
<!--document.the_image.src='button_d.gif';
该句是说：“找到叫'the_image'的图片并将其src 变为button_d.gif."-->
[/body]
[/html]
</pre>
<p>再来一个稍复杂的实例。</p>
<p><span style="color: #808080;">这个实例要完成这样的一个功能：页面上有两张图片（一上一下），当将鼠标移到下面的图片上是，图片变化，每移动一回，都会变，当点击鼠标时，上面的图片也变成了和下面一样的图片。这样的效果不错吧：</span></p>
<pre class="brush: js">
<!--image_swapping_2-->
[html]
[head]
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

[script language="JavaScript"]
<!-- hide me
  var temp = "";
  var image1 = 'image/thau.gif';
  var image2 = 'image/sky.gif';
  var image3 = 'image/monkey.gif'
  var user_name = prompt("What's your name", "");
  if (user_name == ""){
    user_name = "流浪人";
  }
  // end hide -->
[/script]

[/head]
[body]
[p]<img src="image/monkey.gif" name="brand_image">[/p]
<h3>Browser Configuration</h3>

<b>你好,
<script language="JavaScript">
  <!-- hide me
  document.write(user_name);
  // end hide -->
  </script>
</b>

[p]将移到下面的图片上，直到找到你喜欢的图片，然后点击它。[/p]

[p]<a href="#"
onMouseOver="temp=image1; image1=image2; image2=image3; image3=temp;
document.the_image.src=image1;"
onClick="document.brand_image.src=image1;">
<img src="image/monkey.gif" name="the_image" border=0></a>

[/body]
[/html]
</pre>
<p><strong><span style="color: #008000;"> 学习点</span></strong><br />
Document.imageObject.src</p>
<div class="t_box">
Document.imageObject.src(只写imageObject.src也行)  : <a href="http://www.w3school.com.cn/htmldom/dom_obj_image.asp">HTML DOM Image 对象</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/javascript_note_2_variables_strings_if-then_image_swapping.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript学习笔记 1:入门 1/5</title>
		<link>http://www.gracepress.cn/uma/javascript_note_1_start_to_learn_js.html</link>
		<comments>http://www.gracepress.cn/uma/javascript_note_1_start_to_learn_js.html#comments</comments>
		<pubDate>Sat, 03 Sep 2011 10:36:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=330</guid>
		<description><![CDATA[本人的JavaScript学习笔记，主要参考<a href="http://www.webmonkey.com/tutorials/">网猴</a>及<a href="http://www.w3school.com.cn/">w3school中文网</a> ，按<a href="http://www.webmonkey.com/tutorials/">网猴</a>的结构，分5部分，这是第1部分：以一个简单的实例入门。 <a href="http://www.gracepress.cn/uma/javascript_note_1_start_to_learn_js.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>JavaScript是什么？</h3>
<p>JavaScript 是因特网上最流行的脚本语言，并且可在所有主要的浏览器中运行。除了<span style="color: #808080;">JavaScript</span>，其它的脚本语言还有<span style="color: #808080;">HTDMLDOM，DHTML，VBScript，AJAX，WML Script</span>等。</p>
<p>初次接触，常会碰到如HTML，XML，HTDML DOM，DHTML，JavaScript等词汇，顺便在这里简单说说它们的关系和区别，理清思绪：</p>
<p>* <span style="color: #008000;"><strong>JavaScript</strong></span>等属于脚本语言，<span style="color: #999999;">JavaScript离不开HTML DOM</span>；</p>
<p>* <span style="color: #008000;"><strong>HTML</strong></span> 指超文本标签语言，<span style="color: #999999;">可以说它是学习网页的基础</span>。</p>
<p>*<span style="color: #008000;"><strong> XML</strong></span> 指扩展标记语言，它是独立于软件和硬件的信息传输工具。<br />
XML 不是 HTML 的替代，是对 HTML 的补充。简单的讲，它们的区别是：HTML 旨在显示信息，而 XML 旨在传输信息。<span id="more-330"></span></p>
<p>*<span style="color: #008000;"><strong> HTML DOM </strong></span>定义了访问和操作HTML文档的标准方法。<br />
HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构（节点树）。<br />
<span style="color: #999999;">HTML DOM离不开JavaScript</span></p>
<p><strong>* <span style="color: #008000;">DHTML</span></strong><br />
DHTML 是一种使 HTML 页面具有动态特性的艺术。<br />
DHTML 是一种创建动态和交互 WEB 站点的技术集。<br />
<span style="color: #999999;">对大多数人来说，DHTML 意味着 HTML、样式表和 JavaScript 的组合。</span></p>
<p><strong>* <span style="color: #008000;">AJAX </span></strong>指异步 JavaScript 及 XML（Asynchronous JavaScript And XML）。<br />
AJAX 不是一种新的编程语言，而是一种使用现有标准的新方法。<br />
通过 AJAX，你可以创建更好、更快以及更友好的 WEB 应用程序。<br />
<span style="color: #999999;">AJAX 基于 JavaScript 和 HTTP 请求（HTTP requests）。</span><br />
&nbsp;</p>
<h3>第一个JavaScript实例</h3>
<pre class="brush: js">
[html]
[head]
<Script Language ="JavaScript">
// JavaScript Appears here.
alert("这是第一个JavaScript例子!");
</Script>
[/Head]
[/Html]
</pre>
<p><span style="color: #008000;">说明</span><br />
① 在本例中，JavaScript代码出现在<strong>[head] [/head]</strong>中，并由标识<strong>[Script Language="JavaScript"]…[/Script]</strong>说明。除了在head部，JavaScript代码还可以位于 body，以及外部。<br />
② 在”//”后是可被忽略的注释，对大段文本注释，用 /* */ 。</p>
<h3>隐藏JavaScript</h3>
<p>有些浏览器会把脚本作为页面的内容来显示。为了防止这种情况发生，我们可以使用这样的 HTML 注释标签将JavaScript隐藏：</p>
<pre class="brush: js">
[html][head]
<script language="JavaScript">
<!-- hide this stuff from other browsers
这里写入你的语言
// end the hiding comment -->
</script>[/head]
[body]
</pre>
<h3>使用外部 JavaScript</h3>
<pre class="brush: js">
[html][head]
<script src="xxx.js">....</script>
[/head]
[body]
[/body][/html]
</pre>
<div class="refer_box">
<span>参考文章：</span><a href="http://www.webmonkey.com/tutorial">网猴</a>及<a href="http://www.w3school.com.cn/js/">w3school中文网</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/javascript_note_1_start_to_learn_js.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>css学习笔记 11:对表单运用样式</title>
		<link>http://www.gracepress.cn/uma/css_note_11_styling_forms.html</link>
		<comments>http://www.gracepress.cn/uma/css_note_11_styling_forms.html#comments</comments>
		<pubDate>Fri, 02 Sep 2011 19:59:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[表单]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=300</guid>
		<description><![CDATA[参考《精通CSS 高级Web标准解决方案》第6章。 过去常常使用表格对表单进行布局，其实用CSS就可以设计出复杂又漂亮的表单。 <a href="http://www.gracepress.cn/uma/css_note_11_styling_forms.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>文本框、多行输入框</h3>
<p>有如下的表单：<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_base.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_base.jpg" alt="" title="form_base" width="328" height="152" class="alignleft size-full wp-image-301" /></a><br />
其html是这样的：</p>
<pre class="brush: html">
<form  action="#" method="get">
<pp>你的姓名：
<input type="text" name="yourname"></pp>
<pp>电话号码：
<input type="text" name="phone"></pp>
<pp>您的意见:<textarea name="yoursuggest"
     cols ="30" rows = "3"></textarea>
  </pp>
</form>
</pre>
<p>    <span id="more-300"></span></p>
<p>并简单地添加些CSS，让它更好看此(如上面的效果):</p>
<pre class="brush: css">
form {
  width:300px;
  padding:0.3em;
  border:1px solid #CC9999;
  background-color:#FFFFCC;
}
form p{margin:0.2em;padding:0;}
input{width:200px;}
</pre>
<p>HTML提供了许多有用的元素,可以帮助在表单中添加结构和意义，这些元素是:<br />
<strong>fieldset</strong>：用来对相关的信息块进行分组。<br />
<strong>legend</strong>：相当于标题<br />
<strong>label</strong>：表单标签，该元素可帮助添加结构和增加表单的可访问性。将标签与表单关联起来的方法是：</p>
<pre class="brush: html">
<label for="name">姓名</label>
<input name="name" id="name" type="text"/>
</pre>
<p>这样，将上面的表单基本布局改为这样：</p>
<pre class="brush: html">
<form>
<fieldset>
<legend>你的留言</legend>
<pp>
    <label for="name">你的姓名：</label> 
<input name="name" id="name" type="text"/>
  </pp>
<pp>
    <label for="phone">电话号码：</label>
<input name="phone" id="phone" type="text"/>
  </pp>
<pp>
    <label for="message">您的意见:</label>
    <textarea name="message" id="message" cols="30" rows="3"></textarea>
  </pp>
</fieldset>
</form>
</pre>
<p>然后，设置样式：</p>
<pre class="brush: css">
form{width:300px;}
fieldset{
  padding:0.3em;
  border:1px solid #CC9999;
  background-color:#FFFFCC;
}
fieldset p{margin:0.4em;padding:0;}
legend{font-weight:bold;}
input{width:190px;}/*规定宽度是为了在不同的浏览器器表现得一样宽*/
textarea{width:290px;height:3em;}
</pre>
<p>效果是这样的（FireFox）：<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_base_label.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_base_label.jpg" alt="" title="form_base_label" width="334" height="176" class="alignleft size-full wp-image-302" /></a><br />
若在CSS中加入这样一条“<strong>label{display:block;}</strong>”,那么效果会变成下面这样(IE6.0,7.0)，这是因为：将label的display的属性设置为block会使它们产生自己的块框，迫使输入元素转到下一行。当然，如果在label中再加入浮动，也可以解决这个问题。<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_base_label_displayBlock.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_base_label_displayBlock.jpg" alt="" title="form_base_label_displayBlock" width="340" height="219" class="alignleft size-full wp-image-304" /></a></p>
<h3>单选框、复选框和提交按钮</h3>
<p>没有加表单元素时，html会是这样：</p>
<pre class="brush: html">
<form  action="#" method="get">
<pp>性别:
<input type="radio" name="sex" value = "male">男 
<input type="radio" name="sex" value = "female"   checked>女
  </pp>
<pp>喜欢的水果:
<input type="checkbox" name="fruit" value ="apple">苹果
<input type="checkbox" name="fruit" value ="orange">桔子
<input type="checkbox" name="fruit" value ="mango">芒果
  </pp>
<pp>喜欢的颜色:
<select name="color" >
<option value="red"> 红
<option value="green">绿
<option value="blue">蓝
    </select>
</pp>
<pp>
<input type="submit" value="提交"></pp>
</form>
</pre>
<p>在前面的练习中，为了在不同的浏览器器让文本框表现得一样宽，定义了文本框宽度。但如果表单含有其他表单控件（如单选框、复选框和提交按钮），那么将都会变成190px宽，怎么解决？为它们分配一个类，见下：</p>
<pre class="brush: html">
<form>
<fieldset>
<legend>你的留言</legend>
<pp>
    <label for="name">你的姓名：</label>
<input name="name" id="name" type="text"/>
  </pp>
<pp>
    <label for="phone">电话号码：</label>
<input name="phone" id="phone" type="text"/>
  </pp>
<pp>性别：
    <label for="male" > 男 </label>
<input name="sex" id="male" class="radio" type="radio" checked />
    <label for="female" > 女 </label>
<input name="sex" id="female" class="radio" type="radio" />
  </pp>
</fieldset>
</form>
</pre>
<p>然后将单选按钮的宽度设置为auto，对于复选框和提交按钮也可以这样做:</p>
<pre class="brush: css">
input.radio, input.checkbox, input.submit{width:auto;}
</pre>
<p>让单选按钮左浮动使之与标签放在同一行：</p>
<pre class="brush: css">
input.radio{float:left;margin-right:1em;}
</pre>
<p>别以前这样就可以达到你想的效果，不信你看：<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_radio_label.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_radio_label.jpg" alt="" title="form_radio_label" width="325" height="124" class="alignleft size-full wp-image-305" /></a></p>
<p>解决办法可参考下面的样式，</p>
<pre class="brush: css">
fieldset p{margin:0.4em;padding:0;}
legend{font-weight:bold;}
label{display:block;float:left;}
input{width:190px;}/*规定宽度是为了在不同的浏览器器表现得一样宽*/
input.radio, input.checkbox, input.submit{width:auto;}
input.radio{float:left;margin-right:1em;}

textarea{width:290px;height:3em;}

.float-l{float:left;}
.margin-r{margin-right:1em;}
.clear{clear:both;}
</pre>
<p>当然,相应的html也有些变化才行:</p>
<pre class="brush: html">
<pp><span class="float-l margin-r">性别：</span>
   ......
</pre>
<p><a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_radio_label_ok.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_radio_label_ok.jpg" alt="" title="form_radio_label_ok" width="327" height="120" class="alignleft size-full wp-image-306" /></a><br />
继续修饰，又经过一些动作，效果更人性化了……<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_radio_label_ok2.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_radio_label_ok2.jpg" alt="" title="form_radio_label_ok2" width="332" height="117" class="alignleft size-full wp-image-307" /></a><br />
只要将上面的CSS样式添加以下语句：</p>
<pre class="brush: css">
......
input:focus, textarea:focus{background:#CCFFCC;}
/*上面的,对IE无效*/
input[type="text"],textarea {
  border-top:1px solid #999;
  border-left:1px solid #999;
  border-bottom:1px solid #ccc;
  border-right:1px solid #ccc;
}
.required{font-size:0.85em;
  color:#993333;}
</pre>
<p>在html上的相应修改如下:</p>
<pre class="brush: html">
<pp>
    <label for="name">姓名：<em class="required">(必填)</em></label>
<input name="name" id="name" type="text"/>
  </pp>
</pre>
<p>将上面的内容串起来，完成一个较完整的练习：<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_more_label1.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/form_more_label1.jpg" alt="" title="form_more_label" width="460" height="427" class="alignleft size-full wp-image-308" /></a></p>
<p>和前面的几个不同点：<br />
① 没有将label标签设置为block，而是设置一个宽度；<br />
② 为了不让单选按钮间的距离太大，需要单独设置：</p>
<pre class="brush: css">
  #remember-me label{width:4em;}
</pre>
<p>完整的代码如下：</p>
<pre class="brush: css">
form{
  width:25em;}
fieldset{
  margin:1em 0;
  padding:0.5em 0.3em;
  border:1px solid #CC9999;
  background-color:#e5f5e5;
}

fieldset p{margin:0.4em;padding:0;}
legend{font-weight:bold;}
label{width:7em;float:left;}
#remember-me label{width:4em;}
input{width:10em;}
input.radio, input.checkbox, input.submit{width:auto;}
input.radio{float:left;margin-right:1em;}
/*让单选按钮左浮动使之与标签放在同一行:*/

textarea{width:16em;height:4em;}
.clear{clear:both;}

input:focus, textarea:focus{background:#FFFFCC;}

input[type="text"],textarea {
  border-top:1px solid #999;
  border-left:1px solid #999;
  border-bottom:1px solid #ccc;
  border-right:1px solid #ccc;
}
.required{font-size:0.85em;
  color:#993333;}*/
</pre>
<p>html结构也摆出来吧：</p>
<pre class="brush: html">
<form id="comments_form" action="#" method="post">
<fieldset>
<legend>详细联系方式</legend>
<pp>
    <label for="name">姓名：<em class="required">(必填)</em></label>
<input name="name" id="name" type="text"/>
  </pp>
<pp>
    <label for="email">邮箱：</label>
<input name="email" id="email" type="text"/>
  </pp>
<pp>
    <label for="domain">网址：</label>
<input name="domain" id="domain" type="text"/>
  </pp>
</fieldset>
<fieldset>
<legend>留言内容</legend>
<pp>
    <label for="message">您的意见:</label>
    <textarea name="message" id="message"
       cols="30" rows="3"></textarea>
  </pp>
</fieldset>
<fieldset>
<legend>记住我</legend>
<pp id="remember-me">
<input name="remember-me" id="yes" class="radio"
      type="radio" checked />
    <label for="yes" > 是 </label>
<input name="remember-me" id="no" class="radio"
      type="radio" />
    <label for="no" > 否 </label>
<div class="clear"></div>
</pp>
</fieldset>
<pp>
<input id="submit" class="submit" name="submit"
   type="submit"/></pp>
</form>
</pre>
<p><span style="color: #993300;">注意：</span> <ins datetime="2011-09-03T16:21:55+00:00">实际写代码时，需要将上面的pp换成p。</ins><br />
<span style="color: #008000;">后记：</span>书上还有一个带多列复框的的较复杂的表单布局，详见书109页。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/css_note_11_styling_forms.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>css学习笔记 10:CSS图像映射</title>
		<link>http://www.gracepress.cn/uma/css_note_10_css_image_maps.html</link>
		<comments>http://www.gracepress.cn/uma/css_note_10_css_image_maps.html#comments</comments>
		<pubDate>Thu, 01 Sep 2011 22:18:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[映射]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=285</guid>
		<description><![CDATA[参考《精通CSS 高级Web标准解决方案》第5章。 什么是图像映射？就是对于一张图片，当鼠标停留在图片的某个位置时，出现提示框(如方框)，且当你单击这个框会进入另一页面。 <a href="http://www.gracepress.cn/uma/css_note_10_css_image_maps.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>首先要做的是将图像添加到页中，放在一个命名的ID中：</p>
<pre class="brush: html">
<div id="pic">
  <img src="group-photo.jpg" width="510" height="310" alt="相聚北京"/>
</div>
</pre>
<p>然后，在图像后面添加每个人的网站链接列表。需要给每个列表分配一个类，还可以给每个链接设置title属性。</p>
<pre class="brush: html">
<div id="pic">
<img src="group-photo.jpg" width="510" height="310" alt="相聚北京"/>
<ul>
<li class="mecho_xiao">
    <a href="#" title="mecho_xiao">丫头</a>
  </li>
<li class="tograce">
    <a href="http://www.gracepress.cn" title="随风">随风</a>
  </li>
</ul>
</div>
</pre>
<p>   <span id="more-285"></span></p>
<p>【1】设置div 的宽及高，并将position设置为relative，这是关键 …</p>
<pre class="brush: css">
#pic{
  width:510;height:300;
  position:relative;/*这个关键*/
}
</pre>
<p>【2】去掉去掉列表前面的符号,将空白和填充设置为0,这一步应该相当熟悉了…</p>
<pre class="brush: css">
#pic ul{
  margin:0;
  padding:0;
  list-style:none;
}
</pre>
<p>【3】对锚链接绝对定位(具体位置依图调整)，并用一个大负数作文本编进，让列表从屏幕消失..</p>
<pre class="brush: css">
#pic a{
  position:absolute;
  width:80px;
  height:100px;
  text-indent:-1000em;
}
</pre>
<p>现在将各个链接定位在相应的个身上：</p>
<pre class="brush: css">
#pic .mecho_xiao a{top:45px;left:272px;}
#pic .tograce a{top:18px;left:360px;}
</pre>
<p>【4】创建翻转效果…</p>
<pre class="brush: css">
#pic a:hover{border:1px solid #fff;}
</pre>
<p>区区4小步，就完成了，但很不幸，只有FireFox浏览器才能看到效果:(<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/imagemap_flickr-1.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/imagemap_flickr-1.jpg" alt="" title="imagemap_flickr-1" width="506" height="170" class="alignleft size-full wp-image-286" /></a></p>
<h3>flickr风格的图像映射</h3>
<p>下面来学习更高级些的图像映射-flickr风格的图像映射。这种效果就是：当鼠标置于图片的任何位置都会出现几个双边框，并且当将鼠标移到边框区内时，会显示相应的说明。</p>
<p>先从创建一层框着手，需要在每个锚链接内部添加1个额外的span，说明也添加一个额外的sapn。这样，列表就会成下面这样：</p>
<pre class="brush: html">
<div id="pic">
  <img src="group-photo.jpg" width="510" height="310" alt="相聚北京"/>
<ul>
<li class="mecho_xiao">
      <a href="#" title="mecho_xiao">
        <span class="outer">
            <span class="note">丫头</span>
        </span>
      </a>
    </li>

    ......
  </ul>
</div>
</pre>
<p>① 与前面一样：设置div 的宽及高，position:relative,且设置margin及padding为0，去掉列表符号</p>
<pre class="brush: css">
#pic{
  width:510px;height:310px;
  position:relative;/*这个关键*/
}

#pic ul{margin:0;padding:0;list-style:none;}
</pre>
<p>② 和前面一样，对锚链接绝对定位，但这里不要将链接内容从屏幕消失，给它设置一个颜色，为了避免鼠标停留时出现轻微移动，</p>
<p>给链接设置1px 的透明边框…</p>
<pre class="brush: css">
#pic a{
  position:absolute;
  width:80px;
  height:100px;
  color:#000;
  text-decoration:none;
  border:1px solid transparent;
}
</pre>
<p>和前面一样，将各个链接定位在相应的个身上：</p>
<pre class="brush: css">
#pic .mecho_xiao a{top:45px;left:272px;}
#pic .tograce a{top:18px;left:360px;}
</pre>
<p><span style="color: #008000;">说明:</span>为了调试，可以将上面#pic a 边框任意设置一个颜色</p>
<p>③ 创建边框效果：将outer span设置为块级显示，在设置大小时还要改变大小…</p>
<pre class="brush: css">
#pic a .outer{
  display:block;
  width:78px;
  height:98px;
  /*border:1px solid #000;开始有，后来去掉*/
}
</pre>
<p>④ 创建翻转效果：当鼠标停留时，将锚的边框色由透明改为黄色：</p>
<pre class="brush: css">
#pic a:hover{border-color: #d4d82d;}
</pre>
<p>说明:此时，当鼠标停留时，有了翻转效果，但只有FireFox的整个框区都翻转，其它的要指在边框上才翻转</p>
<p>⑤ 调整提示的位置，并运用样式：说明note 所对应的span 的位置是absolute，并设置负值的底部值…</p>
<pre class="brush: css">
#pic a .note{
  position:absolute;
  bottom:-1.8em;
  width:6em;
  padding:0.2em 0.5em;
  background-color:#fcc;
  text-align:center;
}
</pre>
<p>╋ 将文字提示居中：将span的左边缘定位的框区的中点，然后，使用负的margin将span向左移动说明宽度的一半：</p>
<pre class="brush: css">
#pic a .note{
  left:40px;
  margin-left:-3.5em;/*【★】说明的总宽度应该是7em(包括填充)*/
</pre>
<p>⑥ 不希望一直显示边框，而只是鼠标移致图像区域时才出现边框。处理方法:先将#pic a .outer边框 去掉，然后在#pic:hover a .outer中加入边框：</p>
<pre class="brush: css">
#pic:hover a .outer{
  border:1px solid #000;
}
</pre>
<p>╋ 不幸的是，IE6只支持锚链接上的鼠标停留。为了解决这个问题，让边框一直显示：</p>
<pre class="brush: css">
#pic:hover a .outer, #pic a:hover .outer {
  border: 1px solid #000;
}
</pre>
<p>⑦ 同样的，不希望一直显示提示。为止，可以将display设置为none，然后当鼠标停留在锚链接上时将它改为block。但这样做会使某些屏幕阅读器无法讯问说明的内容。所以这里采用另外的办法：将文本隐藏到左边外，而当鼠标停留时对它重新定位：</p>
<pre class="brush: css">
#pic a .note{left:-3000px;margin-left:-3.5em;}
#pic a:hover .note{left:40px;}
</pre>
<p>⑧ 再加一层框：还需要加上一层span…</p>
<pre class="brush: css">
#pic a .inner{
  display:block;
  width:76px;
  height:96px;
}
#pic:hover a .inner{border:1px solid #fff;}
#pic:hover a .inner, #pic a:hover .inner{
  border:1px solid #fff;}
</pre>
<p>这就是你想要的结果：一个flickr风格的高级CSS图像映射。<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/imagemap_flickr-ok.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/imagemap_flickr-ok.jpg" alt="" title="imagemap_flickr-ok" width="506" height="225" class="alignleft size-full wp-image-287" /></a></p>
<p>最后，将整个过程稍微整理一下，html结构如下：</p>
<pre class="brush: html">
<div id="pic">
<img src="group-photo.jpg" width="510" height="310" alt="相聚北京"/>
<ul>
<li class="mecho_xiao">
    <a href="#" title="mecho_xiao">
    <span class="outer">
      <span class="inner">
        <span class="note">丫头</span>
      </span>
    </span>
    </a>
  </li>

......
</ul>
</div>
</pre>
<p>CSS整理如下：</p>
<pre class="brush: css">
#pic{
  width:510px;height:310px;
  position:relative;/*这个关键*/
}
#pic ul{margin:0;padding:0;list-style:none;}

/* ⊙ 对锚链接绝对定位------*/
#pic a{
  position:absolute;
  width:80px;
  height:100px;
  color:#000;
  text-decoration:none;
  border:1px solid transparent;
  /*为了避免鼠标停留时出现轻微移动*/
}
  /*将各个链接定位在相应的个身上:*/
#pic .mecho_xiao a{top:45px;left:272px;}
#pic .tograce a{top:18px;left:360px;}
/*！为了调试，可以将上面#pic a 边框任意设置一个色*/

/*⊙ 创建边框效果------*/
#pic a .outer{
  display:block;
  width:78px;
  height:98px;
}
#pic a .inner{
  display:block;
  width:76px;
  height:96px;
}

/* ⊙ 创建翻转效果------*/
#pic a:hover{border-color: #d4d82d;}

/* ⊙ 调整提示的位置，并运用样式:------*/
#pic a .note{
  position:absolute;
  bottom:-1.8em;
  width:6em;
  padding:0.2em 0.5em;
  background-color:#fcc;
  text-align:center;
  left:-3000px;
  margin-left:-3.5em;
 /*让文本居中显示，【★】说明的宽度是7em(包括填充)*/
}
#pic a:hover .note{
  left:40px;
}

/* ⊙ 边框显示控制------*/
#pic:hover a .outer{border:1px solid #000;}
#pic:hover a .inner{border:1px solid #fff;}
/* ⊙ IE6只支持锚链接上的鼠标停留。为了解决这个问题，让边框一直显示-----*/
#pic:hover a .outer, #pic a:hover .outer {
  border: 1px solid #000;}
#pic:hover a .inner, #pic a:hover .inner{
  border:1px solid #fff;}
</pre>
<p><span style="color: #008000;">后记：</span>与前面简单的图像映射效果比较，这个flickr风格的高级CSS图像映射效果在各个浏览器都能看到效果，仍旧属在FireFox表现最完美，在IE7.0中，只有当鼠标放置于边框上才出现提示，（在IE6.0中的表现更差），而对于Opera9.2 ，只有当鼠标放置于上边框和左边框时才出现提示。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/css_note_10_css_image_maps.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>css学习笔记 9:简单的标签式导航条</title>
		<link>http://www.gracepress.cn/uma/css_note_9_simplified_tabbed_navigation.html</link>
		<comments>http://www.gracepress.cn/uma/css_note_9_simplified_tabbed_navigation.html#comments</comments>
		<pubDate>Thu, 01 Sep 2011 20:57:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[导航]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=276</guid>
		<description><![CDATA[参考《精通CSS 高级Web标准解决方案》第5章。 前面接触了圆角框，现在，来完成一个简单的带圆角框的标签式导航条。 <a href="http://www.gracepress.cn/uma/css_note_9_simplified_tabbed_navigation.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>先看看最终效果：<br />
<a href="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/Nav_sliding_doors.jpg"><img src="http://www.gracepress.cn/uma/wp-content/uploads/2011/09/Nav_sliding_doors.jpg" alt="" title="Nav_sliding_doors" width="510" height="85" class="alignleft size-full wp-image-277" /></a></p>
<p>这种带圆角框的标签式导航条的作法是：用一个右对齐的大图像和一个左对齐侧边图像，侧边图像盖在大图像左边，这样就实现了两个顶角是圆角创建标签页效果，并且，宽度可随着文字多少而展开。<br />
和前面的水平导航条一样，先写出列表的HTML结构：</p>
<pre class="brush: html">
<ul>
<li><a href="#">HOME</a></li>
<li><a href="#">ABOUT</a></li>
<li><a href="#">NEWS</a></li>
<li><a href="#">PRODUCTS</a></li>
<li><a href="#">SERVICES</a></li>
<li><a href="#">CLIENTS</a></li>
<li><a href="#">CASE STUDIES</a></li>
</ul>
</pre>
<p>  <span id="more-276"></span></p>
<p>【0】仍旧先在最前面设置全局字体</p>
<pre class="brush: css">
body {
  font-family: "Myriad Pro", Frutiger, "Lucida Grande",
"Lucida Sans", "Lucida Sans Unicode", Verdana, sans-serif;
  font-size: 1em;
}/*------*/
</pre>
<p>【1】和前面一样，去掉去掉列表前面的符号，将空白和填充设置为0 ，并设置整个导航条宽度720px。让导航条左浮动以便包含内部的浮动元素：</p>
<pre class="brush: css">
ul{
  /*因IE和Opera使用左空白控制列表缩进，而Firefox使用左填充，
所以先将margin和padding设置为0*/
  margin:0;
  padding:0;
  list-style:none;
  width:720px;
  float:left;/*让导航条左浮动以便包含内部的浮动元素*/
}
</pre>
<p>【2】纵队变横队，并添加右圆角背景图。<br />
在前面的水平导航条实例中，将整个渐变的背景图置于ul中，但这里显然不行，将右圆角背景图放置在li内，并将它右对齐：</p>
<pre class="brush: css">
ul li{
  float:left;
  background:url(images/tab-right.gif) no-repeat top right;
}
</pre>
<p>【3】上回就要你们分开点，怎么又挨那么紧,分开！分开！还有，别忘记将链接按钮化<strong>（display:block）</strong>,并使用行高让文本垂直居中&#8230;</p>
<pre class="brush: css">
li a{/*这里写 ul a是一样的*/
  padding:0 1.5em;
  display:block;
  text-decoration:none;
  line-height:2em;
  color:#fff;
}
</pre>
<p>【4】制造左边圆角效果：将侧边图置于a内，并左对齐就OK了…</p>
<pre class="brush: css">
li a{
  background:url(images/tab_left.gif) no-repeat top left;
}
</pre>
<p>【5】最后加上翻转效果。以及为了让Mac 上的IE5.2也能正确显示，仍旧对锚浮动…</p>
<pre class="brush: css">
li a{
  float:left;/*For IE5.2/Mac*/
}
ul a:hover{
  color:#333;
}
</pre>
<p>怎么样，不错吧，三下五除二,一个漂亮的水平标签式导航条就出来了：）<br />
为了规范，将代码稍微整理一下，如下所示：</p>
<pre class="brush: css">
body {
  font-family: "Myriad Pro", Frutiger, "Lucida Grande", "Lucida Sans",
     "Lucida Sans Unicode", Verdana, sans-serif;
  font-size: 1em;
}

ul{
  /*因IE和Opera使用左空白控制列表缩进，而Firefox使用左填充，
所以先将margin和padding设置为0*/
  margin:0;
  padding:0;
  list-style:none;
  width:720px;
  float:left;/*让导航条左浮动以便包含内部的浮动元素*/
}/*------*/

ul li{
  float:left;/*纵队变横队*/
  background:url(images/tab-right.gif) no-repeat top right;
}

li a{/*这里写 ul a是一样的*/
  padding:0 1.5em;
  display:block;
  text-decoration:none;
  line-height:2em;
  color:#fff;
  background:url(images/tab-left.gif)
     no-repeat top left;/*左圆角框背景*/
  float:left; /*For IE5.2(Mac)*/
}

ul a:hover{color:#333;}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/css_note_9_simplified_tabbed_navigation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>css学习笔记 8:水平导航条</title>
		<link>http://www.gracepress.cn/uma/css_note_8_creating_a_horizontal_nav_bar.html</link>
		<comments>http://www.gracepress.cn/uma/css_note_8_creating_a_horizontal_nav_bar.html#comments</comments>
		<pubDate>Wed, 31 Aug 2011 20:28:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[导航]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=267</guid>
		<description><![CDATA[参考《精通CSS 高级Web标准解决方案》第5章。 有了前面做垂直导航条的经历，水平垂直导航条也就更容易了。 <a href="http://www.gracepress.cn/uma/css_note_8_creating_a_horizontal_nav_bar.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>有了前面做<a href="http://www.gracepress.cn/uma/css_note_6_creating_a_vertical_nav_bar.html">垂直导航条</a>的经历，水平垂直导航条也就更容易了。还是一步步来&#8230;&#8230;<br />
先写出HTML结构:</p>
<pre class="brush: html">
<ul>
<li class="first"><a href="#">HOME</a></li>
<li><a href="#">ABOUT</a></li>
<li><a href="#">NEWS</a></li>
<li><a href="#">PRODUCTS</a></li>
<li><a href="#">SERVICES</a></li>
<li><a href="#">CLIENTS</a></li>
<li><a href="#">CASE STUDIES</a></li>
</ul>
</pre>
<p>【0】最前面设置全局字体</p>
<pre class="brush: css">
body {
  font-family: "Myriad Pro", Frutiger, "Lucida Grande",
"Lucida Sans", "Lucida Sans Unicode", Verdana, sans-serif;
  font-size: 1em;
}/*------*/
</pre>
<p>  <span id="more-267"></span><br />
【1】去掉去掉列表前面的符号，将空白和填充设置为0 &#8230;&#8230;</p>
<pre class="brush: css">
ul{
  /*因IE和Opera使用左空白控制列表缩进，而Firefox使用左填充，
所以先将margin和padding设置为0*/
  margin:0;
  padding:0;
  list-style:none;
}
</pre>
<p>【2】希望水平导航条宽800px，且背景是那种漂亮的渐变效果…</p>
<pre class="brush: css">
ul{
  margin:0;
  padding:0;
  list-style:none;
  width:800px;
  background:#FAA819 url(images/mainNavBg.gif) repeat-x;
  /*上面的背景图定位置时，完整的应是：repeat-x top left；省去了top left*/
}
</pre>
<p>【3】纵队变横队:)&#8230;</p>
<pre class="brush: css">
ul li{
  float:left;
}
</pre>
<p>【4】千万记得这招人又爱又恨的”浮动”，里面”浮动”，让外面也”浮动”:)&#8230;</p>
<pre class="brush: css">
ul{
  float:left;
}
</pre>
<p>【5】挨那么紧干嘛，分开点，分开点:)&#8230;</p>
<pre class="brush: css">
ul a{
  padding:0 1em;
  text-decoration:none;
  color:#fff;
}
</pre>
<p>【6】将链接按钮化，别忘记用display：block，并使用行高让文本垂直居中&#8230;</p>
<pre class="brush: css">
ul a{
  display:block;
  line-height:2em;
}
</pre>
<p>【7】各位听好了，我指向谁，谁就转过去，看看你背后的图案&#8230;</p>
<pre class="brush: css">
ul a:hover{
  background:#60c072 url(images/mainNavBg_hover.gif) repeat-x;
  color:#333;
}
</pre>
<p>【8】进一步美化，在导航条的每个链接间加入一条细分隔线(首个链接前不需要)&#8230;</p>
<pre class="brush: css">
ul a{
  background:url(images/divider.gif) repeat-y left top;
}
ul .first a{background:none;}

ul a:hover{
  background:#60c072 url(images/mainNavBg_hover.gif) repeat-x;
}
</pre>
<p>【9】最后一点，为了让Mac 上的IE5.2也能正确显示&#8230;</p>
<pre class="brush: css">
ul a{
  float:left;/*For IE5.2/Mac*/
}
</pre>
<p>就这样，一步步下来，一个漂亮的水平导航条以及翻转效果就出来了。<br />
为了规范，将代码稍微整理一下，如下所示：</p>
<pre class="brush: css">
body {
  font-family: "Myriad Pro", Frutiger, "Lucida Grande",
    "Lucida Sans", "Lucida Sans Unicode", Verdana, sans-serif;
  font-size: 1em;
}/*------*/

ul{
  margin:0;
  padding:0;
  float:left;
  list-style:none;
  width:800px;
  background:#FAA819 url(images/mainNavBg.gif)
  repeat-x /*其实省去了top left*/;
}

ul li{ float:left;/*【3】纵队变横队:) */}
ul a{
  padding:0 1.5em;/*使用左右padding，每个按钮的宽度将由文本数量决定*/
  text-decoration:none;
  display:block;
  line-height:2em;
  color:#fff;
  float:left;/*For IE5.2(Mac)*/
  background:url(images/divider.gif)
    repeat-y left top;/*分隔线*/
}
ul .first a{background:none;}/*首个左边不需要分隔线*/
ul a:hover{
  background:#60c072 url(images/mainNavBg_hover.gif)
    repeat-x;/*漂亮的翻转*/
  color:#333;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/css_note_8_creating_a_horizontal_nav_bar.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>css学习笔记 7:在导航条中突出显示当前页面</title>
		<link>http://www.gracepress.cn/uma/css_note_7_highlighting_the_current_page_in_a_nav_bar.html</link>
		<comments>http://www.gracepress.cn/uma/css_note_7_highlighting_the_current_page_in_a_nav_bar.html#comments</comments>
		<pubDate>Tue, 30 Aug 2011 20:18:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[导航]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=263</guid>
		<description><![CDATA[参考《精通CSS 高级Web标准解决方案》第5章。 用CSS的方法,在导航条中突出显示当前页面，这种办法的核心是：先在每个页面的主体元素添加一个类或ID，然后在导航条的每个项中添加一个相应的类或ID，接下来，就可以使用主体的ID和列表的ID的唯一组合实现突显当前页面。 <a href="http://www.gracepress.cn/uma/css_note_7_highlighting_the_current_page_in_a_nav_bar.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>利用上回<a href="http://www.gracepress.cn/uma/css_note_6_creating_a_vertical_nav_bar.html">垂直导航条</a>的的列表:</p>
<pre class="brush: html">
<body id="home">
<ul id="mainNav">
<li class="home first"><a href="#">Home</a></li>
<li class="about"><a href="#">About</a></li>
<li class="news"><a href="#">News</a></li>
<li class="contact"><a href="#">Contact</a></li>
</ul>

</body>
</pre>
<p>通过寻找以下ID和类名的组合，就会突出显示当前页面 &#8230;&#8230;  <span id="more-263"></span></p>
<pre class="brush: css">
#home #mainNav .home a,
#about #mainNav .about a,
#news #mainNav .news a,
#contact #mainNav .contact a{
  background-position:right bottom;
  color:#fff;
  cursor:default;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/css_note_7_highlighting_the_current_page_in_a_nav_bar.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>css学习笔记 6:垂直导航条</title>
		<link>http://www.gracepress.cn/uma/css_note_6_creating_a_vertical_nav_bar.html</link>
		<comments>http://www.gracepress.cn/uma/css_note_6_creating_a_vertical_nav_bar.html#comments</comments>
		<pubDate>Mon, 29 Aug 2011 11:41:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[导航]]></category>

		<guid isPermaLink="false">http://www.gracepress.cn/uma/?p=252</guid>
		<description><![CDATA[参考《精通CSS 高级Web标准解决方案》第5章。 来看看漂亮的垂直导航条是怎么生成的:) <a href="http://www.gracepress.cn/uma/css_note_6_creating_a_vertical_nav_bar.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>先写出HTML结构:</p>
<pre class="brush: html">
<ul>
<li class="first"><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Contact</a></li>
</ul>
</pre>
<p>【1】去掉去掉列表前面的符号并且将空白和填充设置为0 …</p>
<pre class="brush: css">
ul{
  /*因IE和Opera使用左空白控制列表缩进,而Firefox使用左填充,
所以先将margin和padding设置为0*/
  margin:0;
  padding:0;
  list-style-type:none;
}
</pre>
<p>【2】将链接按钮化，所以需要将锚的display属性设置为block，并指定按钮的宽及高 <span id="more-252"></span></p>
<pre class="brush: css">
ul a{
  display:block;
  width:200px;
  height:40px;
  line-height:40px;
  color:#000;
  text-decoration:none;
}
</pre>
<p>【3】用Pixy翻转技术,实现按钮翻转效果<br />
这种技术就是将按钮的正常状态和鼠标停留状态背景图置于一张图,然后采用不同的对齐方法:</p>
<pre class="brush: css">
ul a{
  background:#94B8E9 url(images/pixy-rollover.gif)
 no-repeat left center;
  text-indent:50px;/*露出背景图左边的箭头*/
}
a:hover{
  background-position: right center;
  color:#fff;
}
</pre>
<p>【4】取消相邻方框间的粗边线<br />
因为背景囫有边框,当两个按钮垂直排列时,就会出现双重边线。解决的办法是将高度减少1px,并将图片用下对齐：</p>
<pre class="brush: css">
ul a{
  height:39px;
  line-height:39px;
  background-position: left bottom;
}
a:hover{background-position: right bottom;}
/*但同时最顶部就没有边线了,需要将它补上 -----*/
li.first a{height:40px;line-height:40px;}
/*------*/
</pre>
<p>【5】进一步美化，如字体的样式及大小，通常将这一步放置于最前面</p>
<pre class="brush: css">
body {
  font-family: "Myriad Pro", Frutiger, "Lucida Grande",
"Lucida Sans", "Lucida Sans Unicode", Verdana, sans-serif;
  font-size: 1.4em;
}/*------*/
</pre>
<p>就这样,一步步下来,一个漂亮的垂直导航条以及翻转效果就出来了。<br />
最后，将代码稍微整理一下，如下所示：</p>
<pre class="brush: css">
body {
  font-family: "Myriad Pro", Frutiger, "Lucida Grande",
"Lucida Sans", "Lucida Sans Unicode", Verdana, sans-serif;
  font-size: 1.4em;
}
ul{
  /*因IE和Opera使用左空白控制列表缩进,而Firefox使用左填充,
所以先将margin和padding设置为0*/
  margin:0;
  padding:0;
  list-style-type:none;
}
ul a{
  display:block;
  width:200px;
  height:39px;
  line-height:39px;
  color:#000;
  text-decoration:none;
  background:#94B8E9 url(images/pixy-rollover.gif)
  no-repeat left bottom;
  text-indent:50px;/*露出背景图左边的箭头*/
}
li.first a{height:40px;line-height:40px;}
a:hover{
  background-position: right bottom;color:#fff;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepress.cn/uma/css_note_6_creating_a_vertical_nav_bar.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

