[譯文]HTML語義和搜索引擎優化

翻译文字还有待完善,有阅读不通顺的地方请在评论中指出。

导言

什么是POSH ? 不,这不是一些新的网页设计上的时尚的宣传- POSH是Plain Old Semantic HTML(清晰老式语义化HTML)缩写 。 语义的HTML这个词被用于各种各样的事情,但它起源于一个目标:使用语义化的标记和属性建立XHTML文档,而不是用表象的HTML 。POSH这个名词被创造出来,因为一群高度值得尊敬的网页设计师想有一个简短的便于记忆的,能轻松捕捉的语义化HTML本质概念 。
在这篇文章中,我会谈到为什么你应该使用POSH,准确的说是你如何去实施它(很多人很早就开始去做了,一些人或许还不知道他!) ,以及如何有效的使用他提升你的网站的SEO效果。我还会简要的在文章的末尾介绍一下微格式。

Continue reading →

(X)HTML Strict 下標籤的嵌套規則

下面是一份在 HTML 4 Strict 和 XHTML 1.0 Strict 下必须遵守的标签嵌套规则,比如你不能在 <a> 里面再嵌入一个 <a> 这样的约定。

说明:

  • 为了方便读者阅读,本文中的标签使用了大写(根据 XHTML 的规则,元素名必须小写,比如 <html> 而不应是 <HTML>
  • 小写的单词表明一组或一系列 HTML 标签
  • 每一项条目(标签)后都跟随一组标签列表,如果没有这个列表,那么表明该条目(标签)内部不允许包含任何标签。这意味着该条目内部只能包含纯文本内容(#PCDATA,见下文)。如果注明 (empty),这意味着该条目内部不允许包含任何形式的内容。对于 flow,inline,block,OBJECT 和 BODY,其内部允许包含的内容在文中会单独给出。
  • #PCDATA 的意思是“parsed character data”,即纯文本内容(不包括任何 HTML 标签,但是转义内容可以存在,比如 &auml;&#228;
  • CDATA 的意思是“character data”,这意味着不包括转义内容的纯文本内容,详细内容可以参考CDATA Confusion
  • excluding … 意即不得直接或者间接的包含所列的元素

Continue reading →

使用XHTML 1.0 Strict,一些需要特别注意的地方

  • 永远使用小写字母,让引号伴随者属性: 所有元素和属性的名字都必须使用小写,所有属性值必须使用双引号。

    错误: <A HREF="index.HTML" CLASS=internal>
    正确: <a href="index.HTML" class="internal">

  • 关闭所有的元素: 在HTML中一些元素没有必要被关闭。当下一个元素开始的时候,上一个元素就自动被关闭。XHTML中是不允许这样的。所有元素都必须被关闭,即使其中没有内容(如<img>)。

    错误: <li>Item 1
    正确: <li>Item 1</li>

    错误: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    正确: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>

    错误: <br>
    正确: <br />

    错误: <img src="image.jpg" alt="">
    正确: <img src="image.jpg" alt="" />

  • 属性不能被缩减: 在HTML里,一些属性可以被缩减。而XHTML则不允许这样做。

    错误: <input type="checkbox" id="checkbox1" name="checkbox1" checked>
    正确: <input type="checkbox" id="checkbox1" name="checkbox1" checked="checked" />

  • 不要使用被排斥的元素: 一些元素和属性在HTML 4.01 Transitional和XHTML 1.0 Transitional是被允许的,而在XHTML 1.0 Strict下则不被支持(还有in HTML 4.01 Strict)。比如<font><center>alinkalignwidthheight (对于某些元素)和background

[轉載]http://www.456bereastreet.com/lab/developing_with_web_standards/zh

標籤語義化

前两天参加了公司组织的一个WD培训,有一节课讲了标签语义化,听了之后感觉特别有用,更正了我以前对 HTML 和 CSS 的错误看法。

首先说明的一点是,人可以通过视觉的划分判断内容的语义,搜索引擎看到的只是代码。搜索引擎只能通过标签来判断内容的语义。 以前我真的没有怎么重视过搜索引擎,现在开始比较在意了,因为页面的很大一部分流量是来自搜索引擎的,要使页面尽可能地对搜索引擎友好,所以就要尽可能地使标签语义化。

以前以我对web开发的粗浅理解,觉得写一个好的符合标准的页面只需要把结构和表现分离,然后不要使用table,font等标签就行了,至于通篇都是div我也不会觉得有什么问题,因为CSS很强大。但是,所有的标签都是有自己的语义的,下面给出一部分标签的语义:

div 语义:Division(分隔)
span 语义:Span(范围)
ol 语义:Ordered List(排序列表)
ul 语义:Unordered List(不排序列表)
li 语义:List Item(列表项目)
…………

如果无视标签语义和默认样式,所有标签都用div,其实也是可以写出来视觉效果很好的页面,只要你灵活运用CSS。但是那样的话虽然视觉上达到了要求,但是整个页面一点语义都没有,搜索引擎还是看不懂。所以,要记住:

结构(html)才是重点,样式(css)是用来修饰结构的。所以,要先确定html,确定标签,再来选用合适的css。

一般来说,所有的标签都会有一个默认的样式,所以一个简单的判断网页标签语义是否良好的方法就是:去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性。

另外,值得重点提及的是h标签,h标签的语意是标题,搜索引擎对这个标签比较敏感,特别是h1,和h2。一个语义良好的页面,h标签应该是完整有序没有断层的。也就是说,要h1,h2,h3,h4这样推下来,不要h1,h3,h4,漏掉h2。一个结构良好的网页,h标签可以组织起一个网页的大纲。

以上这些东西都是WD的工程师阿当讲的,我受益匪浅,加深了对html的理解。HTML 虽然很简单,但是要用好也是很不容易的。

[轉载] http://www.zhuoqun.net/html/y2008/1096.html
另外,兩篇相關的文章:《语义化你的HTML标签和属性》《罕为人知的语义元素》