css または jquery を使用して、テーブルの最初の行にのみボーダートップを追加するにはどうすればよいですか?
以下のコードを使用してすべての td で境界線を取得していますが、一番上の最初の行にも境界線が必要です。
このプロジェクトでは CSS3 を使用できません。
私が持っているもの:
コンテンツ
コンテンツ
コンテンツ
私が欲しいもの:
コンテンツ
コンテンツ
コンテンツ
.MyCarTable td {
border-bottom: 1px solid grey;
}
css または jquery を使用して、テーブルの最初の行にのみボーダートップを追加するにはどうすればよいですか?
以下のコードを使用してすべての td で境界線を取得していますが、一番上の最初の行にも境界線が必要です。
このプロジェクトでは CSS3 を使用できません。
私が持っているもの:
コンテンツ
コンテンツ
コンテンツ
私が欲しいもの:
コンテンツ
コンテンツ
コンテンツ
.MyCarTable td {
border-bottom: 1px solid grey;
}
この場合、パフォーマンス上の理由から CSS のみが推奨される方法です。他の方法では実行できないため、実際に必要な場合を除き、javascript を使用しないでください。
first-child疑似クラスを使用するスタイル定義を追加します。
.MyCarTable td {
border-bottom: 1px solid #ccc;
}
.MyCarTable tr:first-child td {
border-top: 1px solid grey;
}
そして、心配しないでください。この特定の疑似クラスは、ブラウザーで長い間サポートされてきました。IE でもバージョン 7 以降でサポートされています。この動作を示すJSFiddleを次に示します。
th解決策 2:要素を使用したテーブル ヘッダーテーブルにヘッダー行がある場合は、thその代わりに要素を使用tdし、ヘッダー セルに別のスタイルを設定します。ただし、これは、最初の行のセルのセマンティック コンテンツが、実際にはその下の行のセル ヘッダーの説明である場合にのみ使用してください。そうでなければ、私はそれを提案しません。
同じコンテナ内に連続するテーブルがある場合、次のテーブルは前のテーブルの最後の行から上部の境界線を取得します。また、境界線が重複するため、最初の行に上部境界線を適用したくありません。
解決策 (この JSFiddleに見られるように) は似ており、最初のテーブルのみに適用されます。
.MyCarTable td {
border-bottom: 1px solid #ccc;
}
.MyCarTable:first-child tr:first-child td {
border-top: 1px solid #f99;
}
ご覧のとおり、一番上の行の境界線は、最初のテーブルとその中の最初の行にのみ設定されています。連続するすべてのテーブルがそれを設定するわけではありません。もちろん、この例は上記の最初のソリューションとのみ互換性があります。要素を含むパスを選択した場合はth、両方の組み合わせを使用する必要があります (thおよび疑似クラス)。
しかし、あなたが言ったように、リピーターコードを統合しました。
これを試して:
.MyCarTable tr{border-top: 1px solid grey;}
.MyCarTable tr + tr {border-top: none !important;}
または
.MyCarTable tr td {border-top: 1px solid grey;}
.MyCarTable tr + tr td {border-top: none !important;}
「+」は CSS の隣接セレクターです。隣接セレクターは、IE7+ およびその他すべての最新ブラウザーでサポートされています。
$(".MyCarTable tr:first").css({
borderTop: "1px solid grey"
});