2

<table>私は最近、表形式ではないデータを使用していた別の開発者と話し合いました。

<table><tr><td> Server: </td><td> Development </td></tr></table>

表形式のデータには複数の次元があり、スタイル設定や表示に表を使用することは推奨されないことを指摘しました。彼は、表が 1 つの行であったからといって、データが表形式ではないということにはならないと答えました。

「表形式のデータ」に複数の次元がある場合、少なくとも 2 つの行と 2 つの列が必要になるように思えます。<table><tr><td></td></tr></table>しかし、彼は(および<table></table>)両方の validateを指摘し、彼が間違って使用している場合<table>、W3C は不明確であり、バリデーターでうまく機能していないと指摘しました。

警告になる可能性があるため、結果の構造が表形式であるかどうかに関係なく、表形式のデータ<table>を表すために使用することになっていると思います。上記の例では、サーバーは 1 つしか存在しませんが、日付範囲でフィルター処理された複数列データの行が 0 行以上存在する可能性があります。

私の質問は、ここにいるのは誰ですか? 仕様を誤解している場合、どのように誤解しているのでしょうか? 表形式のデータがあるが、複数の行を印刷するのに十分なフィルター処理されたデータがない場合 (つまり、小さな日付範囲でフィルター処理されている場合)、列ヘッダーのみを印刷するのは正しくありませんか? 「結果が見つかりません」というフル colspan 行も印刷する必要がありますか? のデータが<table>多次元でなければならない場合、単一列および/または単一行のテーブルが検証されるのはなぜですか?


on_modifiedリスナーを使用してファイルを保存するプラグインを作成できます。次のようなものが機能する可能性があります(テストされていないことに注意してください)

import sublime_plugin

class SaveOnModifiedListener(sublime_plugin.EventListener):
    def on_modified(self, view):
        view.run_command("save")

リンターがある場合は、それを検証して、クリーンなリントのみを節約できます。私が投稿したものでは、崇高なファイルへの編集はキーストロークごとに保存されることに注意してください。ファイルの種類、ディスク上に存在するかどうかなどについて、いくつかの追加チェックを追加することができます。

4

4 に答える 4

3

私は他の人に同意します。マークアップの有効性は、マークアップのセマンティクスと同等ではありません。

表形式のデータには、保持するデータを説明する列ヘッダーが必要です。したがって、最も最小限のテーブルは次のようになります (1 列に 1 行のデータがあり、その列には見出しが必要です)。

<table>
    <thead>
        <tr>
            <th>My Heading</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>my value</td>
        </tr>
    </tbody>
</table>

表現したい場合"no results found"は、表の外に表示する必要があります。no results foundはデータではないので。No results はテーブルに何も表示しないか、テーブルを非表示にしてno results foundメッセージを表示することをお勧めします。

于 2013-03-07T19:34:44.120 に答える
1

「表形式のデータ」に複数のディメンションがある場合、少なくとも2つの行と2つの列が必要になるように思われます。しかし、彼は、<table><tr><td></td></tr></table><table></table>および)両方が検証すること、および彼が<table>誤って使用している場合、W3Cが不明確であり、検証ツールで不十分な仕事をしたことを指摘しました。

マークアップの有効性は、セマンティクスとはまったく関係ありません。<p>空の段落は書面では意味がありませんが、それ自体は有効なHTMLです。同様に、次の3つのテーブルは、実際のデータが含まれていなくても、すべて有効です。

<table></table>

<table>
  <tbody>
</table>

<table>
  <thead><tr><th>
  <tbody>
  <tfoot><tr><th>
</table>

ただし、<tr>ご覧のとおり、子のない要素は無効です。

<table>
  <tr>
</table>

現在のHTML5.0CRには、要素にaまたは要素<tr>のいずれかである子が少なくとも1つ必要であるというルールが見つからないため、その理由はわかりません(単に、ゼロまたはどちらかの種類の詳細)。<td><th>

