HTML テーブルと CSS のみを使用してトーナメント ブラケットを表示する方法はありますか?
これが私が達成したいことです:
要素を要素内にラップすることができ、ネストされたposition: relative;
div
ものを使用できますposition: absolute;
div
これは明らかに面倒なプロセスですが、クラスを使用して特定のポイントを追跡できますが、これは純粋な CSS で実現できる最善の方法です。
最後dashed
div
に、次のスニペットを使用してその効果を達成できます
.last {
border: 1px dashed #000;
border-top: 1px solid #000;
border-left: 0;
/* Top Left for positioning */
}
最後にtable
なりましたが、これは良いことではありません
https://stackoverflow.com/a/262584/1592764をご覧ください。jsfiddle と一緒にテーブルベースのブラケットのマークアップがあります。
HTMLは次のとおりです。
<table summary="Tournament Bracket" class="bracket">
<tr>
<th>National Semi-Finals<br>Saturday November 8th</th>
<th>National Championship<br>Sunday November 9th</th>
<th>NJCAA National Champion</th>
</tr>
<tr>
<td><p>#1 Manchester CC (17-2-1)</p></td>
<td rowspan="2"><p></p></td>
<td rowspan="4"><p></p></td>
</tr>
<tr>
<td><p>#4 Triton College (13-4-0)</p></td>
</tr>
<tr>
<td><p>#2 Herkimer County CC (18-3-0)</p></td>
<td rowspan="2"><p></p></td>
</tr>
<tr>
<td><p>#3 County College of Morris (17-3-0)</p></td>
</tr>
</table>
そしてCSS:
table.bracket {
border-collapse: collapse;
border: none;
}
.bracket td {
vertical-align: middle;
width: 40em;
margin: 0;
padding: 10px 0px 10px 0px;
}
.bracket td p {
border-bottom: solid 1px black;
border-top: solid 1px black;
border-right: solid 1px black;
margin: 0;
padding: 5px 5px 5px 5px;
}
.bracket th{
text-align:center;
}
編集:上記の CSS を変更して、目的の外観に近づけます。ここにjsfiddleがあります - http://jsfiddle.net/4KZ6T/236/
上(勝者ブラケット)から下(ダブルエリミネーション...)まで数えて10列と30行のテーブルが表示されます
この形式でテーブルを作成しますが、ページのパディングとマージンを次のようにリセットしてください。 * {padding: 0; マージン: 0 自動;}
次のステップは、テーブルを div に配置し、#tableBody に ID を付けてから、Elem1 などを使用してテーブルの作業を開始することです...30 行と 10 列に達するまで