<table class="ta01">
  <thead>
    <tr>
      <th></th>
      <th>A</th>
      <th>B</th>
      <th>C</th>
      <th>D</th>
      <th>E</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>A1</td>
      <td>B1</td>
      <td>C1</td>
      <td>D1</td>
      <td>E1</td>
    </tr>
    ・・・中略・・・
  </tbody>
</table>
サンプル01は、tr要素のhoverでスタイルを指定しています。カーソルをtable(tbody部分)の上で動かすと、行ごとにハイライト(色はskyblue)します。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 | 
| 2 | A2 | B2 | C2 | D2 | E2 | 
| 3 | A3 | B3 | C3 | D3 | E3 | 
| 4 | A4 | B4 | C4 | D4 | E4 | 
| 5 | A5 | B5 | C5 | D5 | E5 | 
table.ta01 tbody tr:hover {
  	background: skyblue; 
	}
サンプル02は、サンプル01と同様ですが、左端の行のth要素のみをハイライト(色はorange)します。tr要素のhover時に、tr要素の子要素のth要素のみにスタイルを指定しています。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 | 
| 2 | A2 | B2 | C2 | D2 | E2 | 
| 3 | A3 | B3 | C3 | D3 | E3 | 
| 4 | A4 | B4 | C4 | D4 | E4 | 
| 5 | A5 | B5 | C5 | D5 | E5 | 
table.ta02 tbody > tr:hover > th {
  	background: orange;
	}
  
  サンプル03も、サンプル01と同様ですが、サンプル02と同じ手法で、tr要素のhover時に、tr要素の子要素のth要素の背景色をthistleに、また同じ子要素のtd要素の背景色をaquamarineにしてハイライトのスタイルを指定しています。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 | 
| 2 | A2 | B2 | C2 | D2 | E2 | 
| 3 | A3 | B3 | C3 | D3 | E3 | 
| 4 | A4 | B4 | C4 | D4 | E4 | 
| 5 | A5 | B5 | C5 | D5 | E5 | 
table.ta03 tbody > tr:hover > th {
  	background: thistle; 
	}
table.ta03 tbody tr:hover > td {
  	background: aquamarine; 
	}
  
  サンプル04は、:not疑似クラスと:first-child疑似クラス、last-child疑似クラスを組み合わせて、tbody要素のhover時に、子要素であるtr要素のうち、最初の子要素と最後の子要素を除いたすべてのtr要素(2行目から4行目まで)の子要素のtd要素の背景色をlightblueにしてハイライトしています。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 | 
| 2 | A2 | B2 | C2 | D2 | E2 | 
| 3 | A3 | B3 | C3 | D3 | E3 | 
| 4 | A4 | B4 | C4 | D4 | E4 | 
| 5 | A5 | B5 | C5 | D5 | E5 | 
table.ta04 tbody:hover > tr:not(:first-child):not(:last-child) > td {
  	background: lightblue; 
	}
  
  サンプル05は、table内のtd要素のうち、いくつかが空になっています。tbodyのhover時に、tbody要素の孫要素であるtd要素のうち空でないものを、:not疑似クラスと:empty疑似クラスを使ってハイライト(背景色はpink)します。A5は見た目は空ですが、空白が入っているため、空でないと判定されハイライトされます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | D1 | E1 | |
| 2 | A2 | B2 | C2 | D2 | E2 | 
| 3 | A3 | C3 | D3 | ||
| 4 | A4 | B4 | C4 | E4 | |
| 5 | B5 | C5 | D5 | E5 | 
table.ta05 tbody:hover > tr > td:not(:empty) {
  	background: pink; 
	}
  
  
  
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 | 
| 2 | A2 | B2 | C2 | D2 | E2 | 
| 3 | A3 | B3 | C3 | D3 | E3 | 
| 4 | A4 | B4 | C4 | D4 | E4 | 
| 5 | A5 | B5 | C5 | D5 | E5 | 
table.ta06 tbody:hover > tr > td[class]  {
  	background: greenyellow; 
	}
  
  サンプル07は、サンプル06と同じくtbodyのhover時にclass属性を持つtd要素をgreenyellowでハイライトしますが、さらにそのtd要素のうち、classの名前が空になっているものすべてをpinkでハイライトします。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 | 
| 2 | A2 | B2 | C2 | D2 | E2 | 
| 3 | A3 | B3 | C3 | D3 | E3 | 
| 4 | A4 | B4 | C4 | D4 | E4 | 
| 5 | A5 | B5 | C5 | D5 | E5 | 
table.ta07 tbody:hover > tr > td[class]  {
  	background: greenyellow; 
	}
table.ta07 tbody:hover > tr > td[class='']  {
  	background: pink; 
	}