Tableau html responsive

poupilou

WRInaute impliqué
Salut à tous,

J'ai pas mal de tableaux html sur mon site, dont certains ont une dizaine de colonnes, et je suis entrain de voir la meilleure solution pour que ces tableaux html soient responsive.

J'ai vu cette solution avec des <div> avec overflow-x:auto mais je me demandais si les utilisateurs de smartphones et tablettes pensent à utiliser les barres de défilement horizontales pour visualiser les parties du tableau html qui ne sont pas visibles ?

Sinon, quelles autres solutions me conseillez-vous pour rendre mes tableaux html responsive ?

Merci pour vos réponses.
 

poupilou

WRInaute impliqué
Merci spout, je vais regarder ces 3 techniques.

Pour infos, j'ai regardé l'un de mes principaux concurrents et ils utilisent la technique de la <div> avec overflow-x:auto
 

poupilou

WRInaute impliqué
C'est vrai que la technique du DataTables est alêchante :D mais cela fait inclure dans le code html 4 fichiers supplémentaires (2 css + 2 JavaScripts)... contre une simple <div style="overflow-x:auto;"></div> avec la méthode w3schools.com, j'hésite...

D'autant plus que je souhaite pouvoir cliquer sur les lignes de mon tableau html afin d'ouvrir sous cette ligne une <div> (ou une autre ligne <tr> qui était en display:none) dans laquelle s'affichera le détail des infos de ce produit.... est-ce réalisable via DataTables ?
 

poupilou

WRInaute impliqué
Merci spout, je vais opter pour la méthode de la <div style="overflow-x:auto;"></div>.

Je voudrais lorsqu'on clique sur une ligne de mon tableau html qu'une nouvelle ligne s'affiche en dessous, j'ai trouvé le code javascript ci-dessous qui fonctionne parfaitement bien :
Code:
function toggleSibling(sibling){
    sibling = sibling.nextSibling;
    while(!/tr/i.test(sibling.nodeName)){
      sibling = sibling.nextSibling;
    }
    sibling.style.display = sibling.style.display == 'table-row' ? 'none' : 'table-row';
}
On ajoute dans le code html du tableau cette nouvelle ligne ci-dessous en "display:none" grace à la class css "extra-line-table" :
Code:
    <tr class="extra-line-table">
        <td colspan="12">Infos sur le produit</td>
    </tr>
Je voudrais afficher à gauche de chaque ligne de mon tableau une image "+" et "-" qui se trouverai dans la première cellule <td></td> de mon tableau.

L'image "+" est affichée au chargement du tableau et lorsque l'utilisateur clique sur une ligne le "+" se change en "-" et vice et versa, comment faire ces 2 actions en même temps : ouverture de la nouvelle ligne <tr class="extra-line-table"> + changement de l'image "+" par l'image "-" sur onclick de la ligne <tr> du produit ?
 

gotgot

WRInaute discret
suffit de mettre ton code dans la même fonction qui appelle le onclick, ou d'appeler une deuxième fonction dans celle du onclick
 

Discussions similaires

Haut