2012-10-25 70 views
2

我在Web編程上學習了一些類,包括教師在內的班級中沒有人可以說出框架值框和邊框之間的區別到HTML表格。這是我正在談論的一個例子。在html表格中框架屬性框和邊框之間有什麼區別

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

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

據我所知,這兩個表格將呈現相同的方式。是否有任何潛在的差異,最初可能並不明顯,或者有沒有正確或錯誤的方式來使用它們?

回答

4

沒有區別;他們是彼此的別名。來自HTML 4.01 spec

此屬性指定圍繞桌子的框架的哪些邊將可見。可能的值:

  • ...
  • box:所有四個側面。
  • border:所有四面。

今天,幾乎使用它們的唯一正確途徑是使用它們。表格邊框樣式應該使用CSS來定義,而不是表示屬性,其中frame就是一個例子,儘管它很模糊。無論如何,瀏覽器對這個屬性seems quite patchy的支持也是由於其默默無聞。

1

框外邊框四面出

邊境境外顯示四面

即它們是相同的 http://www.w3schools.com/tags/att_table_frame.asp

+1

你應該注意到,同樣,這是現在已經過時的功能。 CSS是首選的方法,正如在這裏鏈接的文章中所引用的。 HTML5不再支持'frame ='屬性。 –

0

它們幾乎相同,但由於它們在名稱上下文中有所不同,因此它們取決於不同的瀏覽器支持。

框架意味着應該有所有四個邊框,而框是相同的,但它可以與規則一起使用。像這樣:規則=「無」

1

正如已經說過的,他們做同樣的事情,你不應該使用frame屬性。

要理解爲什麼會有對同一事物的兩個不同的價值觀,這是必要讀RFC 1942 HTML Tables它說:

值「邊界」是爲了與 部署瀏覽器的向後兼容性。如果一個文件包含<TABLE BORDER>,用戶代理將看到FRAME = BORDER和BORDER = 暗示。如果文檔 包括<TABLE BORDER=_n_>那麼用戶代理應該將其視爲 FRAME = BORDER,除非如果n = 0其中FRAME = VOID是合適的。

注意:最好選擇與RULES屬性和用於對齊的值一致的FRAME 的值。例如:none,top,bottom,topbot,left,right,leftright,all。 不幸的是,SGML要求每個元素的枚舉屬性值都是唯一的 ,與屬性名稱無關。這會導致 立即出現「無」,「左」,「右」和「全部」的問題。已選擇用於FRAME的值爲 以避免與RULES,ALIGN和VALIGN屬性衝突。這提供了未來打樣的量度,因爲它 預期的是,FRAME和規則的屬性將被添加到 未來修訂版其他表元素本說明書。一個 替代方案是使FRAME成爲CDATA屬性。的 的共識HTML-WG是的,能夠使用SGML驗證 工具來檢查基礎上遠遠大於 需要一致的名稱枚舉值屬性的好處。

所以「邊界」是已在使用瀏覽器的規範寫,但不符合SGML的一個微妙兼容之前,因此加入「盒子」提供做同樣的事情的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屬性。

相關問題