<?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>容我织梦 &#187; html</title>
	<atom:link href="http://www.52sonen.com/index.php/archives/tag/html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.52sonen.com</link>
	<description>专注于前端开发、平面广告、网页设计</description>
	<lastBuildDate>Thu, 02 Sep 2010 06:42:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTML4.0与XHTML1.0的区别</title>
		<link>http://www.52sonen.com/index.php/archives/728</link>
		<comments>http://www.52sonen.com/index.php/archives/728#comments</comments>
		<pubDate>Tue, 22 Sep 2009 04:17:58 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[Css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=728</guid>
		<description><![CDATA[XHTML是XML的一个应用，一些在基于SGML的HTML 4中完全合法的习惯在XHTML中必须改变。编排良好性Well-formedness是[XML]引入的一个新概念。从本质上说，这意味着元素必须有结束标签，或者必须以特殊方式书写(在下面说明)。
　　元素必须嵌套，尽管SGML规定层叠非法，但现有的浏览器普遍允许层叠。
　　正确：嵌套元素。
　　&#60;p&#62;here is an emphasized &#60;em&#62;paragraph&#60;/em&#62;.&#60;/p&#62;
　　不正确：层叠元素。
　　&#60;p&#62;here is an emphasized &#60;em&#62;paragraph.&#60;/p&#62;&#60;/em&#62;
　　元素和属性名必须小写
　　对所有HTML元素和属性名，XHTML 文档必须使用小写。 因为XML是大小写敏感的，所以这个差别是必须的。如 &#60;li&#62; 和 &#60;LI&#62; 是不同的标签。
　　对非空元素，必须使用结束标签
　　在基于 SGML的 HTML 4 中，一些隐含结束意义的元素允许忽略结束标签。而在基于XML的XHTML中，这种忽略不被允许。除了在DTD中被声明为空的元素，所有元素必须有结束标签。
　　正确：结束了的元素。
　　&#60;p&#62;here is a paragraph.&#60;/p&#62;&#60;p&#62;here is another paragraph.&#60;/p&#62;

　　不正确：未结束元素。
　　&#60;p&#62;here is a paragraph.&#60;p&#62;here is another paragraph.
　　属性值必须在引号中
　　所有的属性必须用引号，即使是数字。
　　正确：在引号中的属性值
　　&#60;table rows=&#8221;3&#8243;&#62;
　　不正确：不在引号中的属性值。
　　&#60;table rows=3&#62;
　　属性最小化
　　XML 不支持属性最小化. 属性值对必须写全。象compact，checked这样的属性名不能不指定属性值而在元素中出现。
　　正确：没有最小化的属性
　　&#60;dl compact=&#8221;compact&#8221;&#62;
　　不正确：最小化属性
　　&#60;dl compact&#62;
　　空元素
　　空元素要么必须有结束标签，要么起始标签以/&#62;结束. 例如，&#60;br/&#62;或&#60;hr&#62;&#60;/hr&#62;. 请参看HTML兼容性指导 HTML Compatibility Guidelines 中的信息，以保证向后兼容HTML 4用户代理程序
　　正确：结束的空元素
　　&#60;br/&#62;&#60;hr/&#62;
　　错误：未结束的空标签
　　&#60;br&#62;&#60;hr&#62;
　　属性值中的空白字符处理
　　对属性值，用户代理程序将删去引导和后序空白符，将一个或多个空白符(包括换行)转换成单个字符间空间(在西方书写体中是一个ASCII空格) See Section 3.3.3 of [XML]。
　　Script and Style 元素
　　　　在XHTML中，script和style元素声明为#PCDATA内容形式，因此，&#60; 和 &#38; 被看作是标识的开始，&#60;和&#38; 这样的实体被XML处理程序看作为实体引用而分别被认为是&#60; 和 &#38; . 将script和style元素的内容包裹在CDATA记号部分中避免了这些实体的扩张。

 Example Source Code [www.52css.com]
&#60;script&#62;
&#60;![CDATA[
... unescaped script content ...
]]&#62;
&#60;/script&#62;

　　CDATA 部分被 XML 处理程序识别，是文档对象模型中一个结点。请参看1.3节Section 1.3的DOM LEVEL 1推荐标准[DOM]。
　　替代的方式是使用外部script和style文档。
　　SGML 禁止
　　SGML 给作者的DTD可以指定在一个元素内部禁止出现的元素。这样的禁止在XML中是不可能的。
　　例如，严格的 HTML 4 DTD 禁止任何深度的’a’元素对另一’a’元素的嵌套。在XML中无法写出这样的禁止。尽管这些禁止不能在DTD中定义，一些元素不应该被嵌套。在标准化的附录B Appendix　B中是这些元素的汇总。
　　具有 &#8217;id&#8217; 和 &#8217;name&#8217; 属性的元素
　　HTML 4 定义了name属性的元素有 a，applet，form，frame，iframe，img，and map. HTML 4还引入了 id 属性. 这两个属性都是被设计作为片段标识符。
　　在XML中，片段标识符是ID类型，每个元素只能有一个ID类型的属性。因此，在XHTML1.0中，id属性被定义为ID类型。为保证XHTML1.0文档是结构良好的XML文档，在定义一个片段标识符时，XHTML文档必须使用id属性，即使是对那些以前用name属性的元素。请参看 HTML Compatibility Guidelines 的信息，确保XHTML文档以text/html媒体类型使用时，这些”锚”能向后兼容。 
　　注意，在XHTML 1.0中，name 属性不被正式支持，在以后的XHTML版本中将被删除。
]]></description>
			<content:encoded><![CDATA[<p>XHTML是XML的一个应用，一些在基于SGML的HTML 4中完全合法的习惯在XHTML中必须改变。编排良好性Well-formedness是[XML]引入的一个新概念。从本质上说，这意味着元素必须有结束标签，或者必须以特殊方式书写(在下面说明)。</p>
<p>　　元素必须嵌套，尽管SGML规定层叠非法，但现有的浏览器普遍允许层叠。</p>
<p>　　正确：嵌套元素。<br />
　　&lt;p&gt;here is an emphasized &lt;em&gt;paragraph&lt;/em&gt;.&lt;/p&gt;</p>
<p>　　不正确：层叠元素。<br />
　　&lt;p&gt;here is an emphasized &lt;em&gt;paragraph.&lt;/p&gt;&lt;/em&gt;</p>
<p>　　元素和属性名必须小写<br />
　　对所有HTML元素和属性名，XHTML 文档必须使用小写。 因为XML是大小写敏感的，所以这个差别是必须的。如 &lt;li&gt; 和 &lt;LI&gt; 是不同的标签。</p>
<p>　　对非空元素，必须使用结束标签<br />
　　在基于 SGML的 HTML 4 中，一些隐含结束意义的元素允许忽略结束标签。而在基于XML的XHTML中，这种忽略不被允许。除了在DTD中被声明为空的元素，所有元素必须有结束标签。</p>
<p>　　正确：结束了的元素。<br />
　　&lt;p&gt;here is a paragraph.&lt;/p&gt;&lt;p&gt;here is another paragraph.&lt;/p&gt;<br />
<span id="more-728"></span><br />
　　不正确：未结束元素。<br />
　　&lt;p&gt;here is a paragraph.&lt;p&gt;here is another paragraph.</p>
<p>　　属性值必须在引号中<br />
　　所有的属性必须用引号，即使是数字。</p>
<p>　　正确：在引号中的属性值<br />
　　&lt;table rows=&#8221;3&#8243;&gt;</p>
<p>　　不正确：不在引号中的属性值。<br />
　　&lt;table rows=3&gt;</p>
<p>　　属性最小化<br />
　　XML 不支持属性最小化. 属性值对必须写全。象compact，checked这样的属性名不能不指定属性值而在元素中出现。</p>
<p>　　正确：没有最小化的属性<br />
　　&lt;dl compact=&#8221;compact&#8221;&gt;</p>
<p>　　不正确：最小化属性<br />
　　&lt;dl compact&gt;</p>
<p>　　空元素<br />
　　空元素要么必须有结束标签，要么起始标签以/&gt;结束. 例如，&lt;br/&gt;或&lt;hr&gt;&lt;/hr&gt;. 请参看HTML兼容性指导 HTML Compatibility Guidelines 中的信息，以保证向后兼容HTML 4用户代理程序</p>
<p>　　正确：结束的空元素<br />
　　&lt;br/&gt;&lt;hr/&gt;<br />
　　错误：未结束的空标签<br />
　　&lt;br&gt;&lt;hr&gt;</p>
<p>　　属性值中的空白字符处理<br />
　　对属性值，用户代理程序将删去引导和后序空白符，将一个或多个空白符(包括换行)转换成单个字符间空间(在西方书写体中是一个ASCII空格) See Section 3.3.3 of [XML]。</p>
<p>　　Script and Style 元素<br />
　　　　在XHTML中，script和style元素声明为#PCDATA内容形式，因此，&lt; 和 &amp; 被看作是标识的开始，&lt;和&amp; 这样的实体被XML处理程序看作为实体引用而分别被认为是&lt; 和 &amp; . 将script和style元素的内容包裹在CDATA记号部分中避免了这些实体的扩张。</p>
<div>
<div> Example Source Code [www.52css.com]</div>
<div>&lt;script&gt;<br />
&lt;![CDATA[<br />
... unescaped script content ...<br />
]]&gt;<br />
&lt;/script&gt;</div>
</div>
<p>　　CDATA 部分被 XML 处理程序识别，是文档对象模型中一个结点。请参看1.3节Section 1.3的DOM LEVEL 1推荐标准[DOM]。</p>
<p>　　替代的方式是使用外部script和style文档。</p>
<p>　　SGML 禁止</p>
<p>　　SGML 给作者的DTD可以指定在一个元素内部禁止出现的元素。这样的禁止在XML中是不可能的。</p>
<p>　　例如，严格的 HTML 4 DTD 禁止任何深度的’a’元素对另一’a’元素的嵌套。在XML中无法写出这样的禁止。尽管这些禁止不能在DTD中定义，一些元素不应该被嵌套。在标准化的附录B Appendix　B中是这些元素的汇总。</p>
<p>　　具有 &#8217;id&#8217; 和 &#8217;name&#8217; 属性的元素</p>
<p>　　HTML 4 定义了name属性的元素有 a，applet，form，frame，iframe，img，and map. HTML 4还引入了 id 属性. 这两个属性都是被设计作为片段标识符。</p>
<p>　　在XML中，片段标识符是ID类型，每个元素只能有一个ID类型的属性。因此，在XHTML1.0中，id属性被定义为ID类型。为保证XHTML1.0文档是结构良好的XML文档，在定义一个片段标识符时，XHTML文档必须使用id属性，即使是对那些以前用name属性的元素。请参看 HTML Compatibility Guidelines 的信息，确保XHTML文档以text/html媒体类型使用时，这些”锚”能向后兼容。 </p>
<p>　　注意，在XHTML 1.0中，name 属性不被正式支持，在以后的XHTML版本中将被删除。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/728/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10个很有用但是IE浏览器不支持的CSS属性</title>
		<link>http://www.52sonen.com/index.php/archives/676</link>
		<comments>http://www.52sonen.com/index.php/archives/676#comments</comments>
		<pubDate>Mon, 20 Jul 2009 13:57:22 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[属性]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=676</guid>
		<description><![CDATA[尽管我们对CSS已经非常熟悉，应付日常的工作或在各个浏览器中搞定CSS的兼容性已经很得心应手，但是并不是所有的CSS属性都是那么的常用。在本文中，让我们看看10个可能非常有用但是在该死的IE浏览器中(主要是IE6和IE7)却不能使用的CSS属性。看完了该文，你可能会更加讨厌IE浏览器吧。
(请注意，本文发表时尚未测试这些属性在IE8中的表现。我稍后会做一个测试页面，用来测试这些属性在所以IE浏览器中的表现。)
1. Outline在调试CSS问题的时候，我常常在指定元素上添加border来精确的查看该元素会发生什么并帮助确定问题的来源。这常常是有效的，因为它可以在布局上给我更加具体的可视性。但是如果是块级元素，这可能会发生某些错误——在任何块级元素上添加1px的边框很可能会影响到布局，它会让这个元素的宽度额外增加2px。
outline 属性是完美的替代者，因为它可以在不影响文档流的情况下呈现该对象。但是IE6 和IE7 不支持 outline 属性，所以，它不能在这两个浏览器中用于调试。
2. Inherit (值)在CSS开发中有很多这样的例子：通过在特定元素上设置某些样式来告诉该元素来“继承”它父级元素的所有已添加的属性，这样你就可以避免相当多的键盘输入。
这可以通过设置 inherit 来很容易的实现。这可能很有用。比如，当重写 background 属性的时候，常常会有很多的文字在该属性中(色彩、图片的URL地址、位置等)。所以，与其重新写这些值，你可能仅仅想要考虑中的元素和其父级元素有相同的背景属性，一个 inherit 值就可以搞定一切——这显然大大的节省了键盘输入。
不幸的是， inherit 值在IE6和IE7不被支持（除了用于 direction (文字方向) 和 visibility 属性）。
某人说，代码就像女人的裙子——越短越好，看来IE会阻碍我们这个愿望的实现。

3. Empty-Cells该属性只用于table或者”display”属性被设置为”table-cell”的元素。如果你动态的为一个table添加内容，就可能会遇到某个单元格的内容为空的情况，然后你又不希望这个空的单元格的边框、背景色、背景图片等隐藏掉。
使用”empty-cells: hide”就能解决这个问题，它会将可能出现这种情况的单元格完全隐藏掉。
Internet Explorer 不支持empty-cells属性。
4. Caption-Side说到table 的属性，这个属性用于声明显示在表格的侧栏的表格标题。它接受 top 、 bottom 、 left 和 right 四个值。Internet Exporer 不支持这个属性，table的标题在IE6和IE7中将总是出现在表格的顶部。
5. Counter-Increment / Counter-Reset有序列表(
)非常方便，因为它可以省去你手工添加递增数字的麻烦，而且它允许你不用更改数字就能改变列表的序列。
CSS 拥有 counter-increment 和 counter-reset 属性，它允许你用来自动生成递增数字到几乎所有的HTML元素上，就像有序列表的效果一样。
这里有个示例：
1
2
 h2 {counter-increment: headers;}
h2:before {content: counter(headers) &#8220;. &#8220;;}
上面的样式将在所有的
 标签前面自动添加递增的数字，而且允许你在h2标签上实现和li标签同样的的效果。
但是IE6, IE7 [...]]]></description>
			<content:encoded><![CDATA[<p>尽管我们对CSS已经非常熟悉，应付日常的工作或在各个浏览器中搞定CSS的兼容性已经很得心应手，但是并不是所有的CSS属性都是那么的常用。在本文中，让我们看看10个可能非常有用但是在该死的IE浏览器中(主要是IE6和IE7)却不能使用的CSS属性。看完了该文，你可能会更加讨厌IE浏览器吧。</p>
<p>(请注意，本文发表时尚未测试这些属性在IE8中的表现。我稍后会做一个测试页面，用来测试这些属性在所以IE浏览器中的表现。)<br />
1. Outline在调试CSS问题的时候，我常常在指定元素上添加border来精确的查看该元素会发生什么并帮助确定问题的来源。这常常是有效的，因为它可以在布局上给我更加具体的可视性。但是如果是块级元素，这可能会发生某些错误——在任何块级元素上添加1px的边框很可能会影响到布局，它会让这个元素的宽度额外增加2px。<br />
outline 属性是完美的替代者，因为它可以在不影响文档流的情况下呈现该对象。但是IE6 和IE7 不支持 outline 属性，所以，它不能在这两个浏览器中用于调试。<br />
2. Inherit (值)在CSS开发中有很多这样的例子：通过在特定元素上设置某些样式来告诉该元素来“继承”它父级元素的所有已添加的属性，这样你就可以避免相当多的键盘输入。<br />
这可以通过设置 inherit 来很容易的实现。这可能很有用。比如，当重写 background 属性的时候，常常会有很多的文字在该属性中(色彩、图片的URL地址、位置等)。所以，与其重新写这些值，你可能仅仅想要考虑中的元素和其父级元素有相同的背景属性，一个 inherit 值就可以搞定一切——这显然大大的节省了键盘输入。<br />
不幸的是， inherit 值在IE6和IE7不被支持（除了用于 direction (文字方向) 和 visibility 属性）。<br />
某人说，代码就像女人的裙子——越短越好，看来IE会阻碍我们这个愿望的实现。<br />
<span id="more-676"></span><br />
3. Empty-Cells该属性只用于table或者”display”属性被设置为”table-cell”的元素。如果你动态的为一个table添加内容，就可能会遇到某个单元格的内容为空的情况，然后你又不希望这个空的单元格的边框、背景色、背景图片等隐藏掉。<br />
使用”empty-cells: hide”就能解决这个问题，它会将可能出现这种情况的单元格完全隐藏掉。<br />
Internet Explorer 不支持empty-cells属性。<br />
4. Caption-Side说到table 的属性，这个属性用于声明显示在表格的侧栏的表格标题。它接受 top 、 bottom 、 left 和 right 四个值。Internet Exporer 不支持这个属性，table的标题在IE6和IE7中将总是出现在表格的顶部。<br />
5. Counter-Increment / Counter-Reset有序列表(
<ol>)非常方便，因为它可以省去你手工添加递增数字的麻烦，而且它允许你不用更改数字就能改变列表的序列。<br />
CSS 拥有 counter-increment 和 counter-reset 属性，它允许你用来自动生成递增数字到几乎所有的HTML元素上，就像有序列表的效果一样。<br />
这里有个示例：<br />
1<br />
2<br />
 h2 {counter-increment: headers;}<br />
h2:before {content: counter(headers) &#8220;. &#8220;;}<br />
上面的样式将在所有的<br />
<h2> 标签前面自动添加递增的数字，而且允许你在h2标签上实现和li标签同样的的效果。<br />
但是IE6, IE7 甚至Safari(直到3.x版本)还不支持这些属性。当然，IE6也不支持:before 伪元素。<br />
6. Min-Height有时，一个网站的设计或布局结构需要一个有固定高度的内容区域，否则特定的视觉效果就会丢掉。这可能会因为一个渐变背景、一个独特的下拉列表、 或者可能是因为PS出来的很酷的发光效果。但是有的时候，页面中的内容会比较多，而页面却不能像预期那样展开。<br />
这个时候就需要用到 min-height 属性了，因为它可以告诉浏览器在一个特定的块级元素上渲染最小的高度，不管内容的实际高度是否达到了这个最小高度。然后呢，如果内容超出了最小高度，该元素就会适度的扩展开。<br />
使用min-height 唯一需要注意到的是它在IE6中不被支持。我们都知道IE6在（缓慢的）退出历史舞台，但是有的客户可能仍然要求他们的网站支持这个该死的浏览器。<br />
不过令人高兴的是，IE6 渲染 height 的值的方法正好和其它浏览器渲染“min-height”的方式一样，所以你只需要一个针对IE6的hack或独立的样式表来为该元素添加特定的 height ，这个问题就解决了。<br />
IE6 同样无视 min-width 、 max-height 和 max-width ， 但是上述方法在这些属性上也是可行的。<br />
7. :hover从技术上来说，:hover只是一个伪类，但是它在IE6中不被支持（IE7和IE8支持）。:hover伪类允许你在元素上添加任何的鼠标经过样式。这非常有用，可以避免(至少在某种程度上)使用JavaScript。<br />
但是如果你的网站，需要完全支持IE6，特别是在中国这种IE6一手遮天的情况下，那么你就必须考虑取消使用这个伪类，除非相关的标签有个”href”属性，比如<a>标签。而且如果要实现这种效果，可能必须借助于javascript和额外的样式。<br />
8. DisplayDisplay 通常被设置为这三个值中的一个： block、inline和 none。“得益于”IE，Display的其它值很少被用到。这些值包括 inline-block、table、inline-table和table-cell等，这些属性对于解决一些特殊的布局问题时，是很有用的。<br />
所以，尽管IE 确实支持Display的这三个基本属性，但是它基本上不支持其它属性。<br />
其实，IE8对display的属性支持已经相当完整了。不过，对于inline-block属性，IE6/7只支持本身为inline的元素。<br />
想了解更多关于Display在各个浏览器中的支持情况，请查阅这里——神飞注<br />
9. Clip这是一个在特殊情况下能派上用场的很有趣的CSS属性。它可能和不可预知的、动态生成的内容结合起来。简单来说，这个属性允许你在一个特定的元素上指定隐藏区域——也可以理解为，在一个绝对定位的元素中，按照一定的设置来裁剪该元素的显示区域，超出该区域的内容会被隐藏掉。语法看起来像这样的：<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
 div.clipped {<br />
	padding: 20px;<br />
	width: 400px;<br />
	height: 400px;<br />
	clip: rect(20px, 300px, 200px, 100px);<br />
	position: absolute;<br />
	}<br />
修剪只能用于一个绝对定位的元素，而且只用使用矩形区域。括号内的数字划出的区域(200px*180px大小)为可见区域，该区域以外的内容不可见或者被剪切掉。<br />
技术上来讲， clip 属性被IE支持，但是只支持无逗号的语法，比如<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
 div.clipped {<br />
	padding: 20px;<br />
	width: 400px;<br />
	height: 400px;<br />
	clip: rect(20px 300px 200px 100px);<br />
	position: absolute;<br />
	}<br />
上面的样式（rect后面括号里的属性没有用逗号隔开）在大多数浏览器下都可运行，但是可能不会通过CSS验证，因为语句没有用逗号隔开。<br />
10. :focus这是另外一个伪类需要在这里被提及的，因为所有的非IE浏览器，都支持这个属性。:focus伪类允许你声明一个特别的样式，当一个页面元素成为键盘(鼠标)焦点的时候，将该样式动态的应用到该元素上。这在表单元素上非常有用，因为你可以在一个输入框被选中的时候给它添加一个边框。<br />
下面的样式将在输入框成为键盘焦点的时候添加一个红色的边框：<br />
1<br />
2<br />
3<br />
 input:focus {<br />
	border: 1px solid #f00;<br />
	}<br />
/*以下内容为前端观察自己添加，与英文原文无关。@05-25-2009*/<br />
11. opacityopacity也是一个非常有用的属性，目前该属性在各个非IE浏览器都得到了良好的支持，包括FF也将在3.5版本中增强对opacity的支持，替换掉-moz-opacity（目前FF的opacity会自动继承到子元素）。但是在IE下，你不得不使用IE私有的滤镜来实现。<br />
12. RGBaRGBa色彩可以很方便的实现透明色彩，包括字体颜色、背景颜色和边框颜色等，都可以使用RGBa来实现色彩的透明效果。该属性在所有(A级)非IE浏览器下都已经被支持了，唯有IE不行。查看RGBa色彩的浏览器支持 。<br />
这就是本文的全部了，翻译完成之后，神飞也受益匪浅，这10个属性中，有我们常用的，更有我们不常用却非常有用的——CSS学无止境。<br />
译自：impressivewebs<br />
原文：10个很有用但是IE浏览器不支持的CSS属性<br />
版权所有，转载请注明出处，多谢！</a></h2>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/676/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个倒数计时效果</title>
		<link>http://www.52sonen.com/index.php/archives/667</link>
		<comments>http://www.52sonen.com/index.php/archives/667#comments</comments>
		<pubDate>Tue, 14 Jul 2009 13:24:34 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[倒数计时]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=667</guid>
		<description><![CDATA[&#60;DIV id=time_conter style=&#8221;DISPLAY: none; bgcolor:#ccffff; FONT-WEIGHT: bold; WIDTH: 100%; COLOR: #cc0000; PADDING-TOP: 150px; FONT-FAMILY: arial; TEXT-ALIGN: center;&#8221;&#62;&#60;P style=&#8221;font-size:12px;&#8221;&#62;离国庆节倒计时还有&#60;/P&#62;&#60;DIV style=&#8221;FONT-SIZE: 38px&#8221;&#62;&#60;SPAN id=h&#62;&#60;/SPAN&#62;小时&#60;SPAN id=m&#62;&#60;/SPAN&#62;分&#60;SPAN id=s&#62;&#60;/SPAN&#62;秒&#60;SPAN id=ms&#62;&#60;/SPAN&#62;微秒&#60;/DIV&#62;&#60;/DIV&#62;&#60;SCRIPT language=javascript&#62; function n2(n){if(n &#60; 10)return &#8220;0&#8243; + n.toString();return n.toString();}function n3(n){if(n &#60; 10)return &#8220;00&#8243; + n.toString();if(n &#60; 100)return &#8220;0&#8243; + n.toString();return n.toString();}function setLeft(){var d1 = new Date();var n;n = (d.getTime() &#8211; d1.getTime());document.getElementById(&#8220;ms&#8221;).innerHTML = n3(n % [...]]]></description>
			<content:encoded><![CDATA[<p>&lt;DIV id=time_conter <br style="padding: 0px; margin: 0px;" />style=&#8221;DISPLAY: none; bgcolor:#ccffff; FONT-WEIGHT: bold; WIDTH: 100%; COLOR: #cc0000; PADDING-TOP: 150px; FONT-FAMILY: arial; TEXT-ALIGN: center;&#8221;&gt;<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />&lt;P style=&#8221;font-size:12px;&#8221;&gt;离国庆节倒计时还有&lt;/P&gt;<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />&lt;DIV style=&#8221;FONT-SIZE: 38px&#8221;&gt;&lt;SPAN id=h&gt;&lt;/SPAN&gt;小时&lt;SPAN id=m&gt;&lt;/SPAN&gt;分&lt;SPAN <br style="padding: 0px; margin: 0px;" />id=s&gt;&lt;/SPAN&gt;秒&lt;SPAN id=ms&gt;&lt;/SPAN&gt;微秒&lt;/DIV&gt;<br style="padding: 0px; margin: 0px;" />&lt;/DIV&gt;<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /><span id="more-667"></span><br style="padding: 0px; margin: 0px;" />&lt;SCRIPT language=javascript&gt; <br style="padding: 0px; margin: 0px;" />function n2(n)<br style="padding: 0px; margin: 0px;" />{<br style="padding: 0px; margin: 0px;" />if(n &lt; 10)return &#8220;0&#8243; + n.toString();<br style="padding: 0px; margin: 0px;" />return n.toString();<br style="padding: 0px; margin: 0px;" />}<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />function n3(n)<br style="padding: 0px; margin: 0px;" />{<br style="padding: 0px; margin: 0px;" />if(n &lt; 10)return &#8220;00&#8243; + n.toString();<br style="padding: 0px; margin: 0px;" />if(n &lt; 100)return &#8220;0&#8243; + n.toString();<br style="padding: 0px; margin: 0px;" />return n.toString();<br style="padding: 0px; margin: 0px;" />}<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />function setLeft()<br style="padding: 0px; margin: 0px;" />{<br style="padding: 0px; margin: 0px;" />var d1 = new Date();<br style="padding: 0px; margin: 0px;" />var n;<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />n = (d.getTime() &#8211; d1.getTime());<br style="padding: 0px; margin: 0px;" />document.getElementById(&#8220;ms&#8221;).innerHTML = n3(n % 1000);<br style="padding: 0px; margin: 0px;" />n = (n &#8211; n % 1000) / 1000;<br style="padding: 0px; margin: 0px;" />document.getElementById(&#8220;s&#8221;).innerHTML = n2(n % 60);<br style="padding: 0px; margin: 0px;" />n = (n &#8211; n % 60) / 60;<br style="padding: 0px; margin: 0px;" />document.getElementById(&#8220;m&#8221;).innerHTML = n2(n % 60);<br style="padding: 0px; margin: 0px;" />n = (n &#8211; n % 60) / 60;<br style="padding: 0px; margin: 0px;" />document.getElementById(&#8220;h&#8221;).innerHTML = n2(n);<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />setTimeout(&#8220;setLeft();&#8221;, 1);<br style="padding: 0px; margin: 0px;" />}<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" />var a, a1, a2;<br style="padding: 0px; margin: 0px;" />a = unescape(&#8220;2009-10-1 00:00:00&#8243;).split(&#8221; &#8220;);<br style="padding: 0px; margin: 0px;" />if(a.length &gt; 1)<br style="padding: 0px; margin: 0px;" />{<br style="padding: 0px; margin: 0px;" />document.getElementById(&#8220;time_conter&#8221;).style.display=&#8221;";<br style="padding: 0px; margin: 0px;" />a1 = a[0].split(&#8220;-&#8221;);<br style="padding: 0px; margin: 0px;" />a2 = a[1].split(&#8220;:&#8221;);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/667/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox和IE的技巧集合 (中)</title>
		<link>http://www.52sonen.com/index.php/archives/636</link>
		<comments>http://www.52sonen.com/index.php/archives/636#comments</comments>
		<pubDate>Wed, 24 Jun 2009 05:01:36 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=636</guid>
		<description><![CDATA[11.如何对齐文本与文本输入框
加上 vertical-align:middle;
＜style type=”text/css”&#62;
＜!–
input {
width:200px;
height:30px;
border:1px solid red;
vertical-align:middle;
}
–&#62;
＜/style&#62;
12.web标准中定义id与class有什么区别吗
一.web标准中是不容许重复ID的,比如 div id=”aa” 不容许重复2次,而class 定义的是类,理论上可以无限重复, 这样需要多次引用的定义便可以使用他.
二.属性的优先级问题
ID 的优先级要高于class,看上面的例子
三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单.

13. LI中内容超过长度后以省略号显示的方法
此方法适用与IE与OP浏览器
＜style type=”text/css”&#62;
＜!–
li {
width:200px;
white-space:nowrap;
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
overflow: hidden;
}
–&#62;
＜/style&#62;
14.为什么web标准中IE无法设置滚动条颜色了
解决办法是将body换成html
＜!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”&#62;
＜meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ /&#62;
＜style type=”text/css”&#62;
＜!–
html {
scrollbar-face-color:#f6f6f6;
scrollbar-highlight-color:#fff;
scrollbar-shadow-color:#eeeeee;
scrollbar-3dlight-color:#eeeeee;
scrollbar-arrow-color:#000;
scrollbar-track-color:#fff;
scrollbar-darkshadow-color:#fff;
}
–&#62;
＜/style&#62;
15.为什么无法定义1px左右高度的容器
IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden 　 zoom:0.08 　 line-height:1px
16.怎么样才能让层显示在FLASH之上呢
解决的办法是给FLASH设置透明
＜param name=”wmode” value=”transparent” /&#62;
17.怎样使一个层垂直居中于浏览器中
这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二
＜style type=”text/css”&#62;
＜!–
div {
position:absolute;
top:50%;
lef:50%;
margin:-100px 0 0 -100px;
width:200px;
height:200px;
border:1px solid red;
}
–&#62;
＜/style&#62;
18. Div居中问题
div设置 margin-left, margin-right 为 auto 时已经居中，IE 不行，IE需要设定body居中，首先在父级元素定义text-algin: center;这个的意思就是在父级元素内的内容居中。
19.链接(a标签)的边框与背景
a链接加边框和背景色，需设置 display: block, 同时设置 float: [...]]]></description>
			<content:encoded><![CDATA[<p>11.如何对齐文本与文本输入框</p>
<p>加上 vertical-align:middle;<br />
＜style type=”text/css”&gt;<br />
＜!–<br />
input {<br />
width:200px;<br />
height:30px;<br />
border:1px solid red;<br />
vertical-align:middle;<br />
}<br />
–&gt;<br />
＜/style&gt;</p>
<p>12.web标准中定义id与class有什么区别吗</p>
<p>一.web标准中是不容许重复ID的,比如 div id=”aa” 不容许重复2次,而class 定义的是类,理论上可以无限重复, 这样需要多次引用的定义便可以使用他.</p>
<p>二.属性的优先级问题<br />
ID 的优先级要高于class,看上面的例子</p>
<p>三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单.</p>
<p><span id="more-636"></span></p>
<p>13. LI中内容超过长度后以省略号显示的方法</p>
<p>此方法适用与IE与OP浏览器</p>
<p>＜style type=”text/css”&gt;<br />
＜!–<br />
li {<br />
width:200px;<br />
white-space:nowrap;<br />
text-overflow:ellipsis;<br />
-o-text-overflow:ellipsis;<br />
overflow: hidden;<br />
}</p>
<p>–&gt;<br />
＜/style&gt;</p>
<p>14.为什么web标准中IE无法设置滚动条颜色了</p>
<p>解决办法是将body换成html<br />
＜!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”&gt;<br />
＜meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ /&gt;<br />
＜style type=”text/css”&gt;<br />
＜!–<br />
html {<br />
scrollbar-face-color:#f6f6f6;<br />
scrollbar-highlight-color:#fff;<br />
scrollbar-shadow-color:#eeeeee;<br />
scrollbar-3dlight-color:#eeeeee;<br />
scrollbar-arrow-color:#000;<br />
scrollbar-track-color:#fff;<br />
scrollbar-darkshadow-color:#fff;<br />
}<br />
–&gt;<br />
＜/style&gt;</p>
<p>15.为什么无法定义1px左右高度的容器</p>
<p>IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden 　 zoom:0.08 　 line-height:1px</p>
<p>16.怎么样才能让层显示在FLASH之上呢</p>
<p>解决的办法是给FLASH设置透明<br />
＜param name=”wmode” value=”transparent” /&gt;</p>
<p>17.怎样使一个层垂直居中于浏览器中</p>
<p>这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二<br />
＜style type=”text/css”&gt;<br />
＜!–<br />
div {<br />
position:absolute;<br />
top:50%;<br />
lef:50%;<br />
margin:-100px 0 0 -100px;<br />
width:200px;<br />
height:200px;<br />
border:1px solid red;<br />
}<br />
–&gt;<br />
＜/style&gt;</p>
<p>18. Div居中问题</p>
<p>div设置 margin-left, margin-right 为 auto 时已经居中，IE 不行，IE需要设定body居中，首先在父级元素定义text-algin: center;这个的意思就是在父级元素内的内容居中。</p>
<p>19.链接(a标签)的边框与背景</p>
<p>a链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。</p>
<p>20.超链接访问过后hover样式就不出现的问题</p>
<p>被点击访问过的超链接样式不在具有hover和active了,很多人应该都遇到过这个问题,解决方法是改变CSS属性的排列顺序: L-V-H-A<br />
Code:<br />
＜style type=”text/css”&gt;<br />
＜!–<br />
a:link {}<br />
a:visited {}<br />
a:hover {}<br />
a:active {}<br />
–&gt;<br />
＜/style&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/636/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>罕为人知的HTML语义元素</title>
		<link>http://www.52sonen.com/index.php/archives/272</link>
		<comments>http://www.52sonen.com/index.php/archives/272#comments</comments>
		<pubDate>Wed, 04 Mar 2009 15:32:25 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[语义]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=272</guid>
		<description><![CDATA[作者：Mark Norman Francis · 2008年7月8日
原文：http://team.operachina.com/node/37
序言在本篇文章中，我将向你们介绍一些更隐晦、罕为人知且极少用到的 HTML 语义元素。我将介绍有关标记程序代码、与计算机的交互、引用与缩略语，以及对文档所做的改动等内容。在本文的结尾部分，我还将介绍 HTML 5 草案中对新定义的额外语义元素的一些提议。
附注：在每个代码示例后面，都有一个“查看源文件”的链接，通过点击链接你将看到源代码在浏览器中的实际渲染效果，这些效果包含在一个不同的文件中——这样你就可以一边看着源代码，一边看着它们在浏览器中是如何被渲染的实际例子。
强调显示联系信息
address 元素也许是 HTML 中命名最不当、最被人误解的元素。乍看之下，由于其名称为“地址”，似乎就是用来封装地址、电子邮件地址、邮政地址等内容的元素，但这并不完全对。
address 元素的实际含义是提供其所在网页或该网页主要部分的作者或作者们的联系信息。可采用的形式包括姓名、电子邮件地址、邮政地址，或指向另一个包含更多联系信息的页面的链接。例如：
XML/HTML代码

  Mark Norman Francis,
  1-800-555-4865

查看源文件
在下面这个示例中，地址包含在页脚段落中，并链接到网站的另一个网页上。这个链接所指向的网页可包含更为详细的联系信息，如此一来就可以避免在整个网站的每个页面上都重复显示联系信息。
XML/HTML代码
© Copyright 2008

Mark Norman Francis

查看源文件
当然，如果网站的作者不止一人，也可采用同样的方式来显示联系信息，只要把不同的作者链接到不同的联系信息页面就可以了。
使用 address 元素来标示其它任何类型的地址都是*不正确*的，以下就是一个不正确的例子：
XML/HTML代码
 Our company address: 

    Opera Software ASA,
    Waldemar Thranes gate 98,
    NO-0175 OSLO,
    NORWAY
查看源文件
（当然，如果 Opera 公司要为本文承担集体责任的话，那么即使只有我而不是 Opera [...]]]></description>
			<content:encoded><![CDATA[<p>作者：Mark Norman Francis · 2008年7月8日<br />
原文：http://team.operachina.com/node/37</p>
<p>序言在本篇文章中，我将向你们介绍一些更隐晦、罕为人知且极少用到的 HTML 语义元素。我将介绍有关标记程序代码、与计算机的交互、引用与缩略语，以及对文档所做的改动等内容。在本文的结尾部分，我还将介绍 HTML 5 草案中对新定义的额外语义元素的一些提议。</p>
<p>附注：在每个代码示例后面，都有一个“查看源文件”的链接，通过点击链接你将看到源代码在浏览器中的实际渲染效果，这些效果包含在一个不同的文件中——这样你就可以一边看着源代码，一边看着它们在浏览器中是如何被渲染的实际例子。</p>
<p>强调显示联系信息</p>
<p>address 元素也许是 HTML 中命名最不当、最被人误解的元素。乍看之下，由于其名称为“地址”，似乎就是用来封装地址、电子邮件地址、邮政地址等内容的元素，但这并不完全对。</p>
<p>address 元素的实际含义是提供其所在网页或该网页主要部分的作者或作者们的联系信息。可采用的形式包括姓名、电子邮件地址、邮政地址，或指向另一个包含更多联系信息的页面的链接。例如：</p>
<p>XML/HTML代码</p>
<address>
<p>  <span>Mark Norman Francis</span>,</p>
<p>  <span class=&#34;tel&#34;>1-800-555-4865</span></p>
</address>
<p>查看源文件</p>
<p>在下面这个示例中，地址包含在页脚段落中，并链接到网站的另一个网页上。这个链接所指向的网页可包含更为详细的联系信息，如此一来就可以避免在整个网站的每个页面上都重复显示联系信息。</p>
<p>XML/HTML代码</p>
<p class=&#34;footer&#34;>© Copyright 2008</p>
<address>
<p><a href=&#34;/contact/&#34;>Mark Norman Francis</a></p>
</address>
<p>查看源文件</p>
<p>当然，如果网站的作者不止一人，也可采用同样的方式来显示联系信息，只要把不同的作者链接到不同的联系信息页面就可以了。<br />
使用 address 元素来标示其它任何类型的地址都是*不正确*的，以下就是一个不正确的例子：</p>
<p>XML/HTML代码</p>
<p> Our company address: </p>
<address>
<p>    Opera Software ASA,</p>
<p>    Waldemar Thranes gate 98,</p>
<p>    NO-0175 OSLO,</p>
<p>    NORWAY</p></address>
<p>查看源文件</p>
<p>（当然，如果 Opera 公司要为本文承担集体责任的话，那么即使只有我而不是 Opera 公司的全体员工，是这个特别的网页的作者，以上这种做法就是正确的）。<br />
对于一般的地址，你可以使用一种叫做“微格式”的东西来表示某一段落中包含一个地址。在 dev.opera.com 上的其它文章中有更多关于“微格式”的信息。</p>
<p>编程语言和代码</p>
<p>code 元素用于指明计算机代码或编程语言，如 PHP、JavaScript、CSS、XML 等。对于某个句子中简短的代码示例来说，你可以把代码片段包裹在 code 元素中，就像这样：</p>
<p>XML/HTML代码</p>
<p>It is bad form to use event handlers like</p>
<p><code>onclick</code> directly in the HTML.</p>
<p>查看源文件</p>
<p>对于占据多行的较大代码示例，你可以使用预格式化的代码块，就如<a target="_blank" href="../node/30">标记 HTML 中的文本内容</a>一文中所描述的那样。</p>
<p>尽管没有定义过的方法来指明 code 元素中包含的是何种编程语言或代码，你也可以使用 class 属性来指明。通常的习惯（见 HTML 5 草案）是使用前缀 language-，后边再跟上编程语言的名称。如此以上那段代码就将变为：</p>
<p>XML/HTML代码</p>
<p>It is bad form to use event handlers like</p>
<p><code class=&#34;language-javascript&#34;>onclick</code></p>
<p>directly in the HTML.</p>
<p>查看源文件</p>
<p>某些编程语言的名称难以用 class 来表示，如 C#（C-Sharp）。书写 C# 的正确方式可以是“class=&#39;language-c\#&#39;”，但这容易引起混淆或打错。我建议在 class 中仅包含字母和连字符，并将编程语言的全称拼写出来，因此在本例中可用“class=&#39;language-csharp&#39;”来代替。</p>
<p>显示计算机交互<br />
samp 和 kbd 这两个元素可用于指明与某个计算机程序进行输入和输出的交互，例如：</p>
<p>XML/HTML代码</p>
<p>One common method of determining if a computer is connected</p>
<p>to the internet is to use the computer program <code>ping</code></p>
<p>to see if a computer likely to be running is reachable.</p>
<pre><samp class=&#34;prompt&#34;>kittaghy%</samp> <kbd>ping -o google.com</kbd>

  <samp>PING google.com (64.233.187.99): 56 data bytes

  64 bytes from 64.233.187.99: icmp_seq=0 ttl=242 time=108.995 ms

  --- google.com ping statistics ---

  1 packets transmitted, 1 packets received, 0% packet loss

  round-trip min/avg/max/stddev = 108.995/108.995/108.995/0.000 ms

  </samp></pre>
<p>查看源文件</p>
<p>samp 元素指明了某个计算机程序的输出示例。如以上代码所示，不同类型的输出可使用 class 属性来标示，不过现在还没有什么广泛采用的约定来规定哪些 class 属性应该被使用。</p>
<p>kbd 元素指明的是用户在与计算机进行交互时的输入。尽管交互传统上是指键盘输入（kbd 是 keyboard 的缩写），但是其它类型的输入，如语音输入，也应用 kbd 元素指明。</p>
<p>变量<br />
var 元素用于标示文本内容中的变量，包括代数数学表达式或程序代码中的变量。例如：</p>
<p>XML/HTML代码</p>
<p>The value of <var>x</var> in</p>
<p>3<var>x</var>+2=14 is 4.</p>
<p>XML/HTML代码</p>
<pre><code class=&#34;language-perl&#34;>

my <var>$welcome</var> = &#34;Hello world!&#34;;

</code></pre>
<p>查看源文件</p>
<p>引用<br />
cite 元素用于标示其邻近页面内容的来源——当需要引用某个人、某本书或其它出版物，或笼统地向人们提及另一个来源，该来源应该被包裹在 cite 元素中。例如:</p>
<p>XML/HTML代码</p>
<p>The saying <q>Everything should be made as simple as possible,</p>
<p>but not simpler</q> is often attributed to <cite>Albert</p>
<p>Einstein</cite>, but it is actually a paraphrasing of a quote which</p>
<p>is much less easy to understand.</p>
<p>查看源文件</p>
<p>缩略语<br />
abbr 和 acronym 元素用于指明哪些词语是缩略语，并提供了一种不需要地打断该文档流而对它们进行展开的方法。<br />
作为缩略语的文字应被包裹在 abbr 元素中，而缩略语的全称则放在 title 属性中，就像这样：</p>
<p>XML/HTML代码</p>
<p>Styling is added to</p>
<p><abbr title=&#34;Hypertext Markup Language&#34;>HTML</abbr> documents</p>
<p>using <abbr title=&#34;Cascading Style Sheets&#34;>CSS</abbr>.</p>
<p>查看源文件</p>
<p>首字母缩写词是缩略语的一种，与一般缩略语的区别在于它被公认如同一般的单词一样，它的发音也是如此。比如说 scuba 就是一个首字母缩写词，它是由“self-contained underwater breathing apparatus”（自给式水中呼吸器）缩写而成。尽管 HTML 4.01 规范允许既使用 abbr 元素，又使用 acronym，但在实际使用中还是会遇到一些问题……</p>
<p>Internet Explorer 浏览器（ IE7 及其更早的版本并未像其它浏览器一样为缩略语提供点状下划线）不认 abbr 元素，而只认 acronym 元素。不幸的是，acronym（首字母缩写词）只是 abbreviation（缩略语）的一个子集，因此使用 acronym 元素来标记“HTML”这样的缩略语是不正确的做法。</p>
<p>此外，由于任何首字母缩写词都是一个有效的缩略语，在 HTML 5 规范草案中，为了支持标准化，acronym 元素被舍弃了，而用 abbr 元素来同时表示缩略语和首字母缩写词。<br />
因此，最好的做法是避免使用 acronym 元素，而在你的代码中自始至终只使用 abbr 元素。如果你需要为 abbr 元素添加一些视觉上的样式，可以在其中放入一个 span 元素，并代替 abbr 在其上添加样式，这样所有的浏览器都将应用该视觉样式。随后的“样式化文本”一文将详细介绍这方面的内容。</p>
<p>定义实例<br />
关于如何恰当地使用 dfn 元素，存在一些易于混淆之处，dfn 元素在 HTML 规范中被描述为“所附上的术语的定义实例”，这与定义列表中使用的 dt 元素（定义术语）的概念非常相似。</p>
<p>两者之间的差别仅在于 dfn 元素中所使用的术语并非需要是某个术语和说明列表的一部分，而可以用作常规文本流的一部分，甚至可以用在会话体文章中。以下是一个使用 dfn 元素的示例：</p>
<p>XML/HTML代码</p>
<p><dfn>HTML</dfn>: HTML stands for &#34;HyperText Markup Language&#34;. This is</p>
<p>the language used to describe the contents of web documents.</p>
<p>在 HTML 这个术语出现后，紧接着就是这个术语的定义，这就很适合使用 dfn 元素。你应当在一个页面中只使用一次 dfn 元素，即在术语第一次被定义时使用，由于术语本来就不需要重复定义，因此这倒也不会太麻烦。</p>
<p>这样使用 dfn 元素好倒是好，但仅举一个孤立的例子并不全面——当某个缩略语在一个网页中多次出现时也建议使用 dfn 元素。例如，在前面的 <a target="_blank" href="../node/27">HTML 基础知识</a> 一文中，HTML 这个术语就出现了 40 多次。如果每次都重复使用 “<abbr title=&#34;HyperText Markup Language&#34;>HTML</abbr>” 这段代码，将会造成带宽的浪费，在视觉上导致注意力的分散，而且使用屏幕阅读器的用户将不得不重复地听到 HTML 的全称，这会使他们感到厌倦。在这种情况下，本来是可以在第一次为用户定义 HTML 时加入如下代码的：</p>
<p>XML/HTML代码</p>
<p><dfn><abbr>HTML</abbr></dfn> (&#34;HyperText Markup Language&#34;) is</p>
<p>a language to describe the contents of web documents.</p>
<p>查看源文件</p>
<p>之后当 HTML 这个术语再次出现时，就可以简单地将其标记为 “<abbr>HTML</abbr>”而后用户代理就可以让用户用某种方式去检索这个缩略语的定义实例。但不幸的是，目前还没有一种用户代理可以做到这一点，包括屏幕阅读器。因此更好的做法是同时也使用 title 属性来提供定义信息，如以下所示：</p>
<p>XML/HTML代码</p>
<p><dfn><abbr title=&#34;HyperText Markup Language&#34;>HTML</abbr></dfn> (&#34;HyperText Markup Language&#34;) is a language to describe the contents of web documents.</p>
<p>查看源文件</p>
<p>遗憾的是，这样做又让 HTML 的全称出现了重复，这对使用屏幕阅读器的用户可能成为问题。不过如果省略掉全称的话，对视力正常的用户而言，会使文档的可用性降低，毕竟网站的用户群中视力正常的用户还是占大多数。</p>
<p>我建议某个页面中如果只有一两个术语需要定义的话，那么这种权衡是值得接受的。（如果网页中有大量术语需要定义，最好在页面中创建一个词汇表章节或另建一个页面，在这个页面中就可以使用更为严谨的定义列表标记）。如果你非常重视这个问题，可以使用以下代码：</p>
<p>XML/HTML代码</p>
<p><abbr title=&#34;HyperText Markup Language&#34;>HTML</abbr></p>
<p>(<dfn>HyperText Markup Language</dfn>) is a language to</p>
<p>describe the contents of web documents.</p>
<p>查看源文件.</p>
<p>尽管如此，用户代理还是得提供一些方法，来将定义实例与页面内出现的被定义的术语联系在一起。虽然对于 CSS 来说，它仍然是一个可以用来进行样式化的不错的钩子，但目前还没有一种浏览器能有效地支持 dfn 元素。以上我提出的已经是目前最好的解决办法了。</p>
<p>现有的 HTML 规范对 dfn 元素应该如何使用并没有明确的规定，已有的规定可能也不是基于该元素在实际运用中的做法——不然的话应该会有将术语和其完整描述或定义结合在一起的方法。HTML 5 规范中对如何使用 dfn 元素有详细的描述，但该规范尚在草拟之中，目前还不适于将该规范用在网络上。</p>
<p>上标和下标<br />
要将某些文本的一部分标记为上标文本或下标文本（即相对于该文本的其它部分略微升高或下降），你可以使用 sup 和 sub 元素。<br />
为了正确使用缩略语，一些语言需要用到这些元素，此外，在标记一小段数学内容时，也可以使用这两种元素，而不必使用 MathML 元素(该元素是一种专门的，重量级的数学标记语言，用于标记重量级的数学公式)。<br />
以下是这两种元素的代码示例：</p>
<p>XML/HTML代码</p>
<p>The chemical formula for water is H<sub>2</sub>O, and it</p>
<p>is also known as hydrogen hydroxide.</p>
<p>The famous formula for mass-energy equivalence as derived</p>
<p>by Albert Einstein is E=mc<sup>2</sup> — energy</p>
<p>is equal to the mass multiplied by the speed of light</p>
<p>squared.</p>
<p>查看源文件</p>
<p>换行符<br />
由于 HTML 对空格的定义方式，在写入文本时如果仅按回车键，是无法控制文本的换行的（例如将一个邮政地址标记为一个段落，但在实际显示时地址的各个部分都显示在单独的一行上）。<br />
可以使用 br 元素在文档中插入换行符。不过该元素应只在需要时作强制换行之用，绝不应被用于为段落之间设置更多的垂直间距——这里应该使用 CSS 更合适。<br />
有时候使用预格式化的文本块可能比插入 br 元素更为方便。或者，如果某些文本的某个特殊部分需要自成一行，而这又只是样式问题，那可以将它们放在 span 元素中，并设置为按块级元素显示。<br />
举个例子，你们可以将在前面讨论 address 元素的部分中看到过的 Opera 公司的联系地址以如下代码表示：</p>
<p>XML/HTML代码</p>
<p>Our company address: </p>
<address>
<p>Opera Software ASA,<br />Waldemar Thranes gate 98,</p>
<p>NO-0175 OSLO,<br />NORWAY</p>
</address>
<p>查看源文件</p>
<p>如果你是在编写 XHTML 文档而不是 HTML 文档，那么 br 元素就必须是自闭合的，像这样：<br />.</p>
<p>水平线<br />
在 HTML 中可使用 hr 元素来创建水平线。该元素会在文档中插入一根水平线，用以表示文档不同部分的分界线。</p>
<p>尽管有人认为 hr元素是一个不能被继承的非语义元素，而只是一个创造视觉和表象效果的元素，但在文献中使用这个元素是有一些先例的。在书籍的某一章（也可以说成是书籍的一部分）中，发生在不同时间和/或地点的场景间就常常出现水平线。此外，诗歌中也可以使用装饰性的断行将不同的小节分隔开来。</p>
<p>hr 元素是公认的在文档各部分之间制造分界线的标记，而不是一个新的头部元素。</p>
<p>hr 元素没有特别的属性，如果你对其默认样式感到不满意的话，应该使用 CSS 来对其进行样式化。</p>
<p>同样的，就如同换行符一样，如果你是在编写 XHTML 文档而不是 HTML 文档，就必须采用自闭合的形式——<br />
<hr />.</p>
<p>文档的改动（插入与删除）<br />
如果某个文档在首次上线之后有所改动，你可以标注出这些改动，这样那些网站回头客或自动化程序就可以知道文档在何时做了哪些改动。</p>
<p>新文本（插入部分）应当被包裹在 ins 元素中，而已被移除的文本（删除部分）应当被包裹在 del 元素中。如果在文档中同一个地方既有删除又有插入，正确的做法是将被删除的文本放在前面，然后才是新插入的文本。</p>
<p>ins 元素和 del 元素都可以带有两个属性，这些属性可以给文档编辑赋以更多的意义。<br />
如果文档改动的原因在该页面上或网上其它地方已有指明，你就应该在 cite 属性中链接到那个文档或片段。这实际上就等于宣示：“因为这个原因才做出了这个改动。”</p>
<p>你还可以使用 datetime 属性指明改动发生的时间。该属性的值必须是一个符合 ISO 标准的时间戳，格式一般为 “YYYY-MM-DD HH:MM:SS ±HH:MM”（更多信息可查阅维基百科）。</p>
<p>下面是一个用到了这两个属性的代码示例：</p>
<p>XML/HTML代码</p>
<p>We should only solve problems that actually arise. As</p>
<p>  <cite><del datetime=&#34;2008-03-25 18:26:55 Z&#34;</p>
<p>  cite=&#34;/changes.html#revision-4&#34;>Donald Knuth</del><ins datetime=&#34;2008-03-25 18:26:55 Z&#34;</p>
<p>  cite=&#34;/changes.html#revision-4&#34;>C. A. R. Hoare</ins></cite></p>
<p>  said: <q>premature optimization is the root of all</p>
<p>  evil</q>.</p>
<p>查看源文件</p>
<p>一些将在未来引入的 HTML 元素<br />
我们在本文和其它一些文章中都已提到 HTML 5 规范 目前正在起草中。HTML 5 将是自 HTML 推出以来修正最大的一个新版本。通过实际研究目前网上对 HTML 的使用方式，而不是空想什么对人们可能有帮助，HTML 5 有望将目前只能算是约定的语义元素直接写入规范之中。</p>
<p>一些可以改善我们编写文档代码和使用文档方式的示例元素将被引入 HTML ，其中包括：</p>
<p>header——包含页面的顶部区域（页头），通常由logo和网页标题组成，还可以包含一个简短的“about”（简介）和全站导航，以及登录/退出/公司简介文档链接等。<br />
footer——包含页面的底部区域（页脚），通常由站内链接、版权声明和其它法律信息组成。<br />
nav——包含网页的主要导航链接。<br />
article——包含页面内主内容区域的部分，但不包括其它所有页面元素，如导航、页头、页脚等。<br />
aside——包含页面特定区域上的侧边栏信息，还可用于标记主要内容之中的重要引述或注释。</p>
<p>你们可以通过查阅 HTML 5 规范了解更多新引入的元素。</p>
<p>总结<br />
在本篇文章中，我讲述了 HTML 中罕为人知、鲜为人用的一些语义元素。在下一篇文章中，我们将进一步讨论如何使用 HTML 中两个语义中性的元素，div 和 span 元素。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/272/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>15种常见html-cssBug及其修正方法</title>
		<link>http://www.52sonen.com/index.php/archives/242</link>
		<comments>http://www.52sonen.com/index.php/archives/242#comments</comments>
		<pubDate>Tue, 06 Jan 2009 14:38:05 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[cssbug]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=242</guid>
		<description><![CDATA[毫无疑问，一个合理的布局和结构是最好选择。这不仅是因为你的布局在不同浏览器见表现不同，而且还因为的CSS有很多方法来布局你的每个元素。今天，我们希望与你们分享一些避免在创建CSS布局时容易遇到的错误的技巧。
IE Bug修正
1- Bug修正：IE双倍Margin bug
- 元素是浮动的-并且给元素一个和浮动同一个方向的margin-结果显示两倍的指定margin大小。这个方法非常简单。所有您需要做的就是添加一个display: inline规则到你的浮动元素。所以，你只是把例如这样的代码：
#content {
    float: left;
    width: 500px;
    padding: 10px 15px;
    margin-left: 20px; }改为如下代码 :
#content {
    float: left;
    width: 500px;
    padding: 10px 15px;
    margin-left: 20px;
    [...]]]></description>
			<content:encoded><![CDATA[<p>毫无疑问，一个合理的布局和结构是最好选择。这不仅是因为你的布局在不同浏览器见表现不同，而且还因为的CSS有很多方法来布局你的每个元素。今天，我们希望与你们分享一些避免在创建CSS布局时容易遇到的错误的技巧。</p>
<p>IE Bug修正<br />
1- Bug修正：IE双倍Margin bug<br />
- 元素是浮动的-并且给元素一个和浮动同一个方向的margin-结果显示两倍的指定margin大小。这个方法非常简单。所有您需要做的就是添加一个display: inline规则到你的浮动元素。所以，你只是把例如这样的代码：</p>
<p>#content {<br />
    float: left;<br />
    width: 500px;<br />
    padding: 10px 15px;<br />
    margin-left: 20px; }改为如下代码 :</p>
<p>#content {<br />
    float: left;<br />
    width: 500px;<br />
    padding: 10px 15px;<br />
    margin-left: 20px;<br />
    display:inline;<br />
}</p>
<p>2- 克服盒模型hack<br />
- 如果你想给任一div指定宽度，不要指定padding或margin。只要另建一个内部(嵌套)的没有宽度的div并设定其padding和margin来替代。所以，不要这样做：</p>
<p>#main-div{<br />
width: 150px;<br />
border: 5px;<br />
padding: 20px;<br />
}这样做:</p>
<p>#main-div{<br />
width: 150px;<br />
}<br />
#main-div div{<br />
border: 5px;<br />
padding: 20px;<br />
}</p>
<p>3-IE无视min-height属性<br />
- min-height属性在firefox下表现很好但是IE却无视了它，IE的height就像FF的min-height.注意：IE7没有这个bug。</p>
<p>/* 对主流浏览器 */<br />
.container {<br />
width:20em;<br />
padding:0.5em;<br />
border:1px solid #000;<br />
min-height:8em;<br />
height:auto;<br />
}<br />
/* 对IE浏览器 */<br />
/*\*/<br />
* html .container {<br />
height: 8em;<br />
}<br />
/**/</p>
<p>4- Min-Width for IE<br />
-一个IE的min-width缺陷的修正。</p>
<p>块级元素居中<br />
5-块级元素居中<br />
- 有很多种方法可以使块级元素居中；选择哪种方法取决于你的百分比大小设置或使用更绝对的数值。</p>
<p>整个页面内容居中：</p>
<p>body{<br />
text-align: center;<br />
}<br />
#container<br />
{<br />
text-align: left;<br />
width: 960px;<br />
margin: 0 auto;<br />
}</p>
<p>6-使用CSS垂直对齐<br />
- 如果你想知道怎么才能正确的实现垂直对齐，只需要简单的为你的文本指定和容器等高的line-height。</p>
<p>#wrapper {<br />
	width:530px;<br />
	height:25px;<br />
	background:url(container.gif) no-repeat left top;<br />
	padding:0px 10px;<br />
}<br />
#wrapper p {<br />
	line-height:25px;<br />
}</p>
<p>CSS 定位<br />
7- 理解CSS定位Part 1<br />
-一系列很有趣的文章，这些文章不仅包括定位，还包括包括定义布局的属性，比如display和float ，和对CSS3 布局模型的一个预览。第一部分将会介绍定位和display属性。 Part1, Part2, Part3 将会带给你对定位的更深的理解.</p>
<p>8- relative和absolute有什么不同?<br />
- 对于刚开始使用CSS的人来说，无论相对行为还是绝对定位都是非常令人沮丧的。这个问题的答案将会让你的迷惑变的清晰些。</p>
<p>#redSquare<br />
{<br />
position: relative;<br />
bottom: 40px;<br />
right: 40px;<br />
}</p>
<p>9-HangTab(固定标签)<br />
- 在浏览器边缘创建一个固定的标签(即使内容居中)。查看Panic’s website for their software Coda.</p>
<p>#hang_tab {<br />
position: absolute;<br />
top: 7px;<br />
left: 0px;<br />
width: 157px;<br />
height: 93px;<br />
}</p>
<p>CSS 浮动概念<br />
10- CSS 浮动原理：你应该知道的事情<br />
- SmashingMagazine 浏览几十个相关文章，并选择了在用float开发基于CSS的布局时你应该牢记的最重要的东西。</p>
<div> <!-- float container --></p>
<div style=&#34;float:left; width:30%;&#34;>
<p>Some content</p>
</div>
<p>Text not inside the float</p>
<div style=&#34;clear:both;&#34;></div>
</div>
<p>11- 清除浮动- 正确的方法<br />
- 清除浮动可以说是CSS开发中的一个最令人沮丧的方面，最佳方法之一是在您的网站上使用EasyClearing .</p>
<p>/* EasyClearing http://www.positioniseverything.net/easyclearing.html */<br />
#container:after<br />
{<br />
	content: &#34;.&#34;;<br />
	display: block;<br />
	height: 0;<br />
	clear: both;<br />
	visibility: hidden;<br />
}</p>
<p>#container<br />
{display: inline-block;}</p>
<p>/* Hides from IE-mac \*/<br />
* html #container<br />
{height: 1%;}</p>
<p>#container<br />
{display: block;}<br />
/* End hide from IE-mac */</p>
<p>更简单的圆角实现<br />
12- 迈克询问CSS圆角建议<br />
- “最简单的方法是使用一个大的gif图片，然后我将给我的盒子编码”</p>
<div class=&#34;roundBox&#34;>
<p>beautifully-encapsulated paragraph</p>
<div class=&#34;boxBottom&#34;></div>
</div>
<p>“并给它添加背景”</p>
<p>.roundBox {<br />
  background:transparent url(roundBox.gif) no-repeat top left;<br />
  width:340px;<br />
  padding:20px;<br />
}<br />
.roundBox .boxBottom {<br />
  background:white url(roundBox.gif) no-repeat bottom left;<br />
  font-size:1px;<br />
  line-height:1px;<br />
  height:14px;<br />
  margin:0 -20px -20px -20px;<br />
}</p>
<p>同样 Askthecssguy 介绍了 Google Analytics中使用的技术, 他是通过在每个角留下1px的边框来实现圆角的效果，这是一种不用静态图片实现圆角的新方法。你可以在这里查看一个示例.</p>
<p>CSS表单问题<br />
13-创建伟大的网页表单的技巧<br />
- Cris Coyer和我们分享了浮动标签，:focus伪类，使用建议等技巧。他同样建立了又好又简单的联系表单, 他首先将它发布在这里.</p>
<p>label {<br />
	float: left;<br />
	text-align: right;<br />
	margin-right: 15px;<br />
	width: 100px;<br />
}</p>
<p>14-用javascript自动填充文本输入框<br />
- 有时候，我们需要向用户解释他们理应填写文本输入框。当没有标签可以显示，一个通用的解决方案是，把一些占位符文本放在文本框中，并让它当标签来用。本教程介绍了一种很好的解决办法，并启用JavaScript ，label 元素是隐藏的，而且input 元素的title 属性值被复制到value 属性. 如果已禁用JavaScript ，标签显示在被留空的文字输入框的上面。</p>
<p>15- 跨浏览器的用背景图的水平线<br />
- 你或许想使用一个定制的图片来创建一个跨浏览器的水平线作为内容的分隔。</p>
<p>div.hr {<br />
background: #fff url(myhrimg.gif) no-repeat scroll center;<br />
height: 10px<br />
}<br />
div.hr hr {<br />
display: none<br />
}</p>
<p>你的代码可以像这样:</p>
<div class=&#34;hr&#34;>
<hr /></div>
<p>本文翻译自：http://www.noupe.com/css/using-css-to-fix-anything-20-common-bugs-and-fixes.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/242/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>合理关闭XHTML标签</title>
		<link>http://www.52sonen.com/index.php/archives/164</link>
		<comments>http://www.52sonen.com/index.php/archives/164#comments</comments>
		<pubDate>Mon, 11 Aug 2008 00:37:42 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[合理关闭标签]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=164</guid>
		<description><![CDATA[XHTML规范中有一条标准就是“每个XHTML标签都有一个结束标记”。那么对于HTML中原来不带结束标记的元素，则在该结束前加上“/”来关闭这个标签，如，标签原来在HTML中的写法：
  
 到了XHTML中，就应该在“>”前增加一个“/”来关闭这个标签，为了防止某些老式浏览器不认识这种写法，因此要在“/”前加上一个空格（HTML兼容性标准）：
  
这似乎是说在开始标记中加上一个“/”就可以关闭掉这个标签。特别是对于空内的标签来说，似乎使用这种写法更简洁了。比如说，



这是在清除浮动（闭合浮动元素）中经常用到的一段代码。那么它似乎可以样写：

是的，
元素可以为空，这样写没有问题，但是我们对其它标签也使用类似的写法会出现什么样的后果呢？如在中引入外部Javascript文件，我们一般这么写：

既然没有内容为空，我们们可不可以写成

我们发现，这样的写法在浏览器要么不起作用，要么会出错，多数情况下，浏览器会认为这个标签没有关闭，而错误地认识之后的所有内容都是Javascript代码，所以会产生错误。再如，

    如果在浏览器运行这段代码，你会发现从开始，之后的所有XHTML代码都会被当作文本框的内容出现在文本框内。
    这样看来，HTML4.0中已经存在成对的标签在XHTML中必须使用已有的结束标签。那么
为什么可以呢？其实，
也不可以，只是
的在浏览器没有那么明显的显示而已。而诸如一类的写法就更加不正确了，首先本身有关闭标签，此外标签内容不能为空白（纯空格也不行）。也就是说除了、
、
、等标签可以使用“/”关闭外，其它的元素必须使用，否则会出现不可预料的问题。



]]></description>
			<content:encoded><![CDATA[<p>XHTML规范中有一条标准就是“每个XHTML标签都有一个结束标记”。那么对于HTML中原来不带结束标记的元素，则在该结束前加上“/”来关闭这个标签，如，<img />标签原来在HTML中的写法：</p>
<blockquote><p><img src=&#34;...&#34; alt=&#34;...&#34;/>  </p></blockquote>
<p> <img src=&#34;...&#34; alt=&#34;...&#34;/>到了XHTML中，就应该在“>”前增加一个“/”来关闭这个标签，为了防止某些老式浏览器不认识这种写法，因此要在“/”前加上一个空格（HTML兼容性标准）：</p>
<blockquote><p><img src=&#34;...&#34; alt=&#34;...&#34; />  </p></blockquote>
<p><img src=&#34;...&#34; alt=&#34;...&#34; />这似乎是说在开始标记中加上一个“/”就可以关闭掉这个标签。特别是对于空内的标签来说，似乎使用这种写法更简洁了。比如说，</p>
<blockquote><div class=&#34;clear&#34;></div>
</blockquote>
<div class=&#34;clear&#34;></div>
<p>这是在清除浮动（闭合浮动元素）中经常用到的一段代码。那么它似乎可以样写：</p>
<blockquote><div class=&#34;clear&#34; /></blockquote>
<div class=&#34;clear&#34; />是的，
<div>元素可以为空，这样写没有问题，但是我们对其它标签也使用类似的写法会出现什么样的后果呢？如在<head>中引入外部Javascript文件，我们一般这么写：</p>
<blockquote><p><script type=&#34;text/javascript&#34; src=&#34;...&#34; language=&#34;javascript&#34;></script></p></blockquote>
<p><script type=&#34;text/javascript&#34; src=&#34;...&#34; language=&#34;javascript&#34;></script>既然没有内容为空，我们们可不可以写成</p>
<blockquote><p><script type=&#34;text/javascript&#34; src=&#34;...&#34; language=&#34;javascript&#34; /></p></blockquote>
<p><script type=&#34;text/javascript&#34; src=&#34;...&#34; language=&#34;javascript&#34; />我们发现，这样的写法在浏览器要么不起作用，要么会出错，多数情况下，浏览器会认为这个标签没有关闭，而错误地认识<script>之后的所有内容都是Javascript代码，所以会产生错误。再如，</p>
<blockquote><p><textarea id=&#34;tt&#34; cols=&#34;10&#34; rows=&#34;8&#34; /></p></blockquote>
<p><textarea id=&#34;tt&#34; cols=&#34;10&#34; rows=&#34;8&#34; />    如果在浏览器运行这段代码，你会发现从<textarea>开始，之后的所有XHTML代码都会被当作文本框的内容出现在文本框内。</p>
<p>    这样看来，HTML4.0中已经存在成对的标签在XHTML中必须使用已有的结束标签。那么
<div>为什么可以呢？其实，
<div>也不可以，只是
<div>的在浏览器没有那么明显的显示而已。而诸如<span />一类的写法就更加不正确了，首先<span>本身有关闭标签</span>，此外<span>标签内容不能为空白（纯空格也不行）。也就是说除了<img />、
<hr />、
<link>、<br />等标签可以使用“/”关闭外，其它的元素必须使用，否则会出现不可预料的问题。</link></span></div>
</div>
</div>
<p></textarea></script></head></div>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/164/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML默认样式表CSS属性汇总</title>
		<link>http://www.52sonen.com/index.php/archives/69</link>
		<comments>http://www.52sonen.com/index.php/archives/69#comments</comments>
		<pubDate>Thu, 06 Dec 2007 04:50:52 +0000</pubDate>
		<dc:creator>Frog</dc:creator>
				<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[css默认属性]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.52sonen.com/?p=69</guid>
		<description><![CDATA[开始的时候 *{margin:0;padding:0;}，当需要使用边距的时候，就需要还原HTML默认CSS值了。
　　以前一直在找这份文档，今天偶然在w3上看到了。除了inline和block的定义，主要是要注意
　　body&#124;h1~h6&#124;blockquote&#124;menu&#124;ul&#124;ol&#124;dd等标签的默认样式（margin和font-size）。
　　这个东西在你需要还原默认值的时候，比较有用。 详见下面的内容：
html, address,
blockquote,
body, dd, div,
dl, dt, fieldset, form,
frame, frameset,
h1, h2, h3, h4,
h5, h6, noframes,
ol, p, ul, center,
dir, hr, menu, pre   { display: block }
li              { display: list-item }
head            [...]]]></description>
			<content:encoded><![CDATA[<p>开始的时候 *{margin:0;padding:0;}，当需要使用边距的时候，就需要还原HTML默认CSS值了。<br />
　　以前一直在找这份文档，今天偶然在w3上看到了。除了inline和block的定义，主要是要注意<br />
　　body|h1~h6|blockquote|menu|ul|ol|dd等标签的默认样式（margin和font-size）。<br />
　　这个东西在你需要还原默认值的时候，比较有用。 详见下面的内容：</p>
<p>html, address,<br />
blockquote,<br />
body, dd, div,<br />
dl, dt, fieldset, form,<br />
frame, frameset,<br />
h1, h2, h3, h4,<br />
h5, h6, noframes,<br />
ol, p, ul, center,<br />
dir, hr, menu, pre   { display: block }<br />
li              { display: list-item }<br />
head            { display: none }<br />
table           { display: table }<br />
tr              { display: table-row }<br />
thead           { display: table-header-group }<br />
tbody           { display: table-row-group }<br />
tfoot           { display: table-footer-group }<br />
col             { display: table-column }<br />
colgroup        { display: table-column-group }<br />
td, th          { display: table-cell; }<br />
caption         { display: table-caption }<br />
th              { font-weight: bolder; text-align: center }<br />
caption         { text-align: center }<br />
body            { margin: 8px; line-height: 1.12 }<br />
h1              { font-size: 2em; margin: .67em 0 }<br />
h2              { font-size: 1.5em; margin: .75em 0 }<br />
h3              { font-size: 1.17em; margin: .83em 0 }<br />
h4, p,<br />
blockquote, ul,<br />
fieldset, form,<br />
ol, dl, dir,<br />
menu            { margin: 1.12em 0 }</p>
<p>h5              { font-size: .83em; margin: 1.5em 0 }<br />
h6              { font-size: .75em; margin: 1.67em 0 }<br />
h1, h2, h3, h4,<br />
h5, h6, b,<br />
strong          { font-weight: bolder }<br />
blockquote      { margin-left: 40px; margin-right: 40px }<br />
i, cite, em,<br />
var, address    { font-style: italic }<br />
pre, tt, code,<br />
kbd, samp       { font-family: monospace }<br />
pre             { white-space: pre }<br />
button, textarea,<br />
input, object,<br />
sel&#101;ct          { display:inline-block; }<br />
big             { font-size: 1.17em }<br />
small, sub, sup { font-size: .83em }<br />
sub             { vertical-align: sub }<br />
sup             { vertical-align: super }<br />
table           { border-spacing: 2px; }<br />
thead, tbody,<br />
tfoot           { vertical-align: middle }<br />
td, th          { vertical-align: inherit }<br />
s, strike, del  { text-decoration: line-through }<br />
hr              { border: 1px inset }<br />
ol, ul, dir,<br />
menu, dd        { margin-left: 40px }<br />
ol              { list-style-type: decimal }<br />
ol ul, ul ol,<br />
ul ul, ol ol    { margin-top: 0; margin-bottom: 0 }<br />
u, ins          { text-decoration: underline }<br />
br:before       { content: &#34;\A&#34; }<br />
:before, :after { white-space: pre-line }</p>
<p>center          { text-align: center }<br />
abbr, acronym   { font-variant: small-caps; letter-spacing: 0.1em }<br />
:link, :visited { text-decoration: underline }<br />
:focus          { outline: thin dotted invert }</p>
<p>/* Begin bidirectionality settings (do not change) */<br />
BDO[DIR=&#34;ltr&#34;]  { direction: ltr; unicode-bidi: bidi-override }<br />
BDO[DIR=&#34;rtl&#34;]  { direction: rtl; unicode-bidi: bidi-override }</p>
<p>*[DIR=&#34;ltr&#34;]    { direction: ltr; unicode-bidi: embed }<br />
*[DIR=&#34;rtl&#34;]    { direction: rtl; unicode-bidi: embed }</p>
<p>@media print {<br />
  h1            { page-break-before: always }<br />
  h1, h2, h3,<br />
  h4, h5, h6    { page-break-after: avoid }<br />
  ul, ol, dl    { page-break-before: avoid }</p>
]]></content:encoded>
			<wfw:commentRss>http://www.52sonen.com/index.php/archives/69/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