とにかく、テーブルに1つの行しか含まれていない場合は、そうです。これは単に、テーブルにリストされるレコードが1つしかないことを意味します。ただし、表形式のデータセマンティクスは、このテーブルに1行しかないかどうかではなく、この構造が2次元形式で表現された任意の数のデータレコードに適しているかどうかの問題です。それが表形式のデータを構成するものです。

あなたの例では、「サーバー」のエントリが複数ある可能性がありますか(ちなみに、実際のテーブル見出しの場合は、<th>ではなく<td>コロンを含める必要があります)。そうでない場合、たとえばユーザーにどのサーバーを使用しているかを伝えるだけであれば、この情報を表示するために使用するのにテーブルは最も適切な要素ではありません。値「Development」には、見出しまたはラベル、およびその他のテキストコンテナを使用する必要があります。

表形式のデータがあるが、複数の行を印刷するのに十分なフィルター処理されていないデータがある場合(つまり、小さな日付範囲でフィルター処理されている場合)、列ヘッダーのみを印刷するのは正しくありませんか?「結果が見つかりません」の完全なcolspan行も印刷する必要がありますか?

「結果が見つかりません」という行を表示するかどうかはあなた次第です。どちらの方法でも許容できるはずです。この場合、あなたが持っているのは表形式のデータを含むように設計されたテーブルだけですが、何らかの理由で提示するデータがありません。

のデータが<table>多次元である必要がある場合、単一列および/または単一行のテーブルが検証されるのはなぜですか?

1x1の正方形(つまり1²)のグリッドでさえ2次元と見なされるため、この単一のセル<th>に行が付随していない場合でも(ここでも、有効性とセマンティクスは2つの非常に異なる問題です)。

于 2013-03-07T19:53:02.290 に答える
0

有効!=セマンティック、それから始めましょう。sだけでウェブページ全体を作成できますが、それで<div>セマンティックになりますか?いいえ。

表形式のデータは、必ずしも複数のディメンションがあることを意味するわけではありませんただし、それは確かに役立ちます!)。表形式のデータとは、「テーブルに入れるのが最も理にかなっているテーブル」を意味します。ただし、データである必要があります。テーブル内にナビゲーションリンクを配置することは、定義上、意味がありません。

それは彼がそのテーブルの中に何を置いたかに正確に依存します。テーブルは問題ないかもしれません。彼が実際にそこに置いたものの例を挙げてみてください。

于 2013-03-07T19:28:00.783 に答える
0

テーブルに関する私の問題 (実際にはテーブルの使い方しか知らない開発者と仕事をしています) は、テーブル タグ内のコンテンツを div タグ内のデータほど簡単に移動できないことです。確かに、テーブルはほとんど何でも作成でき、div タグとほぼ同じくらい簡単に移動できますが、テーブル自体に関連するオーバーヘッド (タグの数) が増えます。

パディングやスペーシングなどの調整により多くの時間を費やす必要があります。DIV よりもテーブルを操作する方が全体的にはるかに効率が悪く、より多くのコードが必要になり、コードが視覚的に読みにくくなります。別の回答者が提供したコード例のように、きちんとした個々の行のテーブルタグが好きです。そうしないと、変なネストが発生する危険があります。DIV を使用すると、ネストの問題がはるかに少なくなります。

とはいえ、多くの人は DIV がわかりにくく、より柔軟なタグの扱い方を知りません。

だから、それは本当に個人的な好みの問題です。CSS をより多く知っていて、学ぶ意欲があるほど、DIV を使用する可能性が高くなります。サイトがシンプルで、CSS を知らない開発者が増えれば増えるほど、テーブルは使いやすくなります。HTMLコードに触れずにページを大幅に再フォーマットすることになると、実行可能性が制限されます. (または HTML コードを生成するバックエンド サーバー コード)

于 2013-03-07T19:40:38.290 に答える