<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
	<channel>
		<title>金麦网络</title>
		<link>http://www.kingmx.com</link>
		<copyright>Copyright (C) 2006 金麦网络-Kingmx.com All Rights Reserved.</copyright>
		<item>
			<title>CSS样式编辑技巧</title>
			<link>http://www.kingmx.com/article.php?id=15184</link>
			<pubDate>2007-4-14</pubDate>
			<description><![CDATA[
在使用CSS建站时，您肯定遇到过形形色色的布局问题，最后可能被搞得焦头烂额。本文的目的是让您的设计过程更为容易，当您遇到困难时为您提供快速参考。

有疑问，先验证

在调试时，先对您的代码进行验证往往能省去不少麻烦事。格式不正确的XHTML/CSS 会导致许多布局上的错误。在其他浏览器中进行测试之前，请先在最先进的浏览器中撰写和测试CSS代码，而不是相反。

如果您在破旧的浏览器中编写和测试，你的代码就不得不依赖那个破旧浏览器的糟糕的显示，然后在符合标准的浏览器中进行测试，看到显示结果“不正常”时，你会很沮丧的。相反，您应该先将您的代码完善，然后再设法为较低级的浏览器打算。这样从一开始您的代码就是符合标准的，你不必再为支持其他浏览器而劳心费神。当然了，目前遵从标准的浏览器无疑就是 Mozilla, Safari 或 Opera。

确保您想要的效果真的存在

许多特定的浏览器专有的CSS扩展在正式标准中并不存在。 如果您对 filter(滤镜) 或滚动条指定样式，您用的就是私有代码，除了IE之外，在别的浏览器中毫无作用。如果验证器告诉您代码没有定义，极有可能您用了私有样式，别指望在不同的浏览器中得到一致的效果。

如果布局中一定要用浮动对象，别忘了适时使用清除（clear）属性。

浮动元素似易实难，而且难以驾驭。如果您发现浮动对象伸出了容器的边界，或者不像您所期望的那样显示，请检查您的期望是否正确。关于这个问题请看Eric Meyer 的教程

边距的合并：可用padding 或 border 来避免。

您可能被多余的(或者想要却不出现的)空白搞得焦头烂额。如果您用了 margins，边距的合并可能就是问题的根源。 Andy Budd 对此的解释也许能为你解惑。

避免将 padding/border 和固定宽度同时应用到同一元素。

IE5 错误的区块模型是罪魁祸首，是它把事情弄得乱七八糟。虽然有补救方案，不过最好是绕过这个问题，当子元素的宽度固定时，为其父元素指定padding。

避免IE下未指定样式内容的闪烁。

如果您用 @import 来输入外部样式表，早晚会发现IE有“闪烁”的毛病。在应用CSS样式之前，未格式化的HTML文本会短暂地出现。这是可以避免的.

别指望 min-width 在IE中有用。

IE不支持它，但是它将 width 当作 min-width，所以通过一些 IE 的过滤技巧(filtering)，可以实现同样的最终效果。

走投无路时，试一试减少宽度

由于舍入误差，有时 50% 加上 50% 等于 100.1%，破坏某些浏览器中的布局。不妨试试将 50% 减到 49%，甚至 49.9%。

IE 中显示不正常？

可能是 Peekaboo 臭虫在作怪，尤其是当鼠标经过超链接时能显示正常。修补方法见Position is Everything。

如果使用了锚点，在应用超链接样式时要特别小心。

如果您在代码中使用了传统的锚点(＜a name="anchor"＞)，您会注意到 :hover 和 :active伪类也会作用于它。要避免这种情形，你可以使用 id，或者使用鲜为人知的语法: :link:hover, :link:active

记住“LoVe/HAte”（爱/恨）链接规则

要以下面的顺序指定超链接伪类：Link, Visited, Hover, Acitve。任何其他顺序都不妥当。假如用了 :focus，次序应为 LVHFA(“Lord Vader's Handle Formerly Anakin”，Matt Haughey这样建议)。

请记住“TRouBLED”（麻烦的）边框。

边框(border)、边距(margin)和补白(padding)的简写次序为：顺时针方向从上开始，即 Top, Right, Bottom, Left。比如 margin: 0 1px 3px 5px;表示上边距为零，右边距为1px，依此类推。

非零值要指明单位。

在用CSS指定字体、边距或大小时，必须指明所用的单位（唯一的例外是 line-height，很奇怪，它不需要单位）。某些浏览器对未指明单位的处理方法不足为凭。零就是零，不管是 px 还是 em。其他的非零值都要明确指定单位。例如： padding: 0 2px 0 1em;

测试不同的字体大小。

像 Mozilla 和 Opera 这样的高级浏览器都允许你改变字体大小，不管你用什么字体单位。某些用户的默认字体大小肯定和你的不同，尽最大努力去满足他们。

测试时用嵌入式样式，发布时再改为外部输入。

将样式表嵌入在你的 HTML 源代码中，在测试时可以消除许多缓存引起的错误，尤其是某些 Mac 下的浏览器。但在发布前，一定要记住将样式表移到外部文件，用 @import 或 引入。

加上明显的边框有助于布局调试。

像 div {border: solid 1px #f00;} 之类的全局规则可以暂时为你查出布局问题。为特定的元素加上边框可帮您找到难以发觉的重叠或空白问题。

图片路径不要用单引号。

当设置背景图片时，要坚持用双引号。尽管看起来好像多此一举，但是如果不这么做，IE5/Mac 会噎住。

不要为将来的样式表（比如手持式设备或打印用样式表）“占位子”。

Mac IE5 对空的样式表比较感冒，会增加页面的装入时间。建议样式表中至少应该有一条规则（哪怕是注释也好），免得 MacIE噎住。

还有一些建议虽然不针对某些功能，但是在开发过程中值得注意：

好好组织您的CSS文件

恰当地成块注释CSS，将相似的CSS选择符编为一组，养成一致的命名习惯和空白格式（为跨平台考虑，建议用空白字符而不是tab。）以及适当的次序。

以功能（而不是外观）为类和ID命名

假如您创建了一个 .smallblue 类，后来打算将文字改大，颜色变为红色，这个类名就不再有任何意义了。相反，您可以用更有描述性的名字如 .copyright 和 .pullquote。

组合选择符

保持CSS短小对减少下载时间非常重要。请尽量为选择符分组、 利用继承(inheritance)以及使用简写(shorthand)来减少冗余。

使用图片替换技术时要考虑亲和力

已经发现传统的FIR在屏幕阅读器，以及关闭图片显示[的浏览器]中会出问题。 对此有其他解决办法，要根据具体情况，慎重使用。
]]></description>
		</item>
		<item>
			<title>CSS表单form布局经典一例</title>
			<link>http://www.kingmx.com/article.php?id=15117</link>
			<pubDate>2007-3-13</pubDate>
			<description><![CDATA[
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;52css.com&lt;/title&gt;
&lt;style type="text/css"&gt;
label{
float: left;
width: 80px;
}
form{margin:0px}
input{
width: 180px;
border:1px solid #808080
}

textarea{
width: 250px;
height: 150px;
}

#sbutton{
margin-left: 80px;
margin-top: 5px;
width:80px;
}

br{
clear: left;
}

&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action="" method="post"&gt;

&lt;label for="user"&gt;姓名:&lt;/label&gt;
&lt;input type="text" id=user name="user" value="" /&gt;&lt;br /&gt;

&lt;label for="email"&gt;邮件:&lt;/label&gt;
&lt;input type="text" id=email name="email" value="" /&gt;&lt;br /&gt;

&lt;label for="comment"&gt;备注:&lt;/label&gt;
&lt;textarea id=comment name="comment"&gt;
&lt;/textarea&gt;
&lt;br /&gt;

&lt;input type="submit" id="sbutton" value="确定" /&gt;&lt;br /&gt;

&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
]]></description>
		</item>
		<item>
			<title>CSS floats创建三列式网页布局</title>
			<link>http://www.kingmx.com/article.php?id=15116</link>
			<pubDate>2007-3-13</pubDate>
			<description><![CDATA[
三栏布局是目前最常见的网页布局，主要页内容放在中间一栏，边上的两栏放置导航链接之类的内容。基本布局一般是标题之下放置三栏，三栏占据整个页面的宽度，最后在页的底端放置页脚，页脚也占据整个页面宽度。
&nbsp; 
绝大多数网页设计者都熟悉传统的网页设计技术，用这些技术可以生成带有表格、创建固定宽度布局或者“液态”（它可以根据用户浏览器窗口宽度自动伸缩）布局的网页。

现在，我们都开始抛弃基于表格的布局技术，许多网络设计者正在从XHTML标记和CSS格式这一新范例中寻找创建三栏布局的方法。用绝对定位的方法从CSS中得到固定宽度的布局并不困难；但是得到液态布局就有点困难了。因此，本文介绍一种用CSS的float和clear属性来获得三栏液态布局的方法。

基本方法 

基本的布局包含五个div，即标题、页脚和三栏。标题和页脚占据整个页宽。左栏div和右栏div都是固定宽度的，并且用float属性来把它们挤压到浏览器窗口的左侧和右侧。中栏实际上占据了整个页宽，中栏的内容在左、右两栏之间“流淌”。由于中栏div的宽度并不固定，因此它可以根据浏览器窗口的改变进行必要的伸缩。中栏div的左侧和右侧的填充（padding）属性保证内容安排在一个整齐的栏中，甚至当它伸展到边栏（左栏或者右栏）的底端也是这样。

三列式网页布局的一个例子

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;52css.com&lt;/title&gt;
&lt;style type="text/css"&gt;
body {
&nbsp;&nbsp;&nbsp; margin: 0px;
&nbsp;&nbsp;&nbsp; padding: 0px;
}
div#header {
&nbsp;&nbsp;&nbsp; clear: both;
&nbsp;&nbsp;&nbsp; height: 50px;
&nbsp;&nbsp;&nbsp; background-color: aqua;
&nbsp;&nbsp;&nbsp; padding: 1px;
}
div#left {
&nbsp;&nbsp;&nbsp; float: left;
&nbsp;&nbsp;&nbsp; width: 150px;
&nbsp;&nbsp;&nbsp; background-color: red;
}
div#right {
&nbsp;&nbsp;&nbsp; float: right;
&nbsp;&nbsp;&nbsp; width: 150px;
&nbsp;&nbsp;&nbsp; background-color: green;
}
div#middle {
&nbsp;&nbsp;&nbsp; padding: 0px 160px 5px 160px;
&nbsp;&nbsp;&nbsp; margin: 0px;
&nbsp;&nbsp;&nbsp; background-color: silver;
&nbsp;&nbsp;&nbsp; height:300px;
}
div#footer {
&nbsp;&nbsp;&nbsp; clear: both;
&nbsp;&nbsp;&nbsp; background-color: yellow;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id="header"&gt;
&nbsp;&nbsp;&nbsp; &lt;h1&gt;52css.com&lt;/h1&gt;
&lt;/div&gt;
&lt;div id="left"&gt;
&nbsp;&nbsp;&nbsp; Port side text...
&lt;/div&gt;
&lt;div id="right"&gt;
&nbsp;&nbsp;&nbsp; Starboard side text...
&lt;/div&gt;
&lt;div id="middle"&gt;
&nbsp;&nbsp;&nbsp; Middle column text...
&lt;/div&gt;
&lt;div id="footer"&gt;
&nbsp;&nbsp;&nbsp; Footer text...52css.com
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

请看看用本文所介绍的技术进行三栏布局的例子。这个例子用鲜艳的颜色来区分布局的各个div。

下面是XHTML代码：

&lt;body&gt;
&lt;div id="header"&gt;
&nbsp;&nbsp;&nbsp; &lt;h1&gt;52css.com&lt;/h1&gt;
&lt;/div&gt;
&lt;div id="left"&gt;
&nbsp;&nbsp;&nbsp; Port side text...
&lt;/div&gt;
&lt;div id="right"&gt;
&nbsp;&nbsp;&nbsp; Starboard side text...
&lt;/div&gt;
&lt;div id="middle"&gt;
&nbsp;&nbsp;&nbsp; Middle column text...
&lt;/div&gt;
&lt;div id="footer"&gt;
&nbsp;&nbsp;&nbsp; Footer text...52css.com
&lt;/div&gt;
&lt;/body&gt;

下面是CSS代码：

