
简单解释下,鼠标移动到td,想让当前行出现高亮背景很简单,直接给tr:hover就可以了,但是,如果想让列出现,比较麻烦,我们可以借助after的伪类来实现,就是当td:hover的时候,用:after,给他加个很高的容器,相对于td定位,只要定位了,想让这个容器往哪就往哪,注意看css代码的最后一句话,就明白了。
由此延伸,我们可以用:before和:after做出很多效果。点击“玻璃木纹效果个人博客响应式模板”,这个模板的玻璃纹理,就是用before和after加上去的。
css代码:
table{overflow:hidden; font-size:14px; font-family:Arial;}
td, th {padding:20px; position:relative; outline:0;}
tr:hover{background:#ffa;}
td:hover::after,th:hover::after{content: ''; height: 10000px; left: 0; position: absolute; top: -5000px; width: 100%; z-index: -1; display:block; background-color: #ffa;}
html代码:
<table>
<thead>
<tr>
<th></th>
<th class="col">50kg</th>
<th class="col">55kg</th>
<th class="col">60kg</th>
<th class="col">65kg</th>
<th class="col">70kg</th>
</tr>
</thead>
<tbody>
<tr>
<th class="row">160cm</th>
<td>20</td>
<td>21</td>
<td>23</td>
<td>25</td>
<td>27</td>
</tr>
<tr>
<th class="row">165cm</th>
<td>18</td>
<td>20</td>
<td>22</td>
<td>24</td>
<td>26</td>
</tr>
<tr>
<th class="row">170cm</th>
<td>17</td>
<td>19</td>
<td>21</td>
<td>23</td>
<td>25</td>
</tr>
<tr>
<th class="row">175cm</th>
<td>16</td>
<td>18</td>
<td>20</td>
<td>22</td>
<td>24</td>
</tr>
</tbody>
</table>
