Вы не определяете их правильно.См. fork или фрагмент:
tr td{
width:100px;
height: 100px;
}
tr td{
border-right: 5px solid black;
border-bottom: 5px solid black;
}
tr td:last-child{
border-right:0;
}
tr:last-child td{
border-bottom:0;
}
body{
text-align: center;
}
table{
margin: auto;
}
<h1>Tic Tac Toe</h1>
<table>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
Логика: Установить все tr td
с правой и нижней границей, кроме последней.
tr td{
border-right: 5px solid black;
border-bottom: 5px solid black;
}
tr td:last-child{
border-right:0;
}
tr:last-child td{
border-bottom:0;
}