正如已經說過的,他們做同樣的事情,你不應該使用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
屬性。
你應該注意到,同樣,這是現在已經過時的功能。 CSS是首選的方法,正如在這裏鏈接的文章中所引用的。 HTML5不再支持'frame ='屬性。 –