<?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; 语义化</title>
	<atom:link href="http://ofcss.com/tags/%e8%af%ad%e4%b9%89%e5%8c%96/feed" rel="self" type="application/rss+xml" />
	<link>http://ofcss.com</link>
	<description>独立 自由 诚信 宽容 责任 平常心</description>
	<lastBuildDate>Fri, 20 Apr 2012 04:08:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>HTML5时代的div</title>
		<link>http://ofcss.com/2010/06/02/div-in-html5.html</link>
		<comments>http://ofcss.com/2010/06/02/div-in-html5.html#comments</comments>
		<pubDate>Wed, 02 Jun 2010 06:22:39 +0000</pubDate>
		<dc:creator>小李刀刀</dc:creator>
				<category><![CDATA[所谓技术]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[web标准]]></category>
		<category><![CDATA[语义化]]></category>

		<guid isPermaLink="false">http://wukangrui.com/2010/06/02/html5%e6%97%b6%e4%bb%a3%e7%9a%84div.html</guid>
		<description><![CDATA[div，作为web标准化进程中大火大热的HTML标签，在完成了取代table布局的使命之后，在强调语义化的今天，开始成为被滥用得最多的标签。HTML5新增的标签中，有一大部分是为了取代HTML4里的div使用场景。比如：&#60;header&#62;、&#60;footer&#62;、&#60;aside&#62;、&#60;section&#62;、&#60;nav&#62;等。那么div还有存在的意义吗？如果有，又该在什么情况下使用呢？本文尝试对这个问题做一点分析。仅代表个人观点。 要考虑语义化的div，首先想到的当然是div的语义到底是什么。根据w3c的文档，div没有任何语义，它仅描述它所包含的成员，可以通过class、lang、title等属性来标注其语义。在使用上，它用来标注一组连贯的（关联的？）元素。 The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements. 但是在这段文字下，w3c又用更为醒目的文字做了补充说明： Authors are strongly encouraged to view the div element as an element of last resort, for when [...]]]></description>
			<content:encoded><![CDATA[<p>div，作为web标准化进程中大火大热的HTML标签，在完成了取代table布局的使命之后，在强调语义化的今天，开始成为被滥用得最多的标签。HTML5新增的标签中，有一大部分是为了取代HTML4里的div使用场景。比如：&lt;header&gt;、&lt;footer&gt;、&lt;aside&gt;、&lt;section&gt;、&lt;nav&gt;等。那么div还有存在的意义吗？如果有，又该在什么情况下使用呢？本文尝试对这个问题做一点分析。仅代表个人观点。</p>
<p><span id="more-939"></span>
<p>要考虑语义化的div，首先想到的当然是div的语义到底是什么。根据<a title="the definetion of div element" href="http://www.w3.org/TR/2010/WD-html5-20100304/semantics.html#the-div-element" rel="reference" target="_blank">w3c的文档</a>，div没有任何语义，它仅描述它所包含的成员，可以通过class、lang、title等属性来标注其语义。在使用上，它用来标注一组连贯的（关联的？）元素。</p>
<blockquote><p>The <code><a href="http://www.w3.org/#the-div-element">div</a></code> element has no special meaning at all. It <a href="http://www.w3.org/the-xhtml-syntax.html#represents">represents</a> its children. It can be used with the <code><a href="http://www.w3.org/dom.html#classes">class</a></code>, <code><a href="http://www.w3.org/dom.html#attr-lang">lang</a></code>, and <code><a href="http://www.w3.org/dom.html#the-title-attribute">title</a></code> attributes to mark up semantics common to a group of consecutive elements.</p>
</blockquote>
<p>但是在这段文字下，w3c又用更为醒目的文字做了补充说明：</p>
<blockquote><p>Authors are strongly encouraged to view the <code><a href="http://www.w3.org/#the-div-element">div</a></code> element as an element of last resort, for when no other element is suitable. Use of the <code><a href="http://www.w3.org/#the-div-element">div</a></code> element instead of more appropriate elements leads to poor accessibility for readers and poor maintainability for authors.</p>
</blockquote>
<p>由此可见，并不提倡大量使用，到处使用div。在有更合适的元素下，使用div会导致可访问性和可维护性的降低。从这个意义上说，滥用div比恰当使用table的危害更大。因为table毕竟是有明确语义，有明确使用场景的。但是div依然是必不可少的，因为对于复杂的文档结构来说（尤其网页毕竟不是纯粹的文档），我们在网页重构过程中经常会遇到找不到恰当语义的元素的情况，这时候，使用div是没办法下的办法。但是，应该使用title、class、lang（文档没有提到id）等属性来赋予其语义。</p>
<p>比如：网页分为页眉(header)、主体(body)、页脚(footer)，我们现在有了header、footer，缺没有对应于主体的标签（body已经用于文档内容的根元素了），这时候，用article或者section显然不符合语义，那么，选择div就是不错的选择。比如：</p>
<pre style="background: #2e2e2e" class="code"><span style="color: white">&lt;!</span><span style="color: #be5663">DOCTYPE </span><span style="color: #ff8040">html PUBLIC </span><span style="color: #fff9a8">"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span style="color: white">&gt;
&lt;</span><span style="color: #be5663">html </span><span style="color: #ff8040">xmlns</span><span style="color: white">=</span><span style="color: #fff9a8">"http://www.w3.org/1999/xhtml"</span><span style="color: white">&gt;
&lt;</span><span style="color: #be5663">head</span><span style="color: white">&gt;
&lt;</span><span style="color: #be5663">title</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">Untitled Page</span><span style="color: white">&lt;/</span><span style="color: #be5663">title</span><span style="color: white">&gt;
&lt;/</span><span style="color: #be5663">head</span><span style="color: white">&gt;
&lt;</span><span style="color: #be5663">body</span><span style="color: white">&gt;
&lt;</span><span style="color: #be5663">header</span><span style="color: white">&gt;
  &lt;</span><span style="color: #be5663">h1</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">文档标题</span><span style="color: white">&lt;/</span><span style="color: #be5663">h1</span><span style="color: white">&gt;
  &lt;</span><span style="color: #be5663">nav </span><span style="color: #ff8040">id</span><span style="color: white">=</span><span style="color: #fff9a8">"global"</span><span style="color: white">&gt;    &lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"news.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">新闻</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt; </span><span style="color: #d3d3d3">-     </span><span style="color: white">&lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"blog.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">博客</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt; </span><span style="color: #d3d3d3">-     </span><span style="color: white">&lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"forums.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">论坛</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt;  &lt;/</span><span style="color: #be5663">nav</span><span style="color: white">&gt;
  &lt;</span><span style="color: #be5663">p</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">最后修改:
    </span><span style="color: white">&lt;</span><span style="color: #be5663">time</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">2009-04-01</span><span style="color: white">&lt;/</span><span style="color: #be5663">time</span><span style="color: white">&gt;
  &lt;/</span><span style="color: #be5663">p</span><span style="color: white">&gt;
  &lt;</span><span style="color: #be5663">nav </span><span style="color: #ff8040">id</span><span style="color: white">=</span><span style="color: #fff9a8">"local"</span><span style="color: white">&gt;
    &lt;</span><span style="color: #be5663">h1</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">导航</span><span style="color: white">&lt;/</span><span style="color: #be5663">h1</span><span style="color: white">&gt;
    &lt;</span><span style="color: #be5663">ul</span><span style="color: white">&gt;
      &lt;</span><span style="color: #be5663">li</span><span style="color: white">&gt;&lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"articles.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">所有文章</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt;&lt;/</span><span style="color: #be5663">li</span><span style="color: white">&gt;
      &lt;</span><span style="color: #be5663">li</span><span style="color: white">&gt;&lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"whatsnew.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">最新文章</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt;&lt;/</span><span style="color: #be5663">li</span><span style="color: white">&gt;
      &lt;</span><span style="color: #be5663">li</span><span style="color: white">&gt;&lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"elite.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">精华推荐</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt;&lt;/</span><span style="color: #be5663">li</span><span style="color: white">&gt;
    &lt;/</span><span style="color: #be5663">ul</span><span style="color: white">&gt;
  &lt;/</span><span style="color: #be5663">nav</span><span style="color: white">&gt;
&lt;/</span><span style="color: #be5663">header</span><span style="color: white">&gt;
<strong><em>&lt;</em></strong></span><span style="color: #be5663"><strong><em>div</em></strong></span><span style="color: white"><strong><em>&gt;</em></strong>
  &lt;</span><span style="color: #be5663">article</span><span style="color: white">&gt;
    &lt;</span><span style="color: #be5663">header</span><span style="color: white">&gt;
      &lt;</span><span style="color: #be5663">h1</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">文章标题</span><span style="color: white">&lt;/</span><span style="color: #be5663">h1</span><span style="color: white">&gt;
    &lt;/</span><span style="color: #be5663">header</span><span style="color: white">&gt;
    &lt;</span><span style="color: #be5663">div</span><span style="color: white">&gt;
      &lt;</span><span style="color: #be5663">p</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">Today I went to the beach and had a lot of fun.</span><span style="color: white">&lt;/</span><span style="color: #be5663">p</span><span style="color: white">&gt;
      </span><span style="color: #d3d3d3">...更多内容... </span><span style="color: white">&lt;/</span><span style="color: #be5663">div</span><span style="color: white">&gt;
    &lt;</span><span style="color: #be5663">footer</span><span style="color: white">&gt;
      &lt;</span><span style="color: #be5663">p</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">发表于
        </span><span style="color: white">&lt;</span><span style="color: #be5663">time </span><span style="color: #ff8040">pubdate datetime</span><span style="color: white">=</span><span style="color: #fff9a8">"2009-10-10T14:36-08:00"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">星期二</span><span style="color: white">&lt;/</span><span style="color: #be5663">time</span><span style="color: white">&gt;
        </span><span style="color: #d3d3d3">.</span><span style="color: white">&lt;/</span><span style="color: #be5663">p</span><span style="color: white">&gt;
    &lt;/</span><span style="color: #be5663">footer</span><span style="color: white">&gt;
  &lt;/</span><span style="color: #be5663">article</span><span style="color: white">&gt;
  </span><span style="color: #d3d3d3">...更多文章... </span><span style="color: white">&lt;/</span><span style="color: #be5663">div</span><span style="color: white">&gt;
&lt;</span><span style="color: #be5663">footer</span><span style="color: white">&gt;
  &lt;</span><span style="color: #be5663">p</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">Copyright © 2010 公司名称</span><span style="color: white">&lt;/</span><span style="color: #be5663">p</span><span style="color: white">&gt;
  &lt;</span><span style="color: #be5663">nav </span><span style="color: #ff8040">id</span><span style="color: white">=</span><span style="color: #fff9a8">"about"</span><span style="color: white">&gt;
    &lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"about.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">About</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt; </span><span style="color: #d3d3d3">-
    </span><span style="color: white">&lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"policy.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">Privacy Policy</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt; </span><span style="color: #d3d3d3">-
    </span><span style="color: white">&lt;</span><span style="color: #be5663">a </span><span style="color: #ff8040">href</span><span style="color: white">=</span><span style="color: #fff9a8">"contact.html"</span><span style="color: white">&gt;</span><span style="color: #d3d3d3">Contact Us</span><span style="color: white">&lt;/</span><span style="color: #be5663">a</span><span style="color: white">&gt;
  &lt;/</span><span style="color: #be5663">nav</span><span style="color: white">&gt;
&lt;/</span><span style="color: #be5663">footer</span><span style="color: white">&gt;
&lt;/</span><span style="color: #be5663">body</span><span style="color: white">&gt;
&lt;/</span><span style="color: #be5663">html</span><span style="color: white">&gt;</span><span></pre>
<p>请关注这个HTML（来自w3c官方网站）结构，根据w3c的说明，div在这里用于包装页面上除了页眉和页脚之外的所有内容，以及包装文章中除了文章的头和尾之间的所有内容。w3c说明的原文如下：</p>
<blockquote><p>Notice the <code><a href="http://www.w3.org/#the-div-element">div</a></code> elements being used to wrap all the contents of the page other than the header and footer, and all the contents of the blog entry other than its header and footer.</p>
</blockquote>
<p>对于div在HTML5中的应用，个人觉得这个文档结构已经给出了非常明确的例子。</p>
<p>小小的总结一下：div在HTML5中与在HTML4中的用途变化不大，除了已经有明确语义的新元素能够承担责任（比如header、footer、nav）之外，要将一组彼此关联的内容作为一个整体的时候，仍然适用div。</p>
<p></span></p>
<h3  class="related_post_title">相关日志</h3><ul class="related_post"><li>2009-12-21 -- <a href="http://ofcss.com/2009/12/21/web-developer-understand-css-box-model.html" title="前台开发从头说起：理解css盒模型">前台开发从头说起：理解css盒模型</a></li><li>2009-12-16 -- <a href="http://ofcss.com/2009/12/16/web-developer-about-css-selector.html" title="前台开发从头说起：谈谈CSS选择符">前台开发从头说起：谈谈CSS选择符</a></li><li>2009-12-15 -- <a href="http://ofcss.com/2009/12/15/web-developer-from-web-standard.html" title="前台开发从头说起：关于web标准化">前台开发从头说起：关于web标准化</a></li><li>2009-10-13 -- <a href="http://ofcss.com/2009/10/13/misconceptions-about-web-standardization.html" title="关于web标准化的一些误区">关于web标准化的一些误区</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ofcss.com/2010/06/02/div-in-html5.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