body {
&nbsp;&nbsp;&nbsp; margin: 0px;
&nbsp;&nbsp;&nbsp; padding: 0px;
}
div#header {
&nbsp;&nbsp;&nbsp; clear: both;
&nbsp;&nbsp;&nbsp; height: 50px;
&nbsp;&nbsp;&nbsp; background-color: aqua;
&nbsp;&nbsp;&nbsp; padding: 1px;
}
div#left {
&nbsp;&nbsp;&nbsp; float: left;
&nbsp;&nbsp;&nbsp; width: 150px;
&nbsp;&nbsp;&nbsp; background-color: red;
}
div#right {
&nbsp;&nbsp;&nbsp; float: right;
&nbsp;&nbsp;&nbsp; width: 150px;
&nbsp;&nbsp;&nbsp; background-color: green;
}
div#middle {
&nbsp;&nbsp;&nbsp; padding: 0px 160px 5px 160px;
&nbsp;&nbsp;&nbsp; margin: 0px;
&nbsp;&nbsp;&nbsp; background-color: silver;
&nbsp;&nbsp;&nbsp; height:300px;
}
div#footer {
&nbsp;&nbsp;&nbsp; clear: both;
&nbsp;&nbsp;&nbsp; background-color: yellow;
}

代码说明 

HTML代码中各部分出现的顺序是非常重要的。左栏和右栏div必须在中栏之前出现。这样才可以让这两个边栏浮动到它们的位置上（屏幕两侧），并让中栏的内容将“流”入它们之间的空间。如果浏览器在一个或者两个边栏div之前先发现中栏，那么中栏将占据屏幕的一侧或者两侧，这样浮动的部分就会跑到中栏的下面而不是中栏的旁边了。

div#header和div#footer样式（style）中的clear:both申明用来确保这浮动部分不会占据标题和页脚的空间。div#header样式中的padding:1px申明用来消除页头背景色中的异常边，如果padding设置为零，那么在Netscape浏览器中就会看到这个异常。

div#left样式中的float:left申明是用来把左栏挤压到左侧。width:150px申明用来设置栏的固定宽度，不过你也可以把它的宽度设置为其它具体值。类似的，div#right样式中的float:right申明用来把右栏div挤压到右侧。在本例中，float把左栏和右栏完全挤压到浏览器窗口的左边缘和右边缘。然而，如果这些div被其它div包含，那么float将会把它们挤压到包含它们的div的边缘。

在div#middle样式中，clear申明允许中栏的内容“流淌”在两个边栏之间。padding:0px 160px 5px 160px申明设置了到左栏和右栏的填充，这样允许150象素宽度的栏div，在加上10象素的间距。

这个例子比较粗糙、简单，但很好的演示了用浮动div来创建三栏液态布局的边栏这一基本技术。 
]]></description>
		</item>
		<item>
			<title>Div+CSS创建固定宽度布局</title>
			<link>http://www.kingmx.com/article.php?id=15115</link>
			<pubDate>2007-3-13</pubDate>
			<description><![CDATA[
用 XHTML 和 CSS 实现两列或三列页面布局的各个方面。到目前为止，所有例子都使用流式布局（也就是布局会自动扩展和适应浏览器窗口的宽度）。现在是时候考虑另外一种主要的页面布局方法了，这种布局方法是固定宽度布局。

很多 Web 构建人员倾向于使用固定宽度的布局进行页面设计，因为它们能生成精确且可预知的结果。这种方法与打印布局非常接近，对于设计人员和访问者来说都是一个很重要的舒适因素；另外，对于包含很多大图片和其它元素的内容，由于它们在流式布局中不能很好地表现，因此固定宽度布局也是处理这种内容的最好方法。

从table 到 div

近年来，设计人员都使用表（table）来创建固定宽度的布局。表的列和行是对设计人员的布局表格（grid）的一种可行的模拟，所以一点也不奇怪设计人员为什么采用 HTML 表来完成页面布局。

然而，基于表的布局有一个明显的问题。除了语义上不适合用表来进行布局之外，产生的代码也很混乱，难于阅读，甚至难于维护——尤其是在包含合并的表单元格（cell）和嵌套表时。

使用 div 进行页面布局效果要好得多。除了这是推荐使用的最佳方法之外，代码的装载速度会更快，也更易于处理。

表及其单元格的格式（formatting）属性被借用到固定宽度布局中，因为指定这些元素的尺寸相当简单。其实通过 div 可以做到同样的事情，只要确定 div 精确的维数并使用绝对和相对定位将这些 div 定位到页面上即可。

一个典型的固定宽度的布局，该布局由顶部的一个标题，一个三列内容的区域（主内容列，每侧有一个工具条），和页面底部的一个页脚所组成。所有元素的宽度都是固定的；在浏览器窗口发布变化时它们的尺寸都不会变化。

以下是XHTML代码。

&lt;body&gt; 
&lt;div id="head"&gt; 
&nbsp;&nbsp;&nbsp; &lt;h1&gt;header&lt;/h1&gt; 
&lt;/div&gt; 
&lt;div id="columns"&gt; 
&nbsp;&nbsp;&nbsp; &lt;div id="side1"&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h3&gt;side1&lt;/h3&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Let me not to the marriage of true minds&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Admit impediments; love is not love&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Which alters when it alteration finds&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Or bends with the remover to remove&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Oh, no, it is an ever fixed mark&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt; 
&nbsp;&nbsp;&nbsp; &lt;/div&gt; 
&nbsp;&nbsp;&nbsp; &lt;div id="content"&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h2&gt;main content&lt;/h2&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;That looks on tempests ... his height be taken.&lt;/p&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;But bears it out ... alteration finds.&lt;/p&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;Whose worth's unknown, ... the remover to remove.&lt;/p&gt; 
&nbsp;&nbsp;&nbsp; &lt;/div&gt; 
&nbsp;&nbsp;&nbsp; &lt;div id="side2"&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h3&gt;side2&lt;/h3&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Let me not to the marriage of true minds&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Admit impediments; love is not love&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;Which alters when it alteration finds&lt;/li&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt; 
&nbsp;&nbsp;&nbsp; &lt;/div&gt; 
&lt;/div&gt; 
&lt;div id="foot"&gt; 
&nbsp;&nbsp;&nbsp; &lt;h3&gt;footer&lt;/h3&gt; 
&nbsp;&nbsp;&nbsp; &lt;p&gt;Or bends with ... height be taken. &lt;/p&gt; 
&lt;/div&gt; 
&lt;/body&gt;

以下是将页面设计为固定宽度布局的 CSS 代码。

body { 
&nbsp;&nbsp;&nbsp; font-family: Verdana, Arial, Helvetica, sans-serif; 
&nbsp;&nbsp;&nbsp; font-size: 12px; 
&nbsp;&nbsp;&nbsp; margin: 0px; 
&nbsp;&nbsp;&nbsp; padding: 0px; 
} 
h2,h3 { 
&nbsp;&nbsp;&nbsp; margin-top: 0px; 
&nbsp;&nbsp;&nbsp; padding-top: 0px; 
} 
div#head { 
&nbsp;&nbsp;&nbsp; position: absolute; 
&nbsp;&nbsp;&nbsp; width:750px; 
&nbsp;&nbsp;&nbsp; height:100px; 
&nbsp;&nbsp;&nbsp; left:0px; 
&nbsp;&nbsp;&nbsp; top: 0px; 
&nbsp;&nbsp;&nbsp; background-color: #FFFF66; 
} 
div#columns { 
&nbsp;&nbsp;&nbsp; position: relative; 
&nbsp;&nbsp;&nbsp; width: 750px; 
&nbsp;&nbsp;&nbsp; top: 100px; 
&nbsp;&nbsp;&nbsp; background-color: #CCCCCC; 
} 
div#side1 { 
&nbsp;&nbsp;&nbsp; position:absolute; 
&nbsp;&nbsp;&nbsp; width:150px; 
&nbsp;&nbsp;&nbsp; top: 0px; 
&nbsp;&nbsp;&nbsp; left:0px; 
&nbsp;&nbsp;&nbsp; background-color: #FF6666; 
} 
div#content { 
&nbsp;&nbsp;&nbsp; position: relative; 
&nbsp;&nbsp;&nbsp; width: 450px; 
&nbsp;&nbsp;&nbsp; top: 0px; 
&nbsp;&nbsp;&nbsp; left: 150px; 
&nbsp;&nbsp;&nbsp; background-color: #999999; 
} 
div#side2 { 
&nbsp;&nbsp;&nbsp; position:absolute; 
&nbsp;&nbsp;&nbsp; width:150px; 
&nbsp;&nbsp;&nbsp; top: 0px; 
&nbsp;&nbsp;&nbsp; left: 600px; 
&nbsp;&nbsp;&nbsp; background-color: #00FF66; 
} 
div#foot { 
&nbsp;&nbsp;&nbsp; position: relative; 
&nbsp;&nbsp;&nbsp; width: 750px; 
&nbsp;&nbsp;&nbsp; clear: both; 
&nbsp;&nbsp;&nbsp; margin-top: 100px; 
&nbsp;&nbsp;&nbsp; background-color: #99FFFF; 
}

分解代码

这段标记并不是特别地值得注意——只是在每个主要页面元素的外面（标题、页脚、工具条和主内容）包围着 div。每个 div 有一个 id，相应的 CSS 样式可以使用这个 id 引用它。只有一个额外的 div（div id="columns"）包围着三列内容区域。在 Internet Explorer 中将页脚放在三列中最长一列的下面是必要的。

像平时用法一样，CSS 代码完成所有的重要任务。首先它完成一些家务管理。Body样式将页面的边距设为零，h2, h3样式将默认间距设为零。否则的话，这该布局周围就会有一个边距，而在某些浏览器（比如 Netscape 和 Mozilla）中标题将会在在主内容和页脚的上面产生一个空白区域。

样式div#head为标题 div 设置一个明确的高度和宽度。标题使用 position: absolute, top: 0px和 left: 0px规则显式地定位在页面的左上角。规则 position: absolute是非常重要的，因为定位属性（top、left、right、bottom）在常规（静态）定位时会被忽略。然而要记住，任何绝对定位的元素都会从常规的页面流中被移除掉，而属于页面流的元素将会像绝对定位元素不存在一样被定位到页面上。

样式 div#columns控制 div 的格式，使其充当三个列的容器。它使用 position: relative创建属于常规页面流的一个元素（它会根据其内容进行扩展和适应，因而影响其它元素的定位），但是它将从其常规位置偏移。规则 top: 100px提供一个偏移量，将列容器向下推，使其覆盖标题。

规则 div#side1控制第一个工具条列的样式。它设置该列的宽度（width: 150px）并使用绝对定位将该列放置在其父元素的左上角。父元素是该列的 div，如果该元素使用相对于 body 元素的相对定位，那么它将解释 top: 0px规则而非你所期望的 100px设置。规则 div#side2以同样的方式设置左工具条所用的列。div#side1和 div#side2唯一不同之处是背景色和 left: 600px规则，后者将该列定位在其它两列的右边。

样式 div#content中的主内容所用的列的样式控制与其它两列的样式控制相似。它显式地设计宽度（width: 450px）并使用 left: 150px和 top: 0px规则在其父元素（包围着三个列的 div）内定位该列。主要的不同之处在于 position: relative规则。我们使用相对定位使主内容列可以影响其父元素（包围着三个列的 div）的尺寸并因此影响页脚元素的尺寸。

样式 div#foot设置页脚的宽度（width: 750px），该样式还包含一个 clear: both规则，该规则保证它接在其它元素下面，而不是旁边。由于它使用相对定位，所以它在页面上的位置是由其它元素的流所决定的，在这里具体是由包围着三个列的 div 所决定的。规则 margin-top: 100px是一个很重要的细节，它防止页脚被上面的列所覆盖。这些列在页面流中从它们的常规位置偏移，从而为绝对定位的标题以及需要相应偏移的页脚腾出空间。

在前面的基础上添加了一个标签（&lt;div id="wrapper"&gt;）和一个相应的 CSS 样式后的结果。下面是新添加的 CSS 样式的代码：

div#wrapper { 
&nbsp;&nbsp;&nbsp; position:relative; 
&nbsp;&nbsp;&nbsp; margin-left:auto; 
&nbsp;&nbsp;&nbsp; margin-right:auto; 
&nbsp;&nbsp;&nbsp; top: 20px; 
&nbsp;&nbsp;&nbsp; width:750px; 
&nbsp;&nbsp;&nbsp; background-color: #CCCCCC; 
}

