2017-03-07 21 views
0

テーブルセルの境界線の角を与えるにはdiv(または私の場合はth)レンダリングの角のピクセルは、コーナーの2つの隣接する辺が異なる色を持つとき?どのように左/右の境界線の代わりに上/下の境界の色を

私が重要なマークを付けても、コーナーは常に側面の色を取得するように見えます。しかし、コーナーピクセルに境界線の色を使用したいと思います。

次の例のように、最初の行に連続した黒い境界線を付け、醜い赤色のセルと表の残りの部分を単にグレーだけに分けます。

table { 
 
    border-collapse: collapse; 
 
    text-align: center; 
 
} 
 

 
table tr td { 
 
    border: 8px solid grey; 
 
} 
 

 
table tr:first-child { 
 
    border: 8px solid black; 
 
} 
 

 
table tr th:not(:last-child) { 
 
    border-right: 8px solid red; 
 
} 
 

 
table tr:not(:first-child) td { 
 
    border-top: 0; 
 
}
I want: 
 
<table> 
 
    <tr> 
 
    <th> black-bordered </th> 
 
    <th> row </th> 
 
    <th> separated </th> 
 
    <th> with </th> 
 
    <th> reds </th> 
 
    </tr> 
 
    <tr> 
 
    <td> everything </td> 
 
    <td> below </td> 
 
    <td> it </td> 
 
    <td> simply </td> 
 
    <td> grey </td> 
 
    </tr> 
 
</table>

私はまた、border-collapseを削除th sのtr要素と側の境界に境界線を与え、ゼロに(私はちょうど発見)border-spacingを設定しようとしました。しかし、trの境界線はまったく表示されず、テーブルの残りの部分が乱されます(これは修正可能です)。

+0

何をしたい明確ではありません。上部と側面の境界線をそれぞれ独自の色にし、別の色に接続する必要がありますか?おそらくあなたが望むもののイメージを表示します。 – Slime

+0

いいえ。「接続する場所」を上部の境界線の色にします。 – kub1x

+0

セル上で 'display'型を' inline-block'のように変更した場合、境界線の色が正しく重なることになります。 – Slime

答えて

1

pseudo elementで取得できます。row + bordersのサイズになります。次に、上下の枠線のみを再適用します。

table { 
 
    border-collapse: collapse; 
 
    text-align: center; 
 
} 
 

 
table tr td { 
 
    border: 8px solid grey; 
 
    border-top: none; 
 
} 
 

 
table tr:first-child { 
 
    border: 8px solid black; 
 
} 
 

 
table tr th:not(:last-child) { 
 
    border-right: 8px solid red; 
 
} 
 

 
table tr th { 
 
    position: relative; 
 
} 
 

 
table tr th::before { 
 
    content: ""; 
 
    position: absolute; 
 
    top: -8px; left: -8px; 
 
    width: calc(100% + 16px); height: 100%; 
 
    border-width: 8px 0; 
 
    border-color: black transparent; 
 
    border-style: solid; 
 
}
I want: 
 
<table> 
 
    <tr> 
 
    <th> black-bordered </th> 
 
    <th> row </th> 
 
    <th> separated </th> 
 
    <th> with </th> 
 
    <th> reds </th> 
 
    </tr> 
 
    <tr> 
 
    <td> everything </td> 
 
    <td> below </td> 
 
    <td> it </td> 
 
    <td> simply </td> 
 
    <td> grey </td> 
 
    </tr> 
 
</table>

+0

また、見出しの最終行を黒くしたい場合はどうすればいいですか?私はすぐに ':before'sと':after'sを使い果たしてしまうだろうと思っているので、これを求めています。 – kub1x

+0

は、tdの2行目の 'border-top'を削除します。 – pol

+0

質問にCSSルールを追加しました。あなたの例を調整してください。他のコーナーもソートする必要があり、場合によっては3つのものがあります。また、このような単純な事のために、これは本当にハッピーな気分になります。... – kub1x

関連する問題