日期:2013-10-09  浏览次数:21172 次

<blockquote>应该怎样使用?

关于语义化,不是一句两句就能说明白的,而且如今也没有一个官方的很严厉的定义。关于<blockquote>没有争议的是:
1.援用一段较长的文字
2.可以使用cite标签或者属性

问题是<blockquote>援用的文字必须使用块级元素将他包含吗?

首先是来自W3C的解释

9.2.2 Quotations: The BLOCKQUOTE and Q elements
<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- long quotation -->
<!ATTLIST BLOCKQUOTE
 %attrs; -- %coreattrs, %i18n, %events --
 cite %URI; #IMPLIED -- URI for source document or msg --
 >
<!ELEMENT Q - - (%inline;)* -- short inline quotation -->
<!ATTLIST Q
 %attrs; -- %coreattrs, %i18n, %events --
 cite %URI; #IMPLIED -- URI for source document or msg --
 >

这两个便签指名包含的内容为援用文字. BLOCKQUOTE 用于长文字的援用(block-level content) 而 Q 用于短文字的援用(inline content) 且不允许援用的句子不完整。
这个例子的文字来自 "The Two Towers", 作者 J.R.R. Tolkien, 最为援用文字.
<BLOCKQUOTE cite="http://www.mycom.com/tolkien/twotowers.html">
<P>They went in single file, running like hounds on a strong scent,and an eager light was in their eyes. Nearly due west the broad swath of the marching Orcs tramped its ugly slot; the sweet grass of Rohan had been bruised and blackened as they passed.</P>
</BLOCKQUOTE>

http://www.456bereastreet.com/lab/developing_with_web_standards/structure/

这篇文章是使用web标准进行开发,里面提到了关于一些TAGS的语义下面摘录的是<blockquote>
For longer quotations that form one or more paragraphs, the <blockquote> element should be used. CSS can then be used to style the quotation. Note that text is not allowed directly inside a <blockquote> element – it must be contained in an element, usually a <p> element.
Example:
<blockquote cite="http://www.w3.org/TR/1999/REC-html401-19991224/
struct/text.html">
 <p>“The following sections discuss issues surrounding the structuring of text. Elements that present text (alignment elements, font elements, style sheets, etc.) are discussed elsewhere in the specification. For information about characters, please consult the section on the document character set.”</p>
</blockquote>

http://24ways.org/advent/transitional-vs-strict-markup

这篇文章是关于transitional-vs-strict,过渡型和标准型xhtml的区别,里面提到了内容模型的区别,有关于< blockquote>的内容,在strict中,援用的内容必须使用块级元素将其包含,通常是<p>,<div>中。
Content model differences
An element type’s content model describes what may be contained by an instance of the element type. The most important difference in content models between Transitional and Strict is that blockquote, body, and form elements may only contain block level elements. A few examples:
  • text and images are not allowed immediately inside the body element, and need to be contained in a block level element like p or div
  • input elements must not be direct descendants of a form element
  • text in blockquote elements must be wrapped in a block level element like p or div
所以,我认为,在strict型必须用块级元素将援用文字包含,而在非strict型中就不必了,但是建议这样这样做,由于strict型文档更严厉,也算是向后兼容了。