html表格中框架属性框和边框之间有什么区别

时间:2012-10-25 20:25:52

标签: html html-table border frame

我正在上网络编程课程,课堂上没有人可以说明在html表格中框架值框和边框之间有什么区别。以下是我所谈论的一个例子。

<table frame="border">
<!-- some basic table data -->
</table>

<table frame="box">
<!-- some basic table data -->
</table>

就我所知,这两个表将以相同的方式呈现。是否有任何潜在的差异,一开始可能不明显,或者是否有正确或错误的方式使用它们?

4 个答案:

答案 0 :(得分:4)

没有区别;他们是彼此的别名。来自HTML 4.01 spec

  

此属性指定围绕表格的框架的哪些边可见。可能的值:

     
      
  • ...
  •   
  • box:四面都有。
  •   
  • border:四面都有。
  •   

今天,使用它们的唯一正确方法是使用它们。应使用CSS而不是表示属性来定义表边框样式,其中frame是一个示例,尽管是一个相当模糊的属性。无论如何,浏览器对此属性seems quite patchy的支持,再次归因于其默默无闻。

答案 1 :(得分:1)

框外边框显示在四边

边框外边框显示在四个边上

即。他们是一样的 http://www.w3schools.com/tags/att_table_frame.asp

答案 2 :(得分:1)

正如已经说过的那样,他们做同样的事情,你也不应该使用frame属性。

要理解为什么同一事物有两个不同的值,需要阅读RFC 1942 HTML Tables,其中说:

  

价值&#34;边境&#34;包含用于向后兼容   部署浏览器。如果文档包含<TABLE BORDER>用户   代理将看到FRAME = BORDER和BORDER = 暗示。如果是文件   包括<TABLE BORDER=_n_>,然后用户代理应将其视为   FRAME = BORDER,除非 n = 0 ,其中FRAME = VOID是合适的。

     

注意:最好选择FRAME的值   与RULES属性和用于对齐的值一致。   例如:none,top,bottom,topbot,left,right,leftright,all。   不幸的是,SGML要求枚举属性值是唯一的   对于每个元素,独立于属性名称。这导致   &#34; none&#34;,&#34; left&#34;,&#34; right&#34;和#34;所有&#34;。价值   选择FRAME是为了避免与RULES,ALIGN和   VALIGN属性。这提供了未来验证的措施,因为它   预计将添加FRAME和RULES属性   到本规范的未来版本中的其他表元素。一个   另一种方法是使FRAME成为CDATA属性。的共识   HTML-WG是能够使用SGML验证的好处   基于枚举值检查属性的工具超过了   需要一致的名字。

所以&#34;边界&#34;在编写规范之前,浏览器已经在使用它,但它与SGML的微妙兼容,所以&#34; box&#34;被添加以提供与SGML兼容的方式来做同样的事情。

由于浏览器实际上并不遵循SGML规则,因此不容易看到上述效果,但HTML5之前的验证器确实如此,并且可能会看到一个小的影响。考虑这个标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
                 "http://www.w3.org/TR/html4/strict.dtd">
<title>Test</title>
<table border border=5>
<tr><td>Test</td></tr>
</table>

通常有两个具有相同名称的属性将导致验证程序报告错误,但在W3C HTML验证程序中尝试此操作,您将看到它通过了验证。这是因为验证程序将第一个border属性视为frame="border"的缩写形式,因此没有名称冲突。

另一方面,浏览器会看到名称冲突,并会忽略border=5属性。

答案 3 :(得分:0)

它们几乎相同,但由于它们在名称上下文中有所不同,因此它们取决于不同的浏览器支持。

框架意味着应该有所有四个边框,而框架是相同的,但它可以与规则一起使用。像这样:rules =&#34; none&#34;