特定のTDでCSSクラスを使用せずに、テーブルの最後のTDのスタイルを設定します。
<table>
<tbody>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<td>Five</td>
</tr>
</tbody>
</table>
table td
{
border: 1px solid black;
}
テキスト「Five」を含むTDに境界線を付けないようにしたいのですが、クラスを使用したくありません。
相対ルールを使用できます:
table td + td + td + td + td {
border: none;
}
これは、実行時に列数が決定されていない場合にのみ機能します。
:last-child
セレクターはそれを行うべきですが、それは IEのどのバージョンでもサポートされていません です。
クラスを使う以外に選択肢がないのではないかと心配しています。
:last-of-type
疑似クラスを使用できます。
tr > td:last-of-type {
/* styling here */
}
さまざまなブラウザとの詳細および互換性については、 MDN を参照してください。
詳細については、 W3C CSSガイドライン をご覧ください。
最後の子擬似クラスを使用できます
table tr td:last-child {
border: none;
}
これは最後のtdのみをスタイルします。まだ完全にはサポートされていないため、不適切な場合があります
すでにJavaScriptを使用している場合は、jQueryをご覧ください。ブラウザに依存しない「最後の子」セレクターをサポートしており、このようなことができます。
$("td:last-child").css({border:"none"})
で試してください:
tr:last-child td:last-child{
border:none;
/*any other style*/
}
これは、テーブル内の最後のtd要素にのみ影響します。唯一のものであると仮定します(そうでない場合は、テーブルを識別する必要があります)。ただし、非常に一般的であり、テーブルにさらにコンテンツを追加すると、最後のTDに適応します。
td:nth-child(5){
border:none;
}
十分なはずです。
Javascriptは、このクライアント側を実行するための唯一の実行可能な方法です(つまり、CSSは役に立ちません)。 jQueryの場合:
$("table td:last").css("border", "none");
JQueryでは、次の実行前にテーブルが静的または動的に作成される場合:
$("table tr td:not(:last-child)").css({ "border-right":"1px solid #aaaaaa" });
最後のセルを除くテーブル行のすべてのセルに右境界線を追加するだけです。
HTML 4.0で指定されているcol要素を使用できます( link )。すべてのブラウザで動作します。 ID、クラス、またはインラインスタイルを指定できます。唯一の注意点は、すべての行の列全体に影響することです。例:
<table>
<col />
<col width="50" />
<col id="anId" />
<col class="whatever" />
<col style="border:1px solid #000;" />
<tbody>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<td>Five</td>
</tr>
</tbody>
</table>
私もこれを行う方法を探していましたが、これが他の人に役立つ可能性があることがわかりました:
#table td:last-of-type { border: none; }
IEでもサポートされていないことに注意してください。
質問への直接的な答えではありませんが、<tfoot>を使用すると、必要なものを達成するのに役立つ可能性があり、もちろんtfootをスタイルできます。
IEの場合、CSS式の使用方法は次のとおりです。
<style type="text/css">
table td {
h: expression(this.style.border = (this == this.parentNode.lastChild ? 'none' : '1px solid #000' ) );
}
</style>
別のアプローチもあります。これは、静的ではないテーブルで機能します。基本的には<th>
の代わりに <td>
その列の場合:
<style type="text/css">
table td { border: 1px solid black; }
table th { border: 0px; }
<style>
<table>
<tbody>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<th>Five</th>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<th>Five</th>
</tr>
</tbody>
</table>
これは、すべてのノードの境界線を追加し、最後のノード(TD)の境界線を削除するコードです。
<style type="text/css">
body {
font-family:arial;font-size: 8pt;
}
table td{
border-right: #666 1px solid
}
table td {
h: expression(this.style.border = (this == this.parentNode.lastChild ? 'none' : 'border-right: 0px solid' ) );
}
</style>
<table>
<tr>
<td>Home</td>
<td>sunil</td>
<td>Kumar</td>
<td>Rayadurg</td>
<td>Five</td>
<td>Six</td>
</tr>
</table>
楽しい ...
私は画像を使用してそれを望んでいたボーダーの代わりに同じものが欲しい... :-)