対処すべき問題がいくつかあります。
1
HTML タグを正しく使用していません。
<div class="classB">
<table>
<thead>
<th>Text</th><th>More text</th>
</thead>
</table>
</div>
次のようにする必要があります。
<div class="classB">
<table>
<thead>
<tr><th>Text</th><th>More text</th></tr>
</thead>
</table>
</div>
2
「border」でタイプミスした「border」:
div.classA table, th, td { borders:none }
次のようにする必要があります。
div.classA table, th, td { border:none }
3
宣言を分割するためにコンマを使用しているため、ボーダーはtd
要素に設定され、クラスによって両方がその要素を個別にターゲットにします。
さらに、スコープを調整する必要があります。
div.classA table, th, td { border:none }
div.classB table, th, td { border:1px solid grey }
次のようにする必要があります。
div.classA table th, div.classA table td { border:none }
div.classB table th, div.classB table td { border:1px solid grey }
すべてを適切に機能させるには、次を使用する必要があります。
この実用的なフィドルの例を見てください!
HTML
<div class="classA">
<table>
<thead>
<tr><th>Text</th><th>More text</th></tr>
</thead>
</table>
</div>
<br>
<br>
<div class="classB">
<table>
<thead>
<tr><th>Text</th><th>More text</th></tr>
</thead>
</table>
</div>
CSS
div.classA table th, div.classA table td { border:none }
div.classB table th, div.classB table td { border:1px solid grey }