元の質問:HTML <table>
にはデフォルトの幅がありますか?
最近誰かがこれらの線に沿ってどこかで質問をして、私に不思議に思いました。
これを例にとります。
このフィドルで、幅をチェックすると(私はchromeのinspect要素を使用しています)、意図したとおりに機能している100px
が表示されます。
さらにいくつかの「td」を追加してみましょう。「td:100px
」CSSが無視されていることがわかります。
ご覧のとおり、本来の100px
ではなく83pxになりました。
しかし、仮に、より少ないTDに戻り(7)、各TD要素(500px)に広い幅を追加すると、結果としてtdの幅が固定されます。 119px
。
そして最後に、2000px幅のテーブルと、100px
幅のtd、および多くのtd要素があるとします。 http://jsfiddle.net/rqmNY/7/
これで、テーブルの幅がTD幅をオーバーライドし、tdの幅を222px
に拡張します。
誰かがこの動作を説明できますか?
pSすべてのケースで、要素の検査ツールは幅が常にcssに対応していることを通知します。これは、最終結果が正しく表示されていないためです。
私はこの質問に対する答えがそのようなものであると強く信じています:
TDに影響する幅の優先順位は
テーブル幅
親要素の幅(ない場合はビューポート)
Element(TD)の幅。
したがって、テーブルの幅が設定されている場合、TDは常にテーブルの幅に調整されます。ただし、幅が設定されていない場合、「メイン」の幅はビューポートの実際の幅になります。 CSSコードで別段の定めがない限り、これは当てはまります。また、TDの合計幅がビューポートの合計幅よりも小さい場合のみ、要素の幅が考慮されます。
編集
テーブルの幅は常にTD幅をオーバーライドします。
記載TD幅は、ビューポートの幅を超えるまでのみ追跡され、ビューポートの幅が優先されます。
追加してみましたかdisplay:inline-block
to your TD CSS?これにより、ブラウザはあなたのTD width。
W3ドキュメントによると ここ 「幅の指定がない場合、テーブルの幅はユーザーエージェントによって決定されます。」
tdと考えることができる幅は常にテーブルの幅に依存しています。指定するかどうか。幅500px
のテーブルと、幅200px
の2つのTDがある場合。テーブルにこれらの2つのTDを追加した後、対応する100px
が残っているので、元の幅プロパティを上書きする50px
が両方のTDにそれぞれ追加されます。このリンクを参照してください http://jsfiddle.net/rqmNY/7/