2

私はWebプログラミングのクラスをいくつか受講していますが、インストラクターを含むクラスの誰も、htmlテーブルに関してフレーム値ボックスと境界線の違いを言うことができません。これが私が話していることの例です。

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

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

私が知る限り、これら2つのテーブルは、互いに同じようにレンダリングされます。最初は明らかではないかもしれない根本的な違いはありますか、それともそれらを使用する正しい方法または間違った方法がありますか?

4

4 に答える 4

4

違いはありません; それらはお互いのエイリアスです。HTML 4.01仕様から:

この属性は、テーブルを囲むフレームのどちら側が表示されるかを指定します。可能な値:

  • ..。
  • box:4つの側面すべて。
  • border:4つの側面すべて。

今日、それらを使用するためのほとんど唯一の正しい方法は、それらを使用しないことです。テーブルの境界線のスタイルは、表示属性の代わりにCSSを使用して定義する必要があります。これframeは一例ですが、かなりあいまいなものです。この属性のブラウザサポートは、あいまいなため、とにかくかなりパッチが当てられているようです。

于 2012-10-25T20:28:08.413 に答える
1

ボックス外側の境界線は4つの側面すべてに表示されます

border外側の境界線は4つの側面すべてに表示されます

つまり、それらは同じ http://www.w3schools.com/tags/att_table_frame.aspです。

于 2012-10-25T20:28:07.550 に答える
1

すでに述べたように、それらは同じことをします、そしてあなたはとにかくフレーム属性を使うべきではありません。

同じものに2つの異なる値があった理由を理解するには、RFC1942HTMLテーブルを読む必要があります。

値「Border」は、デプロイされたブラウザーとの下位互換性のために含まれています。ドキュメントに<TABLE BORDER>ユーザーエージェントが含まれている場合、FRAME=BORDERおよびBORDER=が暗黙的に表示されます。ドキュメントに含まれている場合、FRAME=VOIDが適切であるn=0<TABLE BORDER=_n_>の場合を除いて、ユーザーエージェントはこれをFRAME=BORDERとして扱う必要があります。

注:RULES属性および位置合わせに使用される値と一致するFRAMEの値を選択することが望ましいでしょう。例:none、top、bottom、topbot、left、right、leftright、all。残念ながら、SGMLでは、列挙された属性値が、属性名に関係なく、要素ごとに一意である必要があります。これにより、「なし」、「左」、「右」、「すべて」の問題がすぐに発生します。FRAMEの値は、RULES、ALIGN、およびVALIGN属性との衝突を回避するために選択されています。これは、この仕様の将来の改訂でFRAME属性とRULES属性が他のテーブル要素に追加されることが予想されるため、将来の校正の手段を提供します。別の方法は、FRAMEをCDATA属性にすることです。

そのため、仕様が作成される前に「border」がブラウザですでに使用されていましたが、SGMLの微妙な点と互換性がなかったため、同じことを行うSGML互換の方法を提供するために「box」が追加されました。

ブラウザは実際には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>

通常、同じ名前の2つの属性があると、バリデーターによってエラーが報告されますが、W3C HTMLバリデーターでこれを試してみると、検証に合格することがわかります。これは、バリデーターが最初のborder属性をの短縮形と見なし、frame="border"名前の衝突がないためです。

一方、ブラウザは名前の衝突を認識し、border=5属性を無視します。

于 2012-10-25T21:39:03.687 に答える
0

それらはほぼ同じですが、名前のコンテキストが異なるため、異なるブラウザのサポートに依存しています。

フレームは4つの境界線すべてが必要であることを意味しますが、ボックスは同じですが、ルールで使用できます。このように:rules = "none"

于 2012-10-25T20:31:11.573 に答える