2009-07-13 14 views

答えて

10

イアン・ヒキシーがここで詳細に説明しています:The mystery of why only four properties apply to table columns。関連する引用:

テキストの色は、要素の 'color'プロパティに依存します。指定されていない限り、 'color'プロパティ(基本的に)はデフォルトで '継承'になります。これは "親要素の値を取る"ことを意味します。

セル内の一部のテキストの場合、色はセルの 'color'プロパティによって決まります。セルの色はテーブルから取得された行から取得され、テーブルの親から取得されますに。

カラムはどうですか?さて、この列はセルの先祖の1つではないので、決してルックインを取得しません!そしてそこに問題があります。

+0

興味深い記事。多くの意味がありますが、なぜこれらの4つのCSSルールが許可されているのかは説明されていませんが、他のルールは許可されていません。確かに、背景を適用するために解析モデルを修正する必要がありました。 – DisgruntledGoat

+2

列に背景色があります。セルと行の背景色が透明であれば、列の色を見ることができます。これは要素を重ね合わせるだけです。フォントの色はそのようには機能しません。 – Quentin

0

おそらく、表の各行が列のセルを表示する必要はないためです(例:列車のため)。そのセルがそのスタイルを継承する列はどれですか?ちょうど推測。私の限られた理解に基づいて、暗闇の中でだけで野生の刺し

+0

完全に間違った推測です。他の答えを見てください。 – Quentin

8

は、私は、彼らがしている(<col><colgroup>は、セルの列を表すが、それは実際にそれらを含んでいないため、列に関連する要素を介したスタイリングが制限されていると思います実際には<tr>に含まれています)。これにより、優先度と特異性とカスケードの問題が発生します(カスケードは包含/コンテナ要素間でのみ実行可能です)。<tr><col>(複数の継承階層で同じレベルになります)の競合するスタイル規則が発生するとセルは実際に使用しますか?

なぜ、この特定のスタイル属性がいくつあるのかはわかりません。

+1

競合の場合、リンク先のページには、セルが行より優先され、列よりも優先されます。したがって、列またはセルレベルでオーバーライドされない限り、列のスタイルは適用されます。 – DisgruntledGoat

3

1つの単語:あいまいさ。セルは行の子でなければなりません。そうでなければテーブルではないでしょう。しかし、そこから降りる列はありません。 colspanを使用すると、1つのセルが2つの列になる可能性があります。混乱する方法を考え出すのではなく、開発者にn番目のセルにclassを配置させるだけではどうですか?

リンク先の仕様をよく見ると、あいまいさ解決の試みが表示されます。 widthプロパティは最小値を指定します。 backgroundは行とセルにバックシートを取ります。 borderは「競合解決アルゴリズム」を参照している。 borderのアルゴリズムがある唯一の理由は、誰が "勝つ"べきかが合理的に理解されているからです(詳細はアルゴリズムを参照)。しかし、colorまたはfontのどれが「勝つ」べきか把握しようと想像できますか?

+0

@colspanと@rowspanの違いは何でしょうか? – Ms2ger

+0

@ ms2ger:複数の行にまたがるセルは、特定の ''要素の子孫です。 – DisgruntledGoat

+0

@George:良い答えですが、1つの質問... "競合解消アルゴリズム"は、セル(最高)、行、行グループ、列、列グループ、表。なぜそれは色やフォントに適用できないのですか? – DisgruntledGoat

関連する問題