这种方法之所以能用，是因为所有的布局 div 都是相对于它们的父元素相对定位的。
]]></description>
		</item>
		<item>
			<title>使用CSS缩写给你的网站加速（下）</title>
			<link>http://www.kingmx.com/article.php?id=15114</link>
			<pubDate>2007-3-13</pubDate>
			<description><![CDATA[关于作者
　　Greg Rewis 是 Macromedia Web 技术最主要的宣传者。 Greg 是 Macromedia 的公众代言人，代言 Web 上发行的 Macromedia 软件套件和 Web 应用程序开发服务器，同时他又代表公司成千上万顾客的利益，与产品开发部门进行沟通。Greg 十分了解 Macromedia 客户的想法，　因为每年他有 200 天都“在路上”，他与客户交谈，在商品展览会、研讨会和各种会议中进行产品展示，组织高级培训会议专门介绍 Macromedia 生产线。Greg 总是在世界各地飞来飞去，但工作之余他在 Arizona 沙漠中享受生活，打高尔夫球，教他的两个儿子“在游泳池中放松身心”的艺术。

　　原文：mezzoblue CSS Crib Sheet

　　CSS 锦囊

　　在使用CSS建站时，您肯定遇到过形形色色的布局问题，最后可能被搞得焦头烂额。本文的目的是让您的设计过程更为容易，当您遇到困难时为您提供快速参考。

　　有疑问，先验证

　　在调试时，先对您的代码进行验证往往能省去不少麻烦事。格式不正确的XHTML/CSS 会导致许多布局上的错误。

　　在其他浏览器中进行测试之前，请先在最先进的浏览器中撰写和测试CSS代码，而不是相反。

　　如果您在破旧的浏览器中编写和测试，你的代码就不得不依赖那个破旧浏览器的糟糕的显示，然后在符合标准的浏览器中进行测试，看到显示结果“不正常”时，你会很沮丧的。相反，您应该先将您的代码完善，然后再设法为较低级的浏览器打算。这样从一开始您的代码就是符合标准的，你不必再为支持其他浏览器而劳心费神。当然了，目前遵从标准的浏览器无疑就是 Mozilla, Safari 或 Opera。

　　确保您想要的效果真的存在

　　许多特定的浏览器专有的CSS扩展在正式标准中并不存在。 如果您对 filter(滤镜) 或滚动条指定样式，您用的就是私有代码，除了IE之外，在别的浏览器中毫无作用。如果验证器告诉您代码没有定义，极有可能您用了私有样式，别指望在不同的浏览器中得到一致的效果。

　　如果布局中一定要用浮动对象，别忘了适时使用清除(clear)属性。

　　浮动元素似易实难，而且难以驾驭。如果您发现浮动对象伸出了容器的边界，或者不像您所期望的那样显示，请检查您的期望是否正确。关于这个问题请看Eric Meyer 的教程

　　边距的合并：可用padding 或 border 来避免。

　　您可能被多余的(或者想要却不出现的)空白搞得焦头烂额。如果您用了 margins，边距的合并可能就是问题的根源。 Andy Budd 对此的解释也许能为你解惑。

　　避免将 padding/border 和固定宽度同时应用到同一元素。

　　IE5 错误的区块模型是罪魁祸首，是它把事情弄得乱七八糟。虽然有补救方案，不过最好是绕过这个问题，当子元素的宽度固定时，为其父元素指定padding。

　　避免IE下未指定样式内容的闪烁。

　　如果您用 @import 来输入外部样式表，早晚会发现IE有“闪烁”的毛病。在应用CSS样式之前，未格式化的HTML文本会短暂地出现。这是可以避免的.

　　别指望 min-width 在IE中有用。

　　IE不支持它，但是它将 width 当作 min-width，所以通过一些 IE 的过滤技巧(filtering)，可以实现同样的最终效果。

　　走投无路时，试一试减少宽度

　　由于舍入误差，有时 50% 加上 50% 等于 100.1%，破坏某些浏览器中的布局。不妨试试将 50% 减到 49%，甚至 49.9%。

　　IE 中显示不正常?

　　可能是 Peekaboo 臭虫在作怪，尤其是当鼠标经过超链接时能显示正常。修补方法见Position is Everything。

　　如果使用了锚点，在应用超链接样式时要特别小心。

　　如果您在代码中使用了传统的锚点()，您会注意到 :hover 和 :active伪类也会作用于它。要避免这种情形，你可以使用 id，或者使用鲜为人知的语法: :link:hover, :link:active

　　记住“LoVe/HAte”(爱/恨)链接规则

　　要以下面的顺序指定超链接伪类：Link, Visited, Hover, Acitve。任何其他顺序都不妥当。假如用了 :focus，次序应为 LVHFA(“Lord Vader's Handle Formerly Anakin”，Matt Haughey这样建议)。

　　请记住“TRouBLED”(麻烦的)边框。

　　边框(border)、边距(margin)和补白(padding)的简写次序为：顺时针方向从上开始，即 Top, Right, Bottom, Left。比如 margin: 0 1px 3px 5px;表示上边距为零，右边距为1px，依此类推。

　　非零值要指明单位。

　　在用CSS指定字体、边距或大小时，必须指明所用的单位(唯一的例外是 line-height，很奇怪，它不需要单位)。某些浏览器对未指明单位的处理方法不足为凭。零就是零，不管是 px 还是 em。其他的非零值都要明确指定单位。例如： padding: 0 2px 0 1em;

　　测试不同的字体大小。

　　像 Mozilla 和 Opera 这样的高级浏览器都允许你改变字体大小，不管你用什么字体单位。某些用户的默认字体大小肯定和你的不同，尽最大努力去满足他们。

　　测试时用嵌入式样式，发布时再改为外部输入。

　　将样式表嵌入在你的 HTML 源代码中，在测试时可以消除许多缓存引起的错误，尤其是某些 Mac 下的浏览器。但在发布前，一定要记住将样式表移到外部文件，用 @import 或 引入。

　　加上明显的边框有助于布局调试。

　　像 div {border: solid 1px #f00;} 之类的全局规则可以暂时为你查出布局问题。为特定的元素加上边框可帮您找到难以发觉的重叠或空白问题。

　　图片路径不要用单引号。

　　当设置背景图片时，要坚持用双引号。尽管看起来好像多此一举，但是如果不这么做，IE5/Mac 会噎住。

　　不要为将来的样式表(比如手持式设备或打印用样式表)“占位子”。

　　Mac IE5 对空的样式表比较感冒，会增加页面的装入时间。建议样式表中至少应该有一条规则(哪怕是注释也好)，免得 MacIE噎住。
]]></description>
		</item>
		<item>
			<title>使用CSS缩写给你的网站加速（上）</title>
			<link>http://www.kingmx.com/article.php?id=15113</link>
			<pubDate>2007-3-13</pubDate>
			<description><![CDATA[关于CSS
　　用CSS缩写给你的网站加速

　　Web网站可用性的关键指标是速度，更确切地说，是页面能以多快的速度出现在访问者的浏览器窗口里。影响速度的因素有很多种，包括Web服务器的速度、访问者的Internet连接情况，以及浏览器必须下载的文件大小。尽管你无法控制服务器和连接的速度，但是你可以控制构成网站Web页面的文件大小。

　　为了让网站能够更快，Web的建设者都会按常规地压缩和优化网站上的每一个图像文件，这常常使得为了将文件的大小减少几个百分点而牺牲了图像的质量。由于CSS样式表是纯文本文件，和图像相比相对较小，所以Web建设者很少考虑采取措施减少其CSS样式表文件的大小。但是，通过使用CSS缩写以及其他的一些简单技巧，你可以在很大程度上减少样式表的大小。在我对自己样式表的一次非正式的特别测试中，我把文件的大小降低了大约25-50%。

　　用CSS缩写给你的网站加速

　　Web网站可用性的关键指标是速度，更确切地说，是页面能以多快的速度出现在访问者的浏览器窗口里。影响速度的因素有很多种，包括Web服务器的速度、访问者的Internet连接情况，以及浏览器必须下载的文件大小。尽管你无法控制服务器和连接的速度，但是你可以控制构成网站Web页面的文件大小。

　　为了让网站能够更快，Web的建设者都会按常规地压缩和优化网站上的每一个图像文件，这常常使得为了将文件的大小减少几个百分点而牺牲了图像的质量。由于CSS样式表是纯文本文件，和图像相比相对较小，所以Web建设者很少考虑采取措施减少其CSS样式表文件的大小。但是，通过使用CSS缩写以及其他的一些简单技巧，你可以在很大程度上减少样式表的大小。在我对自己样式表的一次非正式的特别测试中，我把文件的大小降低了大约25-50%。

　　使用CSS的缩写性质

　　CSS的缩写性质(shorthand property)是一些专用的性质名，用来代替多个相关性质的集合。例如，间隙性质(padding property)是顶部间隙(padding-top)、右侧间隙(padding-right)、底部间隙(padding-bottom)和左侧间隙(padding-left)的缩写。

　　使用速写性质让你能够把多个性质/属性对(property/attribute pair)压缩进CSS样式表的一行代码里。例如，想一想下面的代码：





以下是引用片段：
　　.sample1&nbsp;{ 
　　margin-top:&nbsp;15px; 
　　margin-right:&nbsp;20px; 
　　margin-bottom:&nbsp;12px; 
　　margin-left:&nbsp;24px; 
　　padding-top:&nbsp;5px; 
　　padding-right:&nbsp;10px; 
　　padding-bottom:&nbsp;4px; 
　　padding-left:&nbsp;8px; 
　　border-top-width:&nbsp;thin; 
　　border-top-style:&nbsp;solid; 
　　border-top-color:&nbsp;#000000; 
　　}


　　将它用一些缩写性质来替代就能够把代码减少为下面这样，两者的实际效果是完全一样的：





以下是引用片段：
　　.sample1&nbsp;{ 
　　margin:&nbsp;15px&nbsp;20px&nbsp;12px&nbsp;24px; 
　　padding:&nbsp;5px&nbsp;10px&nbsp;4px&nbsp;8px; 
　　border-top:&nbsp;thin&nbsp;solid&nbsp;#000000; 
　　}


　　要注意，缩写性质还有多个属性，每一个(属性)都对应一个被组合进入缩写性质的常规性质。属性由空白隔开。

　　当属性是类似的值的时候，例如用于边框空白性质(margin property)的线性测量的时候，接在缩写性质之后的属性的顺序很重要。属性的次序是从顶部(顶部的边框空白)开始，然后围绕格子(box)按顺时针次序继续。

　　如果缩写性质的所有属性都是相同的，那么你可以简单地列出单个属性，然后在前面将它复制四遍。因此，下面的两个性质是相等的：

　　margin: 5px 5px 5px 5px;

　　margin: 5px;

　　类似的，你可以使用接在边框空白或者间隔性质之后的两个属性来代表顶部/底部和右侧/左侧属性对。

　　margin: 5px 10px 5px 10px;

　　margin: 5px 10px;

　　属性的顺序在它们是不相似的值的时候是不重要的。因此，边框颜色、边框风格和边框宽度等属性可以以任何顺序接在大纲性质(outline property)之后。忽略某个属性等同于从样式规则里忽略掉对应的常规性质。

　　下面是CSS缩写性质的列表以及它们所表示的常规性质。

　　Background(背景)：背景附件、背景颜色、背景图像、背景位置、背景重复

　　Border(边框)：边框颜色、边框风格、边框宽度

　　border-bottom(底部边框)：底部边框颜色、底部边框样式、底部边框宽度

　　border-left(左侧边框)：左侧边框颜色、左侧边框样式、左侧边框宽度

　　border-right(右侧边框)：右侧边框颜色、右侧边框样式、右侧边框宽度

　　border-top(顶部边框)：顶部边框颜色、顶部边框样式、顶部边框宽度

　　cue(声音提示)：前提示、后提示

　　font(字体)：字体、字号、字体样式、字体粗细、字体变体、线高度、字体大小调整、字体拉伸

　　list-style(列表样式)：列表样式图像、列表样式位置、列表样式类型

　　margin(空白)：顶部空白、右侧空白、底部空白、左侧空白

　　outline(大纲)：大纲颜色、大纲样式、大纲宽度

　　padding(间隙)：顶部间隙、右侧间隙、底部间隙、左侧间隙

　　pause(暂停)：后暂停、前暂停

　　减少空白

　　减少CSS样式表大小的另一种方法是从文档里删掉大多数无用的空白。换句话说，将每条规则打破放进一行代码里，即把原来插入到代码里用来把每个性质/属性分割到不同行的换行符和缩进符删掉。

　　例如，下面的代码示例在内容上相同，但是第二个要精炼得多：





以下是引用片段：
　　h1&nbsp;{ 
　　font-size:&nbsp;x-large; 
　　font-weight:&nbsp;bold; 
　　color:&nbsp;#FF0000; 
　　} 
　　h1&nbsp;{font-size:&nbsp;x-large;&nbsp;font-weight:&nbsp;bold;&nbsp;color:&nbsp;#FF0000}


　　删掉注释

　　将注释从你的CSS代码里删掉是减少文件大小的另一种方式。尽管注释对于代码的阅读很有用，但是它无助于浏览器生成你的Web页面。很多Web建设者都习惯给每一行代码都加上注释，或者至少给每一条规则声明都加上。这样的慷慨注释在CSS样式表里是极少需要的，因为大多数CSS性质和属性都很容易阅读和理解。如果你对类、ID，以及其他的选择器都使用有意义的名称，你就可以省掉大多数的注释，同时仍然能够保持代码的可读性和可维护性。





以下是引用片段：
　　h1&nbsp;{&nbsp;/*&nbsp;Heading&nbsp;1&nbsp;style*/ 
　　font-size:&nbsp;x-large;&nbsp;/*&nbsp;x-large&nbsp;size&nbsp;*/ 
　　font-weight:&nbsp;bold;&nbsp;/*&nbsp;Bold&nbsp;*/ 
　　color:&nbsp;#FF0000;&nbsp;/*&nbsp;Red&nbsp;*/ 
　　}


　　使用速写性质、删除无用的空白、省略注释都能够在很大程度上减少你CSS样式表文件的大小。这反过来会对加速你Web网站速度的总体目标作出小的、但是可能会是显而易见的贡献。

　　为什么要使用 CSS?

　　自从 Dreamweaver MX 2004 发布以来，我曾经无数次向 Dreamweaver 的新老用户演示它的新特征和新功能。每次进行产品演示，我很快就会极力称赞 Dreamweaver MX 2004 设计和呈现 CSS(或层叠样式表)的新功能。

　　然而最近某位新用户问了一个问题，说实话，这个问题一下子让我张口结舌。这位用户只是问：“我为什么要使用 CSS?”当时我意识到，尽管我们这些每天与 HTML 和 CSS 打交道的人非常了解 CSS 的优点，但仍有很多人并不了解。或者说并不完全了解 CSS 所能提供的所有优点。本文是我对上面那位新用户的书面回答。

　　CSS 起源

　　回顾 CSS 的优点之前，我要先介绍一下它的历史。Web 管理组织 W3C 在 1996 年 11 月推荐使用 CSS，并批准了 CSS 1 级规范。CSS 1 级规范说明了用于 HTML 页面的属性。这些属性代替了传统的字体标签和其他“样式”标记，例如颜色和边距。1998 年 5 月，W3C 批准了 CSS 2 级规范，将一些附加功能添加到 1 级规范，并引进了定位属性。这些属性代替了表格标签普遍(但是错误)的用法，用来设计页面元素的表示。CSS 规范的最新版本是 CSS 2.1，它改进了某些属性，并删除了在当前浏览器里没有作用或作用很小的属性。

　　不幸的是，就像很多新技术一样，CSS 经历了漫长的过程才被广泛采纳。其中的重要原因在于浏览器，以及为这些浏览器建立站点的 Web 设计者们。CSS 批准期间，Netscape Navigator (NN) 仍然是主导浏览器，而该浏览器基本上不支持 CSS。Microsoft 在其第 3 版浏览器中添加了对 CSS 非常有限的支持，但当时大多数的 Web 设计者(本人在内)仍然将 NN 作为首选平台进行页面编码。

　　很多年来，每发行一个新版本，浏览器制作者们都扩展了对 CSS 的支持。今天，Internet Explorer 6、Netscape Navigator 7、Mozilla、Opera 和 Safari 都全面支持 CSS。但这并不意味着我们作为 Web 设计者和开发者的生涯不存在问题。尽管上述所有浏览器都支持 CSS Level 2，它们的兼容程度仍然各不相同。而且在某些情况下，特定属性仍然会带给你很多麻烦。也就是说，您仍然需要遵守老的信条“测试再测试”。但如果您坚持使用 CSS 规范的核心属性，您将能够正确地呈现页面。

　　但是为什么 W3C 认为需要创建 CSS 规范呢?当我创建基于 HTML 的 Web 站点和应用程序时，这一切对我又意味着什么呢?我认为，我们需要使用 CSS 的理由以及它带来的优势可以分为以下三个主要方面：灵活性、呈现性和可访问性

　　灵活性

　　我确定几乎每个 Web 设计者和开发者都经历过这样的痛苦时刻：当您小心地布置好页面，完成所有嵌套的表格后，客户要求进行一点“小小的”更改。这小小的更改可能只是“能不能把那个图形稍稍往左移动一点?”，也可能非常富有戏剧性：“我不喜欢这些标题，能把它们的字体弄大一点吗?改字体的时候，顺便把颜色也改了，怎么样?”如果只需要处理有限的几个页面，您可以深吸一口气，花上大半个小时做那些让人恼火的改动。但如果涉及到较大的站点(而这已经很常见)，一个简单的更改无论如何也简单不了。

　　这样的情形为什么会如此痛苦呢?因为定义页面外观的标记本身就是页面的一部分。要看到实例，您只需到任何站点的任何页面上去数一下 font 和 table 标签的数量。只要您能够从实际页面的流程(或代码)中删除这些标记，或者采用更好的办法，即将其外置，您就可以进行集中更改。而这就是 CSS 所能做的。

　　如果使用一个或多个外部样式表，通过修改样式表然后将修改后的版本上载，您就可以将更改应用到站点。

　　想象一下，在传统的基于表格的布局中，将站点浏览从页面左侧移到页面右侧将有多么困难。这需要几个小时重复而乏味的工作。但是，如果您选择使用 CSS 的定位属性(通常称作 CSS-P)来设计页面，只需更改外部样式表中的“浮动”或“位置”属性，即可更新页面。而且还有以下附加优势：您更新了站点中使用该样式的所有页面。

　　呈现性

　　由于宽带的广泛使用，很多开发者已经不再考虑在浏览器中呈现页面所花费的时间。但是，你们应该记住，很多目标用户仍然在使用拨号连接。传统的基于表格的布局是页面下载速度慢的主要原因。因为浏览器从服务器接收页面时，必须首先检查并“理解”一系列复杂的镶嵌式表格。它必须先找到镶嵌在最里面的内容，然后小心地逐步处理代码，直至到达最外层的容器，即 body 标签。完成以上所有过程后，浏览器才能开始在屏幕上呈现内容。

　　如果使用 CSS，浏览器从服务器接收内容后，立刻就可以开始呈现过程，因为页面中没有或只有很少的显示标记。

　　使用外部样式表还有一个潜在的呈现方面的好处。在传统的基于表格的方法中，浏览器必须检索、分析并单独呈现每个页面。也就是说，浏览器在您的站点上显示第 30 页时耗费的工作和显示第 1 页时一样多。

　　但是，如果使用外部样式表进行显示，站点的第一页将提示浏览器将页面使用的已链接样式表文件缓存起来。这意味着站点中所有使用上述样式表的后继页面下载速度会更快，因为浏览器已经缓存了样式表。

　　最后一个与呈现有关的优点让我想起电影《莫扎特》。电影中，莫扎特问国王对自己的歌剧有什么看法。国王说很好，但是很沉闷。莫扎特一再追问，国王解释说，问题就在于“音符太多”。Web 设计也可能有同样的问题，当然这里的音符指的是实际 HTML 代码。代码越多，浏览器理解页面所花的时间就越长。

　　大家也许都听说过有关官方应用程序的传言，它们编写了非常糟糕的代码，满是复杂的信息，然而文档页面却无法呈现。作为 Dreamweaver 的用户，你们不会遇到这样的问题，但是如果编写了太多代码，你们也会感到内疚。典型的基于表格的设计就是一个很好的例子。

　　在设计中使用 CSS 后，您将减少客户需要下载的代码的数量。仅仅减少某些页面中的字体标签就可以大大减少代码的数量。在很多情况下，如果完全使用 CSS-P 进行设计，代码的数量最多可以减少 50% 甚至更多。代码减少就意味着页面下载的速度加快。

　　可访问性

　　如今我经常听到人们谈论可访问性。大多数开发者知道自己必须考虑建立更多可访问站点的问题，但在更大的程度上，只有为政府或教育机构建立站点的开发人员才被迫真正做到了这一点。考虑到可访问性的问题时，大多数开发人员认为这仅仅意味着需要将 alt 属性添加到图形中。但实际上，提高可访问性有很多工作可做，CSS 使您可以轻松建立可访问站点。

　　可访问性的主要问题(也是使用 CSS 能够解决的问题)在于辅助技术(例如屏幕阅读器)怎样“阅读”页面。传统的基于表格的环境下，屏幕阅读器面临一个巨大的挑战，那就是决定怎样阅读页面。想想吧，当屏幕阅读器遇到镶嵌很深的表格时该有多么困惑，它应该阅读内容，还是跳过内容?跳过内容后，以后怎样返回内容?

　　当您点击页面时，您会很快看到页面中自己感兴趣的内容，而忽略页面顶部的导航和其他内容。视力不太好的人却做不到这一点。他必须等待屏幕阅读器分析完页面顶部和他感兴趣的内容之间所有复杂的信息。

　　当然，有的技术能够使屏幕阅读器跳过导航，但这需要在导航条或其他内容的图像中添加链接。这些技术的运行可能会造成混乱，而且访问站点的其他人也能够看到它们。使用 CSS，您能够在页面中完整定义不可视元素(对于其他站点访问人员和您的鼠标不可视)。屏幕阅读器可以使用这些元素快速导航，有效处理文档。

　　由于 CSS 没有显示标记，屏幕阅读器所遇到的唯一问题就是实际内容。另外，当您使用 CSS-P 进行设计时，您将专注于内容的实际“流”。您开始考虑它在页面上的逻辑顺序。

　　当您阅读本文档时，您理解了信息“流”。但在镶嵌型表格的示例中，如果您使用多栏布局，本段落将很可能位于页面的右上角。那样，屏幕阅读器无法知道它应该在文章末尾阅读本段落。

　　使用 CSS-P 后，浏览器可能仍将本段落显示在浏览器窗口的右上角，但当您查看文档的源代码时，段落在文档的 html 中仍然是您现在所看到的位置。这使页面更容易访问。

　　总结和计划

　　以上就是我的答案。我希望我解释了使用 CSS 进行 Web 设计的独特优势。显然，要学习的内容很多。因此，我鼓励您阅读 Macromedia 开发者中心关于 CSS 的其他文章*，它们将帮助您更好地了解 CSS 的优点，并教会您在设计中使用 CSS 的整个过程。以后的几个星期以及几个月当中，我将带回来更多的 CSS 教程。就写到这里，希望您愉快使用我们的样式。
]]></description>
		</item>
		<item>
			<title>表单制作-用CSS来美化表单</title>
			<link>http://www.kingmx.com/article.php?id=15102</link>
			<pubDate>2007-2-27</pubDate>
			<description><![CDATA[CSS，就是大家知道的层叠样式单，它可以定义页面元素的外观，包括字体样式、背景颜色和图像样式、边框样式、补白样式、边界样式等等，下面就从这几个方面出发，讨论怎样将CSS应用到表单中，彻底美化它！
字体样式的应用 
字体样式包括：字体族科(font-family)、字体风格(font-style)、字体变形(font-variant)、字体加粗(font-weight)、字体大小(font-size)、字体(font)，具体的定义方法，在这里不详细讲述，可以参考它的资料。也许你已经注意到，按钮上的文字不漂亮，其实可以通过CSS字体样式来解决，同样地，其它的几个涉及到文字的表单项，例如，文本框、多行文本框、口令框、下拉选择框都可以应用字体样式。为了充分展示这些应用，下例特别设计了几种样式，在实际应用中，不必这么凌乱，灵活运用： 
表单元素的字体样式展示

  
 jianzhan8.cn freeinfo.jianzhan8.cn 
underline css style 
  

表单CSS样式分析：
文本框里的文字是加粗的，大小是9pt，字体是宋体，代码：
&lt;input type="text" name="formExam" size="10" maxlength="10" style="font-family:宋体; font-size: 12px; font-weight: bold" value="加粗"&gt;
口令框文字是红色的，代码：
&lt;input type="password" name="formExam3" style="font-size: 9pt; color: #FF0000" size="8" maxlength="8"&gt;
下拉框文字颜色是红色的，字体是Verdana，大小是9pt，代码：
&lt;select name="select" size="1" style="font-family:Verdana,Arial; font-size: 9pt; color: #FF0000"&gt;
&lt;option value="2" selected&gt;jianzhan8.cn&lt;/option&gt;
&lt;option value="1"&gt;freeinfo.jianzhan8.cn&lt;/option&gt;
&lt;/select&gt;
多行文本框了的字体是Verdana，有下划线，大小是9pt，代码：
&lt;TEXTAREA name="formExam2" cols="30" rows="3" style="font-family:Verdana, Arial; font-size: 9pt; color: #000099; text-decoration: underline" align=right&gt;underline css style&lt;/TEXTAREA&gt;
发送1和发送2按钮的文字不同，是因为发送1按钮使用了9pt的宋体文字，所以比较美观，发送1按钮的代码：
&lt;input type="submit" name="Submit" value="发送1" style="font-family:宋体; font-size: 9pt;"&gt; 
背景颜色和图像样式的应用 
表单元素的背景展示

  
 复选  单选  jianzhan8.cn freeinfo.jianzhan8.cn chinabyte.com sina.com sohu.com 
 
  
表单CSS样式分析：
文本框背景是黑色的，字体是白色的，代码：
&lt;input type="text" name="RedFld" size="10" maxlength="10" style="color: #FFFFFF; background-color: #000000"&gt;
口令框背景是灰色的，代码：
&lt;input type="password" name="RedFld3" size="10" maxlength="10" style="background-color: #999999"&gt;
单选和复选按钮的背景是红色的，代码：
&lt;input type="checkbox" name="checkbox" value="checkbox" style="background-color: #FF0000"&gt;
&lt;input type="radio" name="radiobutton" value="radiobutton" style="background-color: #FF0000"&gt;
下拉选择框的选项是丰富多彩的背景，代码：
&lt;select name="select2" size="1"&gt;
&lt;option selected style="background-color: #FF0000"&gt;jianzhan8.cn&lt;/option&gt;
&lt;option style="background-color: #0000CC"&gt;freeinfo.jianzhan8.cn&lt;/option&gt;
&lt;option style="background-color: #009900"&gt;chinabyte.com&lt;/option&gt;
&lt;option style="background-color: #ff33cc"&gt;sina.com&lt;/option&gt;
&lt;option style="background-color: #999999"&gt;sohu.com&lt;/option&gt;
&lt;/select&gt;
多行文本框的背景是一个图像，代码：
&lt;TEXTAREA name="RedFld2" cols="25" rows="3" wrap="VIRTUAL" style="background-image: url(0.gif)"&gt;&lt;/TEXTAREA&gt;
submit1按钮的背景是黄色的，代码：
&lt;input type="submit" name="Submit3" value="Submit1" style="background-color: #FF9900"&gt;
submit2按钮的背景是一个图像，代码：
&lt;input type="submit" name="Submit22" value="Submit2" style="background-image: url(0.gif)"&gt;

边框样式的应用 
边框形式的展示: 

    
    
 
 复选  单选   
表单CSS样式分析： 
文本框有8种类型边框样式，即border-style，分别展示在本例中，
边框宽度的设置有一个规律：
border-width: [ thin | medium | thick | ＜长度＞ ]{1,4}
边框宽度用一到四个值来设置元素的边框宽度，它们分别被应用于上、右、下和左边框宽度。如果只给出一个值，它被应用于所有边框宽度。如果两个或三个值给出了，省略了的值与对边相等
例如：&lt;input type="text" name="RedF" style="border-color: #006600; border-style: dotted; border-width: 1px"&gt;
边框颜色的设置有一个规律：
border-colr: ＜颜色＞{1,4}
边框颜色用一到四个值来设置元素的边框颜色。如果四个值都给出了，它们分别被应用于上、右、下和左边框颜色。如果只给出一个值，它被应用于所有边框颜色。如果两个或三个值给出了，省略了的值与对边相等。 
对于多行文本框以及按钮，设置边框的方法和文本框一样，不再陈述； 
由于下拉选择框Select不支持边框的设置，所以对它设置是徒劳的； 
单选按钮和复选按钮的边框，设置的效果不十分协调，所以建议不要对它们设置，不然有“画蛇添足”之感； 
边框的特殊设计展示: 

  
代码：&lt;FORM name=form1 action="" method=post&gt;&lt;INPUT style="BORDER-RIGHT: #000099 0px solid; BORDER-TOP: #000099 0px solid; BORDER-LEFT: #000099 0px solid; BORDER-BOTTOM: #000099 1px solid; BACKGROUND-COLOR: #ffffff" size=25 value=文本框：只有下边框 name=myRed&gt; &lt;INPUT style="BORDER-RIGHT: #000099 0px solid; BORDER-TOP: #000099 0px solid; BORDER-LEFT: #000099 0px solid; BORDER-BOTTOM: #000099 1px solid; BACKGROUND-COLOR: #ffffff" type=button value=按钮1 name=Button&gt;&lt;/FORM&gt;
  
代码：&lt;FORM name=form1 action="" method=post&gt;&lt;INPUT style="BORDER-RIGHT: black 0px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: black 0px solid; BORDER-BOTTOM: #ff0000 1px solid; BACKGROUND-COLOR: #ffffff" size=25 value=文本框：上下边框颜色不同 name=myRed2&gt; &lt;INPUT style="BORDER-RIGHT: black 0px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: black 0px solid; BORDER-BOTTOM: #ff0000 1px solid; BACKGROUND-COLOR: #ffffff" type=button value=按钮2 name=Submit24&gt;&lt;/FORM&gt;
  
代码：&lt;FORM name=form1 action="" method=post&gt;&lt;INPUT style="BORDER-RIGHT: #ff0000 1px dotted; BORDER-TOP: #ff0000 1px dotted; BORDER-LEFT: #ff0000 1px dotted; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #ffffff" size=25 value=文本框：边框、颜色不同 name=myRed3&gt; &lt;INPUT style="BORDER-RIGHT: #ff0000 1px dotted; BORDER-TOP: #ff0000 1px dotted; BORDER-LEFT: #ff0000 1px dotted; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #ffffff" type=button value=按钮3 name=Submit32&gt; &lt;/FORM&gt; 
注意：边框类型的外观如下：
none ：无边框。与任何指定的border-width值无关； 
dotted ：点线； 
dashed ：虚线； 
solid ：实线边框； 
double ：双线边框。两条单线与其间隔的和等于指定的border-width值； 
groove ：3D凹槽； 
ridge ：边框突起； 
inset ：3D凹边； 
outset ：3D凸边； 
用图像代替按钮 
当只有一个提交按钮的时候，可以简单地实现，不用加事件函数，代码是：&lt;input type="image" name="..." src="url" width="" height="..." border="..."&gt;除了标签改为input type="image"以外，其它的属性和&lt;img&gt;标签的属性是一样的 
演示：

  
是不是只要用图片就可以代替所有的按钮呢？是的，不过，不是上面这么简单了，必须加上事件函数，不然的话，图片都是提交按钮，不能完成复位等功能，看看下面的例子就知道了：
用图片代替所有的表单按钮： 

   
需要注意的事项： 
代替submit按钮的图片代码格式是&lt;input type="image" name="..." src="..." onClick="document.formName.submit()"&gt; 
代替reset按钮的代码图片格式是 &lt;a href="javascript:document.formName.reset();"&gt;&lt;img border=0 src="..."&gt;&lt;/a&gt;
这里的formName是表单的name属性值。 ]]></description>
		</item>
		<item>
			<title>CSS特效赏析</title>
			<link>http://www.kingmx.com/article.php?id=15038</link>
			<pubDate>2007-2-8</pubDate>
			<description><![CDATA[　从现在开始，我将向您介绍一系列的CSS作品，这些大都是CSS与JavaScript结合起来产生的特效。您可以通过对这些特效的欣赏，进一步领略到CSS的强大功能。
　　1、动态改变样式

　　我们先来看一个较简单的特效，这里只是用到了属性和鼠标事件。 

　　请把鼠标移到蓝色背景的文字下面。
　　我们使用“class”类属性来改变文档的样式。 放大这段文本。

　　这个例子的代码是这样的：

　　&lt;html&gt;
　　&lt;head&gt; 
　　&lt;title&gt;change style&lt;/title&gt; 
　　&lt;style&gt; 
　　&lt;!-- 
　　.bigchange{color:blue;font-weight:bolder;font-size:225%; 
　　letter-spacing:4px;background:yellow;}
　　//*定义bigchange类的字体的颜色、粗细、大小，字间距，背景色*//
　　.start{color:yellow;background:navy;} 
　　//*定义start类的字体的颜色和背景色*//
　　 --&gt; 
　　&lt;/style&gt; 
　　&lt;/head&gt; 
　　&lt;body&gt; 
　　&lt;h1&gt;动态改变样式&lt;/h1&gt; 
　　&lt;p&gt;请把鼠标移到蓝色背景的文字下面。&lt;/p&gt; 
　　&lt;p&gt;我们使用"class"类属性来改变文档的样式。 
　　&lt;span onmouseover="this.className='bigchange'" 
　　onmouseout="this.classname='start'" class="start" 
　　　　　　　　style="cursor:hand"&gt;
　　放大这段文本。 &lt;/span&gt; &lt;/p&gt; &lt;/body&gt;
　　//*定义鼠标触发事件，当鼠标放上去的时候，区域内以bigchange类的格式显示，
　　当鼠标离开的时候，以start类显示*//
　　&lt;/html&gt;

　　这个例子很简单，容易理解，就不多说什么了，下一节将向您介绍一个动态显示的例子。
]]></description>
		</item>
		<item>
			<title>flash页面如何通过校验</title>
			<link>http://www.kingmx.com/article.php?id=15036</link>
			<pubDate>2007-2-8</pubDate>
			<description><![CDATA[1.embed是非法的 
&lt;embed&gt;标签是Netscape的私有标签，虽然&lt;embed&gt;标签应用广泛存在，但是从HTML3.2,HTML4.0到XHTML1.0，W3C都没有收录这个标签。使用&lt;embed&gt;标签的页面将不能通过W3C校验。 
2.应该用object 
W3C推荐的是&lt;object&gt;标签。甚至在XHTML2中，&lt;img&gt;都要被&lt;object&gt;所取代。用&lt;object&gt;方法插入flash的代码是： 
&lt;object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"&gt; &lt;parm name="movie" value="test.swf /&gt; &lt;/object&gt; 
但是这个方法在IE5-IE6/Win上不能正确显示(不能连续播放，要下载完才能放),在低版本的可以正确显示。后来采用先调一个小flash文件再嵌入大flash文件的方法解决了连续播放的问题，但是在IE5以上版本有时依然出现不能显示flash的情况。 
3.目前的临时办法 
那么既要符合标准，又想在所有浏览器正确显示flash应该怎么做？macromedia网站是如何通过W3c校验的？ 
有设计师想到了用JavaScript来隐藏非法的&lt;embed&gt;标签， 
&lt;script type="text/javascript "&gt; if (navegiator . mimeTypes &amp;&amp; navigator . mimeTypes["application/x-shockwave-flash] { document . write('&lt;embed src="test . swf" ... 
这是目前比较好的解决办法。你一定要插flash，就用js调用。这种方法可以欺骗W3C的校验程序，使页面通过校验。但仅仅是"欺骗"，而不是真符合标准。 
macromedia是怎么做的呢?看到这句代码： 
&lt;!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : your browser's accept header indicates you have Flash 6,0,65,0 or better, so you're OK for this Flash 6 movie, here it comes. --&gt; 
它采用了一个折中二选一的办法: 
(1).首先javascript来判断你的浏览器版本和flash player的版本; 
(2).根据版本的不同在后台动态的生成HTML代码。 
简单说就是默认采用&lt;object&gt;方法，如果浏览器不能处理object的MIME类型“ application/x-shockwave-flash”,它就插入子元素&lt;embed&gt;。说穿了，这和用js隐藏&lt;embed&gt;方法类似，也是一种“欺骗”的办法，但这是目前能够做到的最符合标准的,比较完美的做法了。 
要想真正抛弃&lt;embed&gt;，只能等IE浏览器对&lt;object&gt;更好的支持才行，也许要等到Longhorn出来了。]]></description>
		</item>
		<item>
			<title>如何从营销的角度策划建设网站</title>
			<link>http://www.kingmx.com/article.php?id=15033</link>
			<pubDate>2007-2-6</pubDate>
			<description><![CDATA[
一个网站如果能够从营销的角度来策划建设的话，不用花太多钱就可以轻松的把流量推广起来。但是一个网站如果不能从营销的策划建设的话，可能花很多钱来砸，都很难把网站的流量真正的砸起来。所以王通一直提倡一个网站策划建设的理念：从营销的角度策划和建设网站。
如何从营销的角度来策划建设网站呢？
不同类型的网站可能稍有不同，但是大部分网站都需要考虑以下三点：
一、网站的规划和设计要负责SEO 

对于一个网站而言，平均上有70%左右的新流量来自于搜索引擎，如果你的网站能够从营销的角度来规划和设计的话，网站推出以后，就可以轻松通过搜索引擎获得非常大的流量。
网站的规划和设计要负和SEO，就需要考虑到那些因素呢？
l 网站链接结构规划
l URl路径设计
l 网页排版
l title设计
l meta标签设计
l 网站地图设计
l 其他SEO因素
要在这些方面设计的符合了搜索引擎的要求，才能促使网站做好以后，可以在各大搜索引擎中获得相对较好的排名，从而不花钱让搜索引擎源源不断地给你带来高质量的流量。
学习SEO，可以到这个网站：www.seo.org.cn
二、网站的策划和设计要符合用户的喜好
对于一个网站而言，人性化的设计是非常非常重要的，但是如何人性化呢？ 很多人可能比较茫然，人性化也是由一系列细节来组成的，这里简单给大家列出几项。
1、网站要给用户快感
网页的打开速度要快，用户才觉得爽，如何提高网页的速度呢？
n 服务器的带宽条件要好
n 网页的内容都不要太多
n 代码的优化和压缩减肥
n 尽量使用静态网页……
2、网站要多夸用户: 
对于用户的许多使用网站的服务或者功能的步骤中，可以融入很人性化的语言去多夸用户。让用户高兴了，用户就会很喜欢你的网站。
3、网站导航要引导用户
网站导航要根据用户的喜欢来规划，最好能够让你的导航引导你的客户去深入流量，去慢慢按照你的策划的思路去流量，最终让他转化成为你的客户。
三、网站要增加一些必要的网络营销工具
网络营销工具的选择要根据网站性质的不同进行选项，比如商务类网站就需要具备以下几种工具：
l 在线客户服务系统
有在线客服务系统的话，将大大提高你的网站的转化率。
l 潜在客户跟踪系统
大部分客户的转化都是通过多次的跟踪之后才成为最终客户的。
l 网络营销分析系统
通过网络营销分析系统，可以对网站目前的各种营销数据一目了然。
l 其他网络营销工具
]]></description>
		</item>
		<item>
			<title>Web2.0视觉风格进化论二</title>
			<link>http://www.kingmx.com/article.php?id=15032</link>
			<pubDate>2007-2-6</pubDate>
			<description><![CDATA[
在我的上篇文章发出之后，我听到对“WEb2.0视觉风格”这个称谓的不认同声音。其实这并不出乎我的意料，因为，我在认真的开始思考“WEb2.0视觉风格”应该何去何从的问题之前，也有过类似的感受，那就是：Web2.0应该更注重“内在理念”而不是“视觉外观”。蓝色理想独家首发，作者Quester。相关链接：Web2.0视觉风格进化论 一

事实是这样吗？你不妨先回答我下面这两个问题：

① Web2.0 作为一个新生的“概念”，是否不需要一个清晰的“视觉表现”？
② 你认为自己已经找到体现 Web2.0 概念足够清晰的“视觉表现方式”了吗？

如果你的回答都是“是”，那么我强烈建议你不要再往下看这篇文章，它完全在浪费你的时间。

如果你心存疑虑犹豫不决，而你又想更详细的了解关于“WEb2.0视觉风格”的内容，就请抱着一同探究的心态，和我一起来完成这个“进化过程”吧。

Web2.0 需要“视觉识别”，吗？
Web2.0 Need "VI", Is it?

如果我们把“Web2.0”看作“形象识别”的一个主体（因为它有着区别于以往Web概念的需求），那么我们就很容易看清它应该有的体系结构：作为“理念识别 (Mind Identity)”的“Web2.0概念”现在应该不会有人再怀疑，否则你也不会来看我这篇文章。因此我们可以说，作为“理念识别”的这个部分，已经基本完成。那么在在“理念识别”指导下的“行为识别(Behavior Identity)”和“视觉识别 (Visual Identity)”就应该逐步的完善和清晰起来。

可喜的是，对于“Web2.0的行为特征”我们现在也已经有了很明确的概念，它的交互性，参与性，资料的产生和分配的动作方式，可移动性等等都将“Web2.0”的“行为识别”进行得如此生动鲜活，你很快就可以判定：“噢，这个网站是以web2.0的方式在玩！”

可惜的是，对于“视觉识别”的范畴，我们拥有了这样一套清晰完整的，可以传达理念，表现特性的“视觉组件”了吗？没有！
因此，作为有职业敏感和操守的设计师的你，为什么不和我一起来共同把我们需要做的工作完成呢？你还在等着一本装订成册，封面用荧光色印着“Web2.0 视觉手册”的书送到你的手里吗？Come On, You OUT!

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}}" border=0>

图注：网上的兄弟们自己“颁发”的“Web2.0设计师证”，你也可以给自己来一个。

我真的希望看到这里的你觉得我上面的解释是一大堆废话！因为这说明你真的知道作为一个设计师自己应该去做些什么，想些什么。

视觉的进化与沿革
Evolution of Visual Elements

谈到视觉元素的沿革，很多人兴趣就高涨起来了——你看看论坛上的那些个帖子，点击量最高的，回复最多的不就是“最新XXX效果，附教程”之类的吗。一些人又说了：我们这不是一直追赶潮流吗？是啊，弄潮和追潮只有一字之差而已。

好吧，就从论坛的热点帖子说起：之前有个帖子是关于Web2.0的Logo的，这个话题真是热得烫手。可惜的是，我在查找证据之后发现，许多所谓的“大公司的新Web2.0风格Logo”其实是某些“好事者”所为。呵呵，不必失望，这些行为颇有点Web2.0的风格，况且，其中的有据可查的确实被采用的Logo，有一小部分，也可以从这些版本中找到——你现在可以把你喜欢的样式直接推荐给产品影响全球数以万亿计客户量的大公司，影响它们，改变它们！你不觉得Web2.0的可爱吗？

换个角度来讲，很多公司在“Web1.0时代”没有改变它们的Logo，现在到了“Web2.0时代”为什么就都迫不及待的要改变Logo的设计呢？这除了说明Web2.0是“真正意义上的网络”以外，难道你还觉察不出“Web2.0的视觉设计”的重要吗？

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}}" border=0>

图注：上面这些Logo，下排都是未被证实的“自作多情”作品。和“现任”Logo的比对。

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}}" border=0>

图注：还是来看看真正的Web2.0的色彩和符号在怎么玩吧！大公司老是跑在前面，一点不错，后续的文章还会详细介绍关于“可口可乐”的进化例子。

我想说的是，你应该从这些真真假假的Logo中看出来，哪些才是真的符合Web2.0的标准而不被表象的那些所谓的渐变应该怎么拉，高光应该怎么做，影子的参数是多少所迷惑。觉得有些难度是吧？我们的这几篇文章不是为了Web2.0而说Web2.0，只是想从“视觉进化”的规则中告诉你怎么来鉴别和找出“真正的Web2.0风格”！

进化的概念
What's the meaning of "Evolution"?

很清楚，所谓“进化”，就是在原有“物种”的基础上向前进步。在英语中的“Evolution”也可以翻译成“演变”，但是我宁可用“进化”这个比较积极的词汇。

对于视觉元素的进化，由来久矣。谈到这里，我不得不提到一个人，因为我在分析新Web2.0的Logo走向（趋势）时，好多的Logo源头都指向了他，上面那个图里面4个原有的logo，3个都是他设计的。他的名字是：保罗·兰德（Paul Rand　1914-1996）



screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}}" border=0>

