2011-11-06 23 views
15

tdの幅は162pxですが、style = "width:25px"(tdとthの場合)ブラウザがtdを指定した幅プロパティより大きく表示しているのはなぜですか?

これをCSSファイルに入れました。

table, td, th { 
    border: 1px solid black; 
} 
table { 
    border-collapse:collapse; 
} 

table.narrow th, td { 
    width:50px; 
} 

動作しません。最後のクラスはclass = "narrow"のテーブルを取り、その子孫のすべての要素を50px幅にします。クロムはこれを読んで無視していますか?またはCSSはちょうどばかげたことですか?または私は何ですか?なぜCSSは通常のプログラミング言語のように、あなたがそれを伝えることができないのですか?

だから、スタイル= "width:25px"を第1列のtdに貼り付けてみましたが、タグはまだ動作しません。 Chromeでは

element.style { width:25px; } 

が表示されますが、なぜそれが162ピクセルで表示されているのかわかりません。

誰か手がかりはありますか? ありがとう。


編集:Kolinkは私に必要な手がかりをくれました。タグ内のフォームテキストフィールドは、最小幅が大きくなりました。テーブルを縮小するためにこのスタイルを追加しました:

.narrow input{ 
    width:80px; 
} 

class = "narrow"テーブル内のすべての入力の幅を減らし、テーブルの幅を狭くしました。

答えて

29

テーブルのスタイルにを設定します。それ以外の場合、テーブルレイアウトは緩く、widthmin-widthのように扱われます。

+1

にうーん、私はあなたが3人のアップ票を得たが、これは私のために動作しませんでした参照影響を受ける要素を繰り返す必要があります。 table-layou:固定;ブラウザに表示されています。セル幅には影響しません。 –

+0

セルの内容が希望の幅よりも広く、破損することはありませんか?おそらく、 'word-break:break-all'や' overflow:hidden'をセル上で試してみてください。 –

+0

ああ、ありがとう。私は無効なフォームフィールドに値を表示していました。 Chromeのデフォルトサイズは155ピクセルだと思います。私は彼らのために私のCSSファイルに別のスタイルを追加し、今それは最終的に動作します! .hw3p3入力{ \t幅:80px; } –

2

あなたの定義は、すべてのTD

table.narrow th, td { 
    width:50px; 
} 

のためであるあなたが列挙

table.narrow th, table.narrow td { 
    width:50px; 
} 
+0

本当ですか?私はそれが理にかなっていると思いますが、私には起こりませんでした。 –

関連する問題