SitePoint prime
Si vous avez eu l'expérience des mises en construction à l'aide de tables HTML, vous familiariser avec l'utilisation des attributs colspan et rowspan de l'élément td. Ces attributs offrent des possibilités complexes à une simple table, ce qui permet aux cellules de couvrir des colonnes et des lignes.
tables CSS manquent de concept de ligne ou une colonne Spanning, ce qui rend plus délicate à utiliser une structure de mise en page simple que ce qui aurait pu être possible lors de l'utilisation des tableaux HTML. Cependant, mises en page similaires peuvent être obtenus en utilisant des tables imbriquées CSS.
Le nav. contenu. et les éléments de figurants deviennent des cellules dans la table externe; les éléments div avec la ligne de classe deviennent les lignes de la table interne dans la colonne du milieu. Le résultat est représenté dans la figure 3.6.

Figure 3.6. Nichés tables CSS
Il est également possible de simuler ligne et colonne couvrant en utilisant le positionnement absolu des cellules de table dans de nombreux cas. Dans cet exemple, nous allons faire la deuxième cellule de la première rangée d'une table réalisée sur les deux lignes de la table (comme si elle avait un rowspan de 2). Tout d'abord, nous allons jeter un oeil sur le code HTML:
Vous remarquerez que nous avons présentée notre table div dans un div supplémentaire avec une classe de tablewrapper. Cette div supplémentaire est nécessaire pour fournir un contexte de positionnement qui CSS, nous créons en lui donnant un positionnement relatif:
Selon la spécification CSS, nous devrions être en mesure d'appliquer simplement le positionnement par rapport à la div table. mais les navigateurs actuels ne semblent pas soutenir cela.
Maintenant, nous pouvons utiliser le positionnement absolu pour contrôler la taille et la position de la div avec la cellule de classe rowspanned:
Avec les propriétés à la fois supérieure et inférieure fixées à zéro, la cellule va étirer pour remplir toute la hauteur de la table, simulant une largeur de ligne. En fonction des besoins de votre mise en page, vous pouvez utiliser des valeurs différentes pour en haut et en bas. ou même définir la hauteur de la cellule directement pour obtenir d'autres mises en ligne enjambant.
Vous devez également spécifier la largeur de la cellule. Habituellement, la meilleure façon de le faire est juste pour définir sa propriété largeur, mais en fonction de ce que vous savez des dimensions des cellules de table autour, vous pouvez aussi le faire en mettant à gauche et à droite.
Etant donné que la cellule positionnée ne couvre pas en fait plusieurs lignes de la table, la table doit toujours contenir une cellule correspondante dans chacune des autres lignes. Ces cellules sont simplement vides des espaces réservés, bien; notez la div avec la cellule de classe vide dans le code HTML ci-dessus. La fonction de cette cellule est de maintenir ouverte l'espace qui sera occupé par la cellule « fractionnés », nous devons donc assurer sa largeur correspond à la largeur que nous avons spécifié pour la cellule rowspanned:
Et c'est tout ce qu'il ya à faire! Pour compléter la feuille de style pour cet exemple, il suffit de définir les valeurs de propriétés d'affichage appropriées et ajouter des bordures afin que nous puissions voir ce qui se passe:
En substance, en utilisant le positionnement absolu, nous disons le navigateur, « Laisse-moi la mise en page de cette cellule-vous déposerez prendre soin du reste. » Les résultats sont visibles à la figure 3.7.
