Col, colgroups et la pseudoclasse CSS "hover" peuvent-ils être utilisés pour plus qu'une simple cellule ?
Pour mettre en évidence les lignes du tableau et colonnes au survol de la souris, des pseudo-classes CSS comme ":hover" peuvent être utilisées. Mais que se passe-t-il si vous souhaitez mettre en évidence non seulement une seule cellule, mais une ligne ou une colonne entière, y compris les en-têtes ?
Une solution CSS pure peut y parvenir en utilisant les pseudo-éléments ::before et ::after. Ces éléments ajoutent du contenu avant et après l'élément sélectionné, respectivement. Voici comment procéder :
Créer des éléments de surbrillance :
Masquer le débordement de surbrillance :
Ajouter des sélecteurs de ligne/colonne :
Le code CSS ci-dessous implémente ces principes :
table { overflow: hidden; } td, th, .row, .col { cursor: pointer; padding: 10px; position: relative; } td:hover::before, .row:hover::before { background-color: #FFA; content: '<pre class="brush:php;toolbar:false"><table> <tr> <th></th><th>50kg</th><th>55kg</th><th>60kg</th><th>65kg</th><th>70kg</th> </tr> <tr class="row"> <th class="row">160cm</th><td>20</td><td>21</td><td>23</td><td>25</td><td>27</td> </tr> <tr class="row"> <th class="row">165cm</th><td>18</td><td>20</td><td>22</td><td>24</td><td>26</td> </tr> </table>
Le HTML reste en grande partie inchangé, mais inclut des noms de classe pour les lignes et les colonnes :
Cette solution fonctionne dans les navigateurs modernes, étendant l'effet de surbrillance sur des lignes et des colonnes entières avec élégance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!