Question

J'ai une table dans ma page, j'utilise colgroups pour formater toutes les cellules dans cette colonne de la même façon, fonctionne bien pour la couleur de fond et tout. mais il ne peut pas à comprendre pourquoi le centre text-align ne fonctionne pas. il ne correspond pas au texte centré.

exemple:

<table id="myTable" cellspacing="5">
    <colgroup id="names"></colgroup>
    <colgroup id="col20" class="datacol"></colgroup>
    <colgroup id="col19" class="datacol"></colgroup>
    <colgroup id="col18" class="datacol"></colgroup>

    <thead>
        <th>&nbsp;</th>
        <th>20</th>
        <th>19</th>
        <th>18</th>
    </thead>
    <tbody>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
    </tbody>
</table>

CSS:

#names {
    width: 200px;
}

#myTable .datacol {
    text-align: center;
    background-color: red;
}
Était-ce utile?

La solution

un ensemble limité de propriétés CSS applique aux colonnes et text-align n'est pas un d'entre eux.

Voir « Le mystère de la raison pour laquelle seulement quatre propriétés applicables aux colonnes de table » une description des raisons pour lesquelles cela est le cas.

Dans votre exemple simple, la meilleure façon de le fixer serait d'ajouter ces règles:

#myTable tbody td { text-align: center }
#myTable tbody td:first-child { text-align: left }

Ce centrerait toutes les cellules de table, à l'exception de la première colonne. Cela ne fonctionne pas dans IE6, mais dans IE6 la text-align fait en fait (à tort) le travail sur la colonne. Je ne sais pas si IE6 prend en charge toutes les propriétés, ou tout simplement un sous-ensemble plus grand.

Oh, et votre code HTML est invalide. <thead> manque un <tr>.

Autres conseils

En plus des limitations mentionnées dans d'autres réponses, à partir de Février 2018, la visibilité: l'effondrement ne fonctionne toujours pas sur colgroups dans les navigateurs basés sur Chrome et Chrome, en raison d'un bogue. Voir « CSS visibilité col: l'effondrement ne fonctionne pas sur Chrome ». Je crois les propriétés actuellement utilisables sont juste frontière, arrière-plan, la largeur (à moins que vous employez une sorte de polyfill pour Chrome et d'autres navigateurs à base de chrome). Le bug peut être suivi à https://crbug.com/174167 .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top