• # CSS

    Posté par . En réponse au message hover sur tableau. Évalué à 2.

    Note : je sais que l'idéal serait de se débarasser du tableau, c'est prévu pour un peu plus tard mais la modif serait un peu grosse en 1 fois.

    Cela dépend : Si ce que tu affiches avec tes TABLE/TD/TR est vraiment une table, ou à la rigueur une liste, l'emploi de ces balises est tout à fait justifié. Il faut considérer le HTML/CSS au même titre que le SGML. Les balises décrivent la nature de ce qu'elles contiennent.

    Si ton idée est de faire la même chose que le webmail, par exemple, TABLE et ses dérivés sont ce qu'il faut utiliser.

    La vraie question est : Quel navigateur utilises-tu ? Le problème des CSS est vraiment une plaie : Malgré le fait que ces spécifications soient parus au 20ème siècle, il n'y a toujours pas un navigateur qui les implémente parfaitement et dans leur intégralité.

    Pour le TR/TD, j'ai déjà eu le même problème. A mon avis, cela vient du fait qu'un TR contient un TD, et que ce dernier intercepte l'événement avant le TR, puisqu'il il le superpose. Il se peut aussi que ta cellule TD n'ait pas un fond transparent, ce qui masque l'apparence de la ligne TR qui la contient, et donc l'apparence de celle-ci. Essaie déjà d'agir à ce niveau, mais bizarrement, "transparent" n'est pas reconnu par le validateur CSS W3C (il me semble pourtant qu'il est dans les spécifications CSS, au moins la deuxième).

    Sinon, je n'ai pas essayé, mais plutôt que de redéfinir TR, tu pourrais essayer d'encadrer toute la ligne TR-TD-/TD-/TR dans un DIV qui lui serait redéfini au niveau de la CSS pour agir ainsi. Exemple :

    <style type="text/css">
    div.highlight:hover tr { background-color: #ffffff}
    div.highlight tr { background-color: #808080 }
    </style>

    <table>
    <div class="highlight">
    <tr>
    <td>Un</td>
    <td>Deux</td>
    <td>Trois</td>
    </tr>
    </div>
    <div class="hightlight">
    ...
    </div>
    </table>

    Bon, c'est pas très beau, c'est de l'abus d'usage de DIVs, et je ne suis pas sûr que cela marche, et encore moins que le validateur W3C te laisse définir une section en plein milieu d'une table mais en dehors d'une cellule, mais au moins cela permet d'éviter complètement l'usage de scripts runtime et conserve la philosophie descriptive du document.

    Bon courage.