2011-12-28 13 views
1

私のタイムゾーンでは午後の午後が良いです。注文に応じてテーブルの列幅を設定します

私はtrの4つのテーブルを持ち、それぞれtrは4つのtdを持っています。

それぞれのtdに異なる幅を適用したいと思います。 は、たとえば、私は次のことをしたい:

<tr> 
    <td width="20%"/> 
    <td width="25%"/> 
    <td width="10%"/> 
    <td width="45%"/> 
</tr> 

trに適用され、そのクラス内で、私は、各tdに幅を与えているだけで1つのクラスを持ってする方法はありますか?あるいは、それぞれ幅の異なる4つのクラスを作成しますか?何かのように

.firstTD{ 
    width:20%; 
} 
.secondTD{ 
    width:25%; 
} 
.thirdTD{ 
    width:10%; 
} 
.fourTD{ 
    width:45%; 
} 

これはInternet Explorer 6でもサポートされています。

ありがとうございます。 よろしくお願いします。

+0

私はあなたがこれを行うことはできないと思います。私はdivを使用して、これを達成するためにdivを使用する可能性が最も高いと信じています。私は簡単に間違っているかもしれませんが、それは私が取るアプローチです。 – Jared

答えて

-1

唯一の方法は、各TDのCSSクラスを作成することです。いずれにしても、TDのclass属性は最初の行にのみ使用され、後続の属性はwidthの値を継承します。

+0

これはちょうど私が上記のバージョンでadjancentセレクタを使用することができるIE6との互換性が必要であるために起こります。 – tt0686

0

それぞれのtdを異なる幅にするには、異なるクラスを作成する必要があります。 trに幅を設定することはできますが、セルを同じ部分に分割するか、データを保持するのに十分な大きさに分割します。

1

あなたは、隣接セレクタを使用することができます:あなたはどのクラスを必要としないということのよう

.mytable td{ 
    width:20%; 
} 
.mytable td+td{ 
    width:25%; 
} 
.mytable td+td+td{ 
    width:10%; 
} 
.mytable td+td+td+td{ 
    width:45%; 
} 

を、私は明らかに、これらのスタイルを継承するテーブル自体1、またはすべてのテーブルを与えるだろう。

+0

これは良い提案ですが、これに感謝します。隣接セレクタはIE 6では動作しませんすぐ真上に。 – tt0686

+0

それはもちろん、当てはまります。私の哀悼の意を表します。 ;) – DanMan

0

あなたは、テーブル(またはTBODY)に適用される単一のクラスを使用して

.yourclass td { /* first td */ } 
.yourclass td + td { /* 2nd td */ } 
.yourclass td + td + td{ /* 3rd td */ } 
.yourclass td + td + td + td { /* 4th td */ } 

はこのように書かれたルールは、以下のすべてのルールに適用されるので、これだけを使用されることを考慮して使用することができます特定のプロパティを設定および上書きする古いIEのバージョンをsupprtする必要がない場合

あなたもnth-child は、たとえば使用することができます

.yourclass tr td:nth-child(2) { /* 2nd td */ } 

注:クラスは必須ではありませんが、あなたが複数のテーブルを持っている場合、このスタイルは、唯一の要素に影響を与えますあなたはこのようにスタイルをしたい。

1

複数のクラスを使用する場合は、が必要です。 adjacent selectorが対象です。

td { width: 20%; } 
td + td { width: 25%; } 
td + td + td { width: 10%; } 
td + td + td + td { width: 45%; } 
0

あなたがTRと使用中のクラスを定義し使用することができます。次のように提供することができる別個の幅をそれぞれTDに

<tr class="myrow"> 
    <td /> 
    <td /> 
    <td /> 
    <td /> 
</tr> 

CSSを与えるために第n-子(N)セレクタ、

.myrow td:nth-child(1){ 
    width:20%; 
} 
.myrow td:nth-child(2){ 
    width:25%; 
} 
.myrow td:nth-child(3){ 
    width:10%; 
} 
.myrow td:nth-child(4){ 
    width:45%; 
} 

しかし、これはCSS3をサポートするブラウザでも機能します。これはIE9以降でサポートされます。

関連する問題