图注：兰德为IBM做的海报，视觉音译了I.B.M (Eye, Bee, M)

你可能会奇怪，他怎么会出现在苹果的“想法与众不同”(Think Different)海报里，这里我引用一段介绍，详细的，你可以区下面的链接找寻。

保罗.兰德（Paul Rand，1914-1996）兰德作为当今美国乃至世界上最杰出的图形设计师、思想家及设计教育家之一，其先导地位和作用是勿庸争辩的。
兰德1929-1932年就学于纽约Parsons设计学院。年仅23岁便成为Esquire Coronet广告公司的艺术指导，在随后的三十多年里他一直担任纽约广告代理公司的创意指导，也曾受聘为许多美国著名大公司的设计师或设计顾问，其中包括美国广播公司(ABC)、IBM公司、西屋电器公司、NEXT电脑公司、UPS快递公司、耶鲁大学等艺术顾问。他为这些公司和机构所设计的企业标志 ，已成了家喻户晓的经典之作。
半个多世纪以来，他在视觉设计方面的建树和前卫精神对整个图形设计领域而言，影响巨大而深远。

详细: http://www.artcn.cn/Article/pmsj/wgsjs/200604/9407.html

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}}" border=0>

图注：上面用亮色表明年代的Logo，即是兰德的杰作了。

我们向兰德致敬，感谢他为我们留下了这么多可以追寻的脉络，可以让我们踏着他的脚印向正确的方向行进。从某种意义上讲，我们现在面临的课题，也是当年兰德遇到的问题。但是庆幸的是，我们现在有了更多更便捷的方式来获取资讯，完成新一轮的“视觉元素的进化”过程。

苹果风格是否就是web2.0风格？

为了不使有些人觉得枯燥，我决定把这个小节提到前面来讲。同时，我也正在改善我的“笔调”更Web2.0一些，希望大家不是正襟危坐的凝视这几行字，而是陷在沙发的一角用手机看小说的感觉。

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='点击在新窗口查看全图\nCTRL+鼠标滚轮放大或缩小';}}" border=0>

苹果风格是否就是web2.0风格？这个话题好像会使人感到困惑：的确，那些该死的苹果设计师团队每天都在“Think Different”，难怪它们会跑在前面，因为它们会最快的找到“Good of Different”。不可否认，苹果确实创造并引领了好长一段时间的潮流。但是给我的感觉，自从1997年微软的“毒血”注入苹果之后，苹果的创造力就大不如前。（注：1997年8月6日，微软首次动用1.5亿美元购买苹果公司非投票股份）

撇开这些“政治经济学”不谈，我们还是从理念上分析一下苹果的行为：

①提高产品使用的愉悦感（不仅是舒适感），超越仅限于功能的满足。
②为了愉悦视觉触觉感官而不惜代价（严格规定所有产品表面不能有可见的螺丝钉，iMac的外壳铸模造价高出同类型产品30%，为研究透明塑料如何看起来不“低档”，显得“舒适，科技感”而将工业造型设计师蹲点到糖果厂看软糖生产过程。等等）
③追求自我“i”为中心，个性独特，尝试不同。 
你可能读到这里会想起一个人：斯皮尔伯格。对，没错，就是他。1亿2千万美元拍《兄弟连》，没想过卖不卖得出去，但是他成功了。他持股的公司“梦工厂”，其中一个股东就是原苹果公司的创始人之一。不过他们这种不计成本的玩法，不太符合市场经济，所以不幸的，“梦工厂”在2005年圣诞节前被派拉蒙公司以16亿美元收购，不玩了。

那么，说到这里，一些对于“Web2.0精神”比较熟悉的人就会发现差异。

① 人群不同：苹果的理念是创造独特，原本不是为了愉悦“大众”而是满足少数能欣赏之“小众”，若不是自iBook之后采取扩展低端市场的做法，估计现在iPod，iPhone是不可能轻易流于“民间”。然而，“Web2.0”是“大熔炉”，体现参与性，互动性。几乎所有上网的人都是“受众”，是自娱自乐自作自受的“众乐乐”。从年龄跨度上讲“Web2.0”也要宽泛许多。

② 氛围不同：因为人群的关系，两者的感情色彩和氛围就大相径庭了。苹果有一点“后雅皮”的影子，感觉象一个受过优良教育，会用科技来改善生活却有着顽皮不羁性格，享乐人生态度的大男孩。Web2.0就有点纽约皇后区的喧嚣或者说北京春节白云观逛庙会的感觉。人们为自己感兴趣的事情蜂拥而至，乘兴而来兴尽而归，嬉笑怒骂无拘无束。

③ 表现不同：因为上述的一些关系，导致视觉表现上，苹果的东东对于Web2.0就有些消化不良。最明显的例子就是所谓的“水晶按钮”，其为表现完美所花费的步骤，对于芸芸众生的Web2.0网站来讲，一是制作过于复杂，二是视觉表现浪费。一件裘皮大衣，配上骨质的扣会给人感觉很纯朴，配上银质的钮会给人感觉很高贵。但是问题不在于钮扣，而是在于你的网站是不是要弄成那件裘皮大衣。

好了，既然结论是：苹果风格 ≠ web2.0风格，那么关于为什么说“过于复杂，视觉表现浪费”的问题就留在以后的文章里面详细讲吧。

特别注意，文章中不少链接是去往维基百科，如果不能访问，请使用代理设置

还是和以往一样，欢迎各位兄弟姐妹的发言，Web2.0！不要吝啬你们的声音！
]]></description>
		</item>
		<item>
			<title>针对各种版本的浏览器隐藏CSS的九大技巧</title>
			<link>http://www.kingmx.com/article.php?id=14960</link>
			<pubDate>2007-1-18</pubDate>
			<description><![CDATA[

我们都知道浏览器之间是有差异的，很多人在使用XHTML+CSS方式制作网页的时候都曾为此无比头痛。要在这些差异的影响下工作需要很多的技巧，“隐藏CSS”就是其中很重要的一种技巧（甚至是最重要的）。这种技巧的主要思想是，用某些方式对某些浏览器隐藏某些重载的CSS规则。 

这篇文章并不是想教你如何使用这种技巧，它面向的是有一定CSS基础的设计开发者，我假定你曾经使用过某种隐藏CSS规则的方法。这里是想把可用的方法与被隐藏规则的浏览器都列出来，方便大家在平时工作时随时查阅。 

在这张大表里列出了九种方法，我就称其为“独孤九剑”，希望能帮上你的忙:-D 

注：此表格原载 w3development.de。 

Browser@import url("...")@import url(...)@import "..."media=""@mediacommentattributechildTantek 

Amaya 5.1 Winx xxx 

IE 3 Winxxx xxxx 

IE 4 Winxxx xxxxx 

IE 5 Win xxxx 

IE 5.5 Win xxx 

IE 6 Win xx 

IE 4.01 Macx xxxxx 

IE 4.5 Macx xx x 

IE 5 Mac xxx 

Konqueror 2.1.1 x 

Mozilla 1.0 

Netscape 4.xxxxxx xxx 

Netscape 6.01 

Netscape 6.1 

Netscape 6.2 

Opera 3.60 Win x 

Opera 4.02 Win 

Opera 5.02 Win 

Opera 5.12 Win 

Opera Tech Preview 3 Mac 

看完这张表之后我的第一反应是：Mozilla和Opera真乃神人也。只有一条规则会对Opera最老的一个版本起作用，所以后面我们在讲到隐藏规则的时候基本上就不考虑Mozilla和Opera了。下面列出这九种“剑法”的招数，同时在旁边也注上了我个人推荐的使用场合。注意，我推荐的不一定与你的需求相符，使用前请对照上面的表格。 

@import url("") 

@import url("global.css") 

对老版本（版号小于5）的浏览器隐藏规则。 

@import url() 

@import url(global.css) 

对Windows平台的老版本（版号小于5）浏览器隐藏规则。 

@import "" 

@import "global.css" 

对Windows平台的老版本（版号小于5）浏览器隐藏规则。 

media="" 

＜link href="global.css" type="text/css" rel="stylesheet" media="all"/＞ 

对Netscape 4.x隐藏规则。 

@media 

@media all { 

... /* 需要隐藏的规则 */ 

} 

如果只考虑NN和IE的话就是只对4.x版本隐藏规则。 

comment 

#anySelector/* */ { color:#f00; } 

这可是精确制导导弹。只对IE5及以下版本隐藏规则。所以如果要把IE5和IE5.5分开定义规则，那就靠它了。 

attribute 

p[id] { color: #0f0; } 

又一个精确制导导弹。如果不关心老版本浏览器，那就是只对IE隐藏规则。关于属性选择器的更多信息请看W3C的文档。 

child 

p&gt;span { color: #00f; } 

基本同上，只是Mac平台部分版本的IE支持这个规则。 

Tantek 

p#tantek { 

voice-family: "\"}\""; /* 某些浏览器有解析bug */ 

voice-family: inherit; /* 在这以下的规则都会被忽略 */ 

color: #f00; 

} 

著名的隐藏CSS技巧，对所有“非现代”浏览器隐藏规则。
]]></description>
		</item>
		<item>
			<title>利用CSS 的 Clip 属性来创造 多彩文字(Multi Colored Text)</title>
			<link>http://www.kingmx.com/article.php?id=14891</link>
			<pubDate>2007-1-6</pubDate>
			<description><![CDATA[原理
将二个相同而色彩不同的文字重合在一起，通过分别给其加 clip 属性，使上面和下面的文字被剪切位置不同，从而产生二种不同的色彩。

clip : 摘自苏沈小雨CSS手册
clip : auto | rect ( number number number number ) 
 
参数： 
 
auto : 　对象无剪切
rect ( number number number number ) : 
依据上-右-下-左的顺序提供自对象左上角为(0,0)坐标计算的四个偏移数值，其中任一数值都可用auto替换，即此边不剪切 
 
说明： 
 
检索或设置对象的可视区域。区域外的部分是透明的。
必须将position的值设为absolute，此属性方可使用。

测试环境
Firefox1.5、IE6.0、Opera8.5、IE5.01绿色版通过。

CSS
.textBottom {
	color: #333333;
	position: absolute;
	left: 3em;
	top: 1em;
	font: 26px Century Gothic,Arial, Helvetica, sans-serif;
	clip: rect(18px auto auto auto);
}

.textTop {
	color: #CC0000;
	position: absolute;
	left: 3em;
	top: 1em;
	font: 26px Century Gothic,Arial, Helvetica, sans-serif;
	clip: rect(0 auto 18px 0);
}

.container {
	width: 28em;
	height: 5em;
	margin: 1em auto;
	position: relative;
	background: #F6F6F6;
}

xhtml
&lt;div class="container"&gt;
 &lt;a href="#" class="textTop"&gt;Cascading Style Sheet &lt;/a&gt;
 &lt;a href="#" class="textBottom"&gt;Cascading Style Sheet &lt;/a&gt;
&lt;/div&gt;

参考资料：http://www.ibloomstudios.com/article8/

最终效果
]]></description>
		</item>
		<item>
			<title>CSS圆角代码</title>
			<link>http://www.kingmx.com/article.php?id=14890</link>
			<pubDate>2007-1-6</pubDate>
			<description><![CDATA[&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
&nbsp;&lt;title&gt;Flexible box with custom corners and borders | Lab | 456 Berea Street&lt;/title&gt;
&nbsp;&lt;style type="text/css" media="screen,print"&gt;
&nbsp;html,body {
&nbsp;&nbsp;margin:0;
&nbsp;&nbsp;padding:0;
&nbsp;&nbsp;color:#000;
&nbsp;&nbsp;background:#fff;
&nbsp;}
&nbsp;body {
&nbsp;&nbsp;padding:10px;
&nbsp;&nbsp;font:76%/135% "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;
&nbsp;}
&nbsp;code {
&nbsp;&nbsp;font-family:Monaco, Courier, "Courier New", monospace;
&nbsp;}
&nbsp;#labfooter {
&nbsp;&nbsp;text-align:center;
&nbsp;&nbsp;clear:both;
&nbsp;}
&nbsp;.adwrap {
&nbsp;&nbsp;margin:10px auto;
&nbsp;&nbsp;padding:10px 0;
&nbsp;&nbsp;width:468px;
&nbsp;&nbsp;border:1px solid #ccc;
&nbsp;&nbsp;border-width:1px 0;
&nbsp;}
&nbsp;.adwrap object {
&nbsp;&nbsp;width:468px;
&nbsp;&nbsp;height:60px;
&nbsp;}
&nbsp;
&nbsp;/* CSS for the box starts here */
&nbsp;.box {
&nbsp;&nbsp;padding:0 12px 0 0;
&nbsp;&nbsp;background:#fff url(borders.gif) 100% 0 repeat-y;
&nbsp;}
&nbsp;.bi {
&nbsp;&nbsp;padding:0 0 0 12px;
&nbsp;&nbsp;background:#fff url(borders.gif) 0 0 repeat-y;
&nbsp;}
&nbsp;.bt {
&nbsp;&nbsp;height:17px;
&nbsp;&nbsp;margin:0 -12px;
&nbsp;&nbsp;background:url(box.gif) 100% 0 no-repeat;
&nbsp;}
&nbsp;.bt div {
&nbsp;&nbsp;width:18px;
&nbsp;&nbsp;height:17px;
&nbsp;&nbsp;background:url(box.gif) 0 0 no-repeat;
&nbsp;}
&nbsp;.bb {
&nbsp;&nbsp;height:17px;
&nbsp;&nbsp;margin:0 -12px;
&nbsp;&nbsp;background:url(box.gif) 100% 100% no-repeat;
&nbsp;}
&nbsp;.bb div {
&nbsp;&nbsp;width:18px;
&nbsp;&nbsp;height:17px;
&nbsp;&nbsp;background:url(box.gif) 0 100% no-repeat;
&nbsp;}
&nbsp;.box h1 {
&nbsp;&nbsp;margin:0;
&nbsp;&nbsp;padding:0.3em 10px;
&nbsp;&nbsp;background:#efece6;
&nbsp;&nbsp;font:bold 1.2em/1 Arial, Helvetica, sans-serif;
&nbsp;}
&nbsp;.box p, .box ul {
&nbsp;&nbsp;margin:0;
&nbsp;&nbsp;padding:4px 10px;
&nbsp;&nbsp;background:#fff;
&nbsp;}
&nbsp;.box li {
&nbsp;&nbsp;margin:0 0 0 2em;
&nbsp;&nbsp;padding:0;
&nbsp;}
&nbsp;&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class="box"&gt;
&nbsp;&lt;div class="bi"&gt;
&nbsp;&nbsp;&lt;div class="bt"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;
&nbsp;&nbsp;&lt;h1&gt;Flexible box with custom corners and borders&lt;/h1&gt;
&nbsp;&nbsp;&lt;p&gt;This demo is related to the article &lt;a href="/archive/200406/flexible_box_with_custom_corners_and_borders/"&gt;Flexible box with custom corners and borders&lt;/a&gt;. I also suggest you take a look at my updated method for creating this kind of box: &lt;a href="Transparent'>http://www.456bereastreet.com/archive/200505/transparent_custom_corners_and_borders/"&gt;Transparent custom corners and borders&lt;/a&gt;.&lt;/p&gt;
&nbsp;&nbsp;&lt;p&gt;This is a demo of a flexible box with custom corners and custom borders. The box will expand to contain any amount of content vertically, will handle any text size, and can become very wide before the horizontal borders start breaking up. How wide depends on the width of one of the background images.&lt;/p&gt;
&nbsp;&nbsp;&lt;p&gt;Two images are used. &lt;a href="box.gif"&gt;&lt;code&gt;box.gif&lt;/code&gt;&lt;/a&gt; is a complete box. For the sake of this demo I&amp;rsquo;ve made it 1600 pixels wide. It is used for the corners and the horizontal borders. The other image, &lt;a href="borders.gif"&gt;&lt;code&gt;borders.gif&lt;/code&gt;&lt;/a&gt;, contains the vertical borders. Why use a single, large image for the corners instead of several smaller ones? There are several reasons:&lt;/p&gt;
&nbsp;&nbsp;&lt;ul&gt;
&nbsp;&nbsp;&nbsp;&lt;li&gt;Splitting the image into a bunch (six in this case &amp;ndash; one for each corner plus the top and bottom borders) of smaller images may actually increase the total file size, depending on the look of the corners and borders.&lt;/li&gt;
&nbsp;&nbsp;&nbsp;&lt;li&gt;To minimize the number of HTTP requests sent to the server.&lt;/li&gt;
&nbsp;&nbsp;&nbsp;&lt;li&gt;Convenience. When changing the look of the borders and corners, replacing two files is faster than replacing eight files.&lt;/li&gt;
&nbsp;&nbsp;&lt;/ul&gt;
&nbsp;&nbsp;&lt;p&gt;Some extra markup is needed to put the corners and borders in place. A bit annoying, yes, but this extra, non-semantic XHTML is quite minimal, and won&amp;rsquo;t get in the way if CSS is off, so I think I can live with it. It is possible to get rid of some more markup by using the &lt;code&gt;:before&lt;/code&gt; and &lt;code&gt;:after&lt;/code&gt; pseudo-elements, but since Internet Explorer doesn&amp;rsquo;t support them I&amp;rsquo;ll leave the extra markup in there.&lt;/p&gt;
&nbsp;&nbsp;&lt;p&gt;The main content area of this box can be filled with any elements you like, as long as their background colour is set to white (or whatever colour the inside of your box has), and their margins are zeroed. If the content is transparent the left border will be doubled because the image used to create it also contains the right border. You can avoid the need for that by splitting the image in two, or adding an extra &lt;code&gt;div&lt;/code&gt; to put all your content in.&lt;/p&gt;
&nbsp;&nbsp;&lt;div class="bb"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;
&nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="adwrap"&gt;
&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-1103643514001337";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_channel ="0994997786";
google_color_border = "CCCCCC";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_url = "666666";
google_color_text = "333333";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
&nbsp; src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;/div&gt;
&lt;div id="labfooter"&gt;
&nbsp;&lt;p&gt;&lt;a href="/lab/"&gt;Lab Index&lt;/a&gt; | &lt;a href="/"&gt;456 Berea Street Home&lt;/a&gt; | Copyright &amp;#169; 2003-2007 Roger Johansson&lt;/p&gt;
&nbsp;&lt;img src="http://www.bloggportalen.se/BlogPortal/view/Statistics?id=910" alt=""&gt;
&lt;/div&gt;
&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript"&gt;
_uacct = "UA-78628-1";
urchinTracker();
&lt;/script&gt;&lt;/body&gt;
&lt;/html&gt;]]></description>
		</item>
		<item>
			<title>CSS解决未知高度垂直居中的问题</title>
			<link>http://www.kingmx.com/article.php?id=14889</link>
			<pubDate>2007-1-6</pubDate>
			<description><![CDATA[
原文标题：Vertical Centering in CSS

副标题：Yuhu's Definitive Solution with Unknown Height

翻译：forestgan

尽管有CSS的vertical-align特性，但是并不能有效解决未知高度的垂直居中问题（在一个DIV标签里有未知高度的文本或图片的情况下）。

标准浏览器如Mozilla, Opera, Safari等.，可将父级元素显示方式设定为TABLE(display: table;) ，内部子元素定为table-cell (display: table-cell),通过vertical-align特性使其垂直居中，但非标准浏览器是不支持的。

非标准浏览器只能在子元素里设距顶部50%，里面再套个元素距顶部-50% 来抵消。

CSS 
body {padding: 0; margin: 0;}
body,html{height: 100%;}
#outer {height: 100%; overflow: hidden; position: relative;width: 100%; background:ivory;}
#outer[id] {display: table; position: static;}
#middle {position: absolute; top: 50%;} /* for explorer only*/
#middle[id] {display: table-cell; vertical-align: middle; position: static;}
#inner {position: relative; top: -50%;width: 400px;margin: 0 auto;} /* for explorer only */
div.greenBorder {border: 1px solid green; background-color: ivory;}

xhtml
&lt;div id="outer"&gt;
  &lt;div id="middle"&gt;
      &lt;div id="inner" class="greenBorder"&gt;
	     &lt;/div&gt;
	 &lt;/div&gt;
&lt;/div&gt;

以上CSS代码的优点是没有hacks，采用了IE不支持的CSS2选择器#value[id]。

CSS2选择器#value[id]相当于选择器#value，但是Internet Explorer不支持这种类型的选择器。同样地.value[class]，相当于.value,这些只有标准浏览器能读懂。

测试：Firefox1.5、Opera9.0、IE6.0、IE5.0通过。

2006-08-22 修改

上面的代码不支持IE7，还需要在最下面加二句：
*+html #outer[id]{position: relative;}
*+html #middle[id]{position: absolute; }

效果演示
]]></description>
		</item>
		<item>
			<title>未知总宽度的列表菜单水平居中的解决方案</title>
			<link>http://www.kingmx.com/article.php?id=14888</link>
			<pubDate>2007-1-6</pubDate>
			<description><![CDATA[
这是一个未知总宽度的列表菜单水平居中的例子，原文作者：Stu Nicholls&nbsp;。如果列表总宽度是已知的，那么居中是很容易的，只要设定margin:0 auto; ，而IE在Quirks Mode下，在外面容器中设text-align:center;就可以了。如果宽度是未知的，问题就俏有复杂了。

原文标题：Centering Float Left Menus

翻译：forestgan

解决方法：
经作者研究，一种非标准的方法，可以在IE5.5, IE6, Firefox, Mozilla, NN, Opera and Safari，上实现未知总宽度的列表菜单水平居中。

For Internet Explorer
在菜单外面使用一个&lt;del&gt;标签，风格设为：display:inline-block;，然后将 text-align:center;设在再外面的DIV上，而用text-decoration:none;去除&lt;del&gt;的删除线。

For other browsers
在列表菜单里不能使用：loat:left 或者 display:inline，而要使用：display:table / table-cell。

不支持Mac IE5.

CSS
#menu1 {
  width:408px;
  padding:0; 
  margin:0 auto; 
  list-style-type:none;
  }
#menu1 li {
  float:left;
  width:100px;
  border:1px solid #fff; 
  }
#menu1 a {
  display:block;
  width:100px;
  color:#000; 
  background:#d4d4d4; 
  text-align:center; 
  padding:4px 0; 
  text-decoration:none; 
  float:left; 
  }
#menu1 a:hover {
  color:#fff; 
  background:#08c;
  }


#menu2 {
  display:table;
  padding:0; 
  margin:0 auto; 
  list-style-type:none;
  white-space:nowrap;
  }
#menu2 li {
  display:table-cell;
  }
* html #menu2 li {
  float:left;
  }
#menu2 a {
  width:auto;
  display:block;
  padding:4px 16px;
  color:#fff; 
  background:#08c; 
  border:1px solid #fff; 
  text-decoration:none;
  }
* html #menu2 a {
  float:left;
  }
#menu2 a:hover {
  color:#000; 
  background:#d4d4d4;
  }

.container {clear:both; text-decoration:none;}
* html .container {display:inline-block;}

xhtml 
&lt;ul id="menu1"&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab Three&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab Four&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;del class="container"&gt;
  &lt;ul id="menu2"&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab Two: Longer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab Three: Longest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#nogo"&gt;Tab Four&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/del&gt;

作者发表这篇文章时在去年，我想大概是这个原因，所以没有提到用IE7测试，我用IE7RC1测试，完全可用。

因为DEL在这菜单中仅用于IE，所以把代码改了下：
&lt;!--[if IE]&gt;
  &lt;del class="container"&gt;
  &lt;![endif]--&gt;
  &lt;ul id="menu2"&gt;
&lt;li&gt;&lt;a href="#nogo"&gt;Tab One&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="#nogo"&gt;Tab Two: Longer&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="#nogo"&gt;Tab Three: Longest&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="#nogo"&gt;Tab Four&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if IE]&gt;
&lt;/del&gt;
&lt;![endif]--&gt;

这样标准浏览器可不加载DEL标签。

演示页
]]></description>
		</item>
		<item>
			<title>翻译文章：IE7 Bugs and Fixes</title>
			<link>http://www.kingmx.com/article.php?id=14887</link>
			<pubDate>2007-1-6</pubDate>
			<description><![CDATA[
IE6存在一个“著名”的peek-a-boo bug&nbsp;，但在IE7上似乎又有抬头迹象......

原文标题：IE7 Bugs and Fixes, Part I&nbsp;

简单翻译：Forestgan

亚利桑那大学图书馆网站是由Jeffrey Zeldman开发和维护的，为了避免IE6 的 peek-a-boo bug&nbsp;，在企业内部网上使用了"Holly Hack&nbsp;" ，在用IE7测试站点时，这个现象又出现了，尽管IE7的最新版本似乎已修正了这个bug。

2006年10月26日Jeffrey Zeldman测试和实施了，将以前的"* html"的通配符选择器改成"html"选择器.

原来的代码


/* Hides from IE5-mac \*/ 
* html #contentWrapper {height: 1%;} 
/* End hide from IE5-mac */ 


现在的代码


/* Hides from IE5-mac \*/ 
html #contentWrapper {height: 1%;} 
/* End hide from IE5-mac */mac */ 


测试环境：Windows XP SP2

IE7 
IE6 (SP1 standalone install from evolt.org and SP2 full install) 
IE5.5 (standalone install from evolt.org) 
Netscape 7.2 and 8.1 
Opera 7.11 and 8.54 and 9.00 
Firefox 2.0 

希望能帮助一些遇到同样问题的人们。

我试了下，这样的写法对IE都有效（测试在5.0、6.0、7.0）
]]></description>
		</item>
		<item>
			<title>如何正确使用标题元素、段落和强制换行</title>
			<link>http://www.kingmx.com/article.php?id=14886</link>
			<pubDate>2007-1-6</pubDate>
			<description><![CDATA[本文摘译自： Bulletproof HTML: 37 Steps to Perfect Markup&nbsp;
如何正确使用标题元素、段落和强制换行？如何使其更符合语义化呢？摘译自Bulletproof HTML: 37 Steps to Perfect Markup &nbsp;的二段小文，会对初学者带来点帮助。 

如何正确使用标题元素
HTML 标题元素类型是h1 、h2 、h3 、h4 、h5 和h6 ，数字表示标题的结构级别，我们要像在学校里学习那样认真对待标题（呵呵，不过我没念过多少书，69届初中-译者）。

最高级别的标题在页面中必须是h1 。它应该描述的是这个页面是做什么的。大多数的页面有一个h1 标题, 但复杂页面文件也许不止一个h1标签。

h2 标题将标记下个结构级，次一级的是h3,等等，而不能从h2跳到h4。h4 不应该跟随h2; 它们之间因该是h3 。

Hn 元素类型对标记标题是很重要的，Assistive 技术譬如屏幕器的读者可利用一个适当的标题来了解文件的概述。如果我们使用&lt;font size="7"&gt;...&lt;/font&gt;, 那他们就不能读懂了。

如何正确使用P和BR
P元素标记文本的一个段落。段落包括一个或更多的句子。

强制换行(br) 通常只是一个表面上的工具, 应该由CSS 而不是HTML 处理。但是, 强制换行在某些地方也可说有语义化的, 例如在诗歌、歌曲、邮件地址和计算机编码演示等方面，这些可能构成合法的用途, 但使用br 分离段落绝对是不正确的。

另一方面, P 有一个非常清楚的语义意思: 它表示段落。有时WEB设计者将P作为普通块级元素用, 显然是 不正确的。不难看到在一个表单里label 和 input标签被包含在P标签里， 这样在语义里绝对是错的，label 和 input标签不构成一个"paragraph" 。
]]></description>
		</item>
		<item>
			<title>三列自适应宽度液态布局│Three Column Liquid Layouts</title>
			<link>http://www.kingmx.com/article.php?id=14885</link>
			<pubDate>2007-1-6</pubDate>
			<description><![CDATA[
这是一个三列的自适应宽度液态布局，左拦是主要内容，中栏和右栏为次要内容，可放写导航、链接......,三列均采用百分比来控制。

此文由forestgan于2006-10-25发表，更多文章。

结构部分


&lt;div class="FGSideLeft"&gt; 
&lt;div class="col"&gt;&lt;/div&gt; 
&lt;/div&gt; 
&lt;div class="FGSideMiddle"&gt; 
&lt;div class="col"&gt;&lt;/div&gt; 
&lt;/div&gt; 
&lt;div class="FGSideRight"&gt; 
&lt;div class="col"&gt;&lt;/div&gt; 
&lt;/div&gt; 


FGSideLeft、FGSideMiddle和FGSideMiddle分别为左、中、右三列，因为每列均由百分比来控制的，为了计算方便、不至于出现滚动条和不使用HACKS，所以在容器里再嵌套了个子对象，由它来控制内补丁的值和边框。

表现部分


body{ 
margin: 1% 1% 1% 2%; 
} 
div.FGSideLeft{ 
width: 57%; 
float: left; 
margin-right: 1.3em; 
background: #FFFFFF; 
color: inherit; 
} 
div.FGSideMiddle{ 
width: 20%; 
float: left; 
margin-right: 1.3em; 
background: #F1F1F1; 
color: inherit; 
} 
div.FGSideRight{ 
width: 18%; 
float: left; 
background: #F1F1F1; 
color: inherit; 
} 
div.col{ 
padding: .5em; 
border: solid 1px #CCCCCC; 
} 


我这里设定三列的宽度一共是95%，加上二个外补丁，总宽度小于100%，为什么不设成100%呢？如果是100%，在某些浏览器里有可能会出现滚动条。 

如果你想要三列等高的话，可参阅这篇文章 介绍的方法来实现。

预览最终效果

下载
]]></description>
		</item>
		<item>
			<title>网页象素图的设计（不用图片的页面圆角）</title>
			<link>http://www.kingmx.com/article.php?id=14875</link>
			<pubDate>2007-1-5</pubDate>
			<description><![CDATA[首先看样式表文件：
.b1&nbsp;{height:1px;&nbsp;font-size:1px;&nbsp;overflow:hidden;&nbsp;display:block;&nbsp;background:#000;&nbsp;margin:0&nbsp;5px;}
.b2&nbsp;{height:1px;&nbsp;font-size:1px;&nbsp;overflow:hidden;&nbsp;display:block;&nbsp;background:#fff;&nbsp;
border-right:2px&nbsp;solid&nbsp;#000;&nbsp;border-left:2px&nbsp;solid&nbsp;#000;&nbsp;margin:0&nbsp;3px;}
.b3&nbsp;{height:1px;&nbsp;font-size:1px;&nbsp;overflow:hidden;&nbsp;display:block;&nbsp;background:#fff;&nbsp;
border-right:1px&nbsp;solid&nbsp;#000;&nbsp;border-left:1px&nbsp;solid&nbsp;#000;&nbsp;margin:0&nbsp;2px;}
.b4&nbsp;{height:2px;&nbsp;font-size:1px;&nbsp;overflow:hidden;&nbsp;display:block;&nbsp;background:#fff;&nbsp;
border-right:1px&nbsp;solid&nbsp;#000;&nbsp;border-left:1px&nbsp;solid&nbsp;#000;&nbsp;margin:0&nbsp;1px;}
接着看页面代码：
&lt;b&nbsp;class="b1"&gt;&lt;/b&gt;&lt;b&nbsp;class="b2"&gt;&lt;/b&gt;&lt;b&nbsp;class="b3"&gt;&lt;/b&gt;&lt;b&nbsp;class="b4"&gt;&lt;/b&gt;
&lt;b&nbsp;class="b4"&gt;&lt;/b&gt;&lt;b&nbsp;class="b3"&gt;&lt;/b&gt;&lt;b&nbsp;class="b2"&gt;&lt;/b&gt;&lt;b&nbsp;class="b1"&gt;&lt;/b&gt;
当然你也可以用其他的标签&lt;div&gt;或者&lt;span&gt;&lt;a&gt;之类，应该也是可以的
在上面两句之间加上一个左右border的content
这就是效果了：

是不是很不错呢，来仔细分析一下代码吧：

好不容易才做好这张图，也不知道怎么表现更加清楚，我相信大家应该能看得懂吧，原理就是在象素做图。是不是很有意思呢～css的功能真的好强大啊，明白原理后就能举一反三设计出许多样式了，让我们大胆的设计出各种效果吧，坚信css能实现的，还有许多的效果]]></description>
		</item>
	</channel>
 </rss>
