tablas tabla sirve que para imagenes formato etiqueta ejemplos diseƱo con avanzado css css-tables col

css - sirve - tablas en html5



Formato de columna de tabla (6)

Estoy tratando de formatear una columna en una <table/> usando un elemento <col/> . Puedo establecer background-color , el width , etc., pero no puedo establecer el font-weight la font-weight . ¿Por qué no funciona?

<table> <col style="font-weight:bold; background-color:#CCC;"> <col> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr> </table>


¿Has intentado aplicar el estilo a través de una clase de CSS?

Lo siguiente parece funcionar:

<style type="text/css"> .xx { background: yellow; color: red; font-weight: bold; padding: 0 30px; text-align: right; } <table border="1"> <col width="150" /> <col width="50" class="xx" /> <col width="80" /> <thead> <tr> <th>1</th> <th>2</th> <th>3</th> <th>4</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> </tbody> </table>

Referencia para el elemento col


Por lo que yo sé, solo puedes formatear lo siguiente usando CSS en el elemento <col> :

  • color de fondo
  • frontera
  • anchura
  • visibilidad

Esta página tiene más información.

Herb tiene razón, es mejor darle estilo a los <td> directamente. Lo que hago es lo siguiente:

<style type="text/css"> #mytable tr > td:first-child { color: red;} /* first column */ #mytable tr > td:first-child + td { color: green;} /* second column */ #mytable tr > td:first-child + td + td { color: blue;} /* third column */ </style> </head> <body> <table id="mytable"> <tr> <td>text 1</td> <td>text 2</td> <td>text 3</td> </tr> <tr> <td>text 4</td> <td>text 5</td> <td>text 6</td> </tr> </table>

Sin embargo, esto no funcionará en IE.


Una etiqueta col debe estar dentro de una etiqueta colgroup . Esto puede tener algo que ver con el problema.


Leí esto mientras intentaba diseñar una tabla de modo que la primera columna fuera en negrita y las otras cuatro columnas fueran texto normal. Usar la etiqueta col parecía ser el camino a seguir, pero si bien podía establecer el ancho de las columnas con el atributo de ancho, el font-weight: bold no funcionaría. Gracias por señalarme en la dirección de la solución. Diseñando todos los elementos td {font-weight: bold;} y luego usando un selector de hermanos adyacente para seleccionar las columnas 2-5 y redélalos a la td + td {font-weight: normal;} normal td + td {font-weight: normal;} Voila, todo bien: )


Su mejor opción es aplicar su estilo directamente a las etiquetas <td> . Nunca utilicé la etiqueta <col> , pero la mayoría de los navegadores te permiten aplicar el formato en el nivel <table> y <td> / <th> , pero no en un nivel intermedio. Por ejemplo, si tiene

<table> <tr class="Highlight"> <td>One</td> <td>Two</td> </tr> <tr> <td>A</td> <td>B</td> </tr> </table>

entonces este CSS no funcionará

tr.Highlight { background:yellow }

pero esto será

tr.Highlight td { background:yellow }

Además: supongo que su código anterior es solo para fines de demostración y en realidad no va a aplicar estilos en línea.


Es posible que haya necesitado esto:

tr td:first-child label { font-weight: bold; }