datos-tabulados.rst 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489
  1. .. 4.9
  2. ===============
  3. Datos Tabulados
  4. ===============
  5. El elemento ``table``
  6. =====================
  7. Representa datos con más de una dimensión, en forma de tabla.
  8. Las tablas pueden contener los siguientes elementos:
  9. - Opcionalmente puede tener un elemento ``<caption>``,
  10. - seguido por cero o más elementos ``<colgroup>``,
  11. - alternativamente puede tener un elemento ``<thead>``,
  12. - continuado por cero o más elementos ``<tbody>``
  13. - o uno o más elementos ``<tr>``,
  14. - opcionalmente también puede poseer un elemento ``<tfoot>``.
  15. El elemento ``<table>`` posee el atributo ``border``, el cual permite darle un
  16. grosor determinado en pixeles que el cual puede ser una cadena vacia o un valor númerico.
  17. Por ejemplo, ``border="1"``.
  18. Si se va a utilizar una tabla para diseño, el debe utilizarse el atributo ``role``
  19. con el valor presentation (``role = 'presentation'``). Así, se comunica al
  20. navegador que la tabla se utiliza con fines de diseño.
  21. Sin embargo, no se deben usar tablas como ayuda para el diseño.
  22. Técnicas para describir tablas
  23. ==============================
  24. Es recomendable en las tablas poner una descripción que explique la forma la cual
  25. se presenta los datos de la tabla en cuestion, algo como
  26. 'Las características son mostradas en la segunda columna, con el lado negativo en la
  27. columna izquierda y el lado positivo en la columna derecha'. Esta descripción,
  28. acompañada por el atributo ``aria-describedby`` hace posible que personas
  29. invidentes puedan conocer los datos que componen la tabla mediante sistemas
  30. de lectura asistida.
  31. .. code-block:: html
  32. <p id="summary">En el siguiente ejemplo, las caracteristicas son
  33. mostradas en la segunda columna, con el lado negativo
  34. a la izquierda de dicha columna
  35. y el lado positivo a la derecha de dicha columna.</p>
  36. <table aria-describedby="summary">
  37. <caption>Características con lados positivos y negativos</caption>
  38. <thead>
  39. <tr>
  40. <th id="n"> Negativo
  41. <th> Características
  42. <th> Positiva
  43. <tbody>
  44. <tr>
  45. <td headers="n r1"> Triste
  46. <th id="r1"> Humor
  47. <td> Feliz
  48. <tr>
  49. <td headers="n r2"> Debil
  50. <th id="r2"> Grado
  51. <td> Pasajero
  52. </table>
  53. En el ejemplo de arriba el atributo ``aria-describedby`` es usado para las
  54. tecnologías de asistencia para personas invidentes.
  55. A continuación, se muestra el mismo ejemplo con el elemento ``<figure>``.
  56. .. code-block:: html
  57. <figure aria-labelledby="caption">
  58. <p>Las características se dan en la segunda columna,
  59. con el lado negativo en la columna izquierda y el
  60. lado positivo en la columna derecha.</p>
  61. <table>
  62. <caption id="caption">Características con lados positivos y negativos</caption>
  63. <thead>
  64. <tr>
  65. <th id="n"> Negativo
  66. <th> Características
  67. <th> Positiva
  68. <tbody>
  69. <tr>
  70. <td headers="n r1"> Triste
  71. <th id="r1"> Humor
  72. <td> Feliz
  73. <tr>
  74. <td headers="n r2"> Debil
  75. <th id="r2"> Grado
  76. <td> Pasajero
  77. </table>
  78. </figure>
  79. El elemento ``<figure>`` en este ejemplo ha sido etiquetado por el subtítulo de la ``<table>``
  80. usando el atributo ``aria-labelledby.``
  81. El elemento ``caption``
  82. =======================
  83. Representa el título del elemento ``<table>`` que sera su padre más directo.
  84. El elemento ``<caption>`` puede introducir el contexto de una tabla, haciéndola
  85. más fácil de comprender.
  86. Consideremos el siguiente ejemplo sin la etiqueta ``<caption>``.
  87. .. code-block:: html
  88. <table>
  89. <thead>
  90. <tr>
  91. <th>1</th>
  92. <th>2</th>
  93. <th>3</th>
  94. <th>4</th>
  95. <th>5</th>
  96. <th>6</th>
  97. </tr>
  98. </thead>
  99. <tbody>
  100. <tr>
  101. <td>5</td>
  102. <td>7</td>
  103. <td>4</td>
  104. <td>5</td>
  105. <td>2</td>
  106. <td>4</td>
  107. </tr>
  108. </tbody>
  109. </table>
  110. Una tabla con este formato no es nada intutitiva; es por ello que el elemento
  111. ``<caption>`` ayuda a un mayor entendimiento de los datos que se muestran en
  112. la tabla. Veamos el mismo ejemplo con la etiqueta ``<caption>``.
  113. .. code-block:: html
  114. <table>
  115. <caption>
  116. <p>Table 1.</p>
  117. <p>Esta tabla muestra los resultados de lanzar un dado con seis caras</p>
  118. <p>Cada encabezado representa una cara del dado, debajo se muestra
  119. el número de veces que ha salido ese resultado</p>
  120. </caption>
  121. <thead>
  122. <tr>
  123. <th>1</th>
  124. <th>2</th>
  125. <th>3</th>
  126. <th>4</th>
  127. <th>5</th>
  128. <th>6</th>
  129. </tr>
  130. </thead>
  131. <tbody>
  132. <tr>
  133. <td>5</td>
  134. <td>7</td>
  135. <td>4</td>
  136. <td>5</td>
  137. <td>2</td>
  138. <td>4</td>
  139. </tr>
  140. </tbody>
  141. </table>
  142. El elemento ``colgroup``
  143. ========================
  144. Define un grupo de una o más columnas de una tabla.
  145. Contiene el atributo ``span`` que representa el número de columnas que abarca el elemento
  146. Se utiliza como hijo de un elemento de ``<table>``, después de cualquier elemento del subtítulo y antes de los siguientes elementos: ``<thead>``, ``<tbody>``,
  147. ``<tfoot>`` y ``<tr>``.
  148. .. code-block:: html
  149. <table>
  150. <colgroup>
  151. <col span="2" style="background-color:red">
  152. <col style="background-color:yellow">
  153. </colgroup>
  154. <tr>
  155. <th>ISBN</th>
  156. <th>Titulo</th>
  157. <th>Precio</th>
  158. </tr>
  159. <tr>
  160. <td>3476896</td>
  161. <td>El señor de los anillos</td>
  162. <td>30€</td>
  163. </tr>
  164. <tr>
  165. <td>5869207</td>
  166. <td>1984</td>
  167. <td>10€</td>
  168. </tr>
  169. </table>
  170. El elemento ``col``
  171. ===================
  172. Permite especificar propiedades para una columna o un grupo de ellas.
  173. Este elemento se puede utilizar como hijo de un elemento ``<colgroup>`` que
  174. no tiene un atributo ``span``.
  175. Si un elemento ``<col>`` tiene un elemento padre ``<table>`` y un elemento ``<colgroup>``,
  176. entonces el elemento ``<col>`` representa una o más columnas en el grupo de columnas
  177. representado por ese ``<colgroup>``.
  178. En el siguiente ejemplo definimos un grupo de columnas con ``<colgroupd>`` en
  179. una tabla con cinco encabezados. El primer atributo ``<col>`` establece un
  180. color de fondo de color rojo para la primera columna; el segundo utiliza
  181. para el color de fondo el verde para las siguientes tres columnas (``span="3"``);
  182. y el último utiliza el color naranja para la última columna.
  183. .. code-block:: html
  184. <table border="1">
  185. <colgroup>
  186. <col style="background:red;">
  187. <col span="3" style="background:green;">
  188. <col style="background:orange;">
  189. </colgroup>
  190. <tr>
  191. <th>Encabezado 1</th>
  192. <th>Encabezado 2</th>
  193. <th>Encabezado 3</th>
  194. <th>Encabezado 4</th>
  195. <th>Encabezado 5</th>
  196. </tr>
  197. <tr>
  198. <td>Celda</td>
  199. <td>Celda</td>
  200. <td>Celda</td>
  201. <td>Celda</td>
  202. <td>Celda</td>
  203. </tr>
  204. <tr>
  205. <td>Celda</td>
  206. <td>Celda</td>
  207. <td>Celda</td>
  208. <td>Celda</td>
  209. <td>Celda</td>
  210. </tr>
  211. </table>
  212. El elemento ``tbody``
  213. =====================
  214. Define un bloque de filas que consiste en un cuerpo
  215. de datos de una tabla.
  216. Este elemento se utiliza como hijo de un elemento de ``<table>``, después de
  217. cualquier elemento ``<caption>``, ``<colgroup>`` y ``<thead>``, pero sólo si
  218. no hay elementos ``<tr>`` que sean hijos del elemento de ``<table>``.
  219. .. code-block:: html
  220. <table border="1">
  221. <thead>
  222. <tr> <td colspan="2">Cabecera de la tabla (thead)</td></tr>
  223. </thead>
  224. <tbody>
  225. <tr>
  226. <td>Celda 1 - parte de tbody</td>
  227. <td>Celda 2 - parte de tbody</td>
  228. </tr>
  229. <tr>
  230. <td>Celda 3 - parte de tbody</td>
  231. <td>Celda 4 - parte de tbody</td>
  232. </tr>
  233. <tr>
  234. <td>Celda 5 - parte de tbody</td>
  235. <td>Celda 6 - parte de tbody</td>
  236. </tr>
  237. </tbody>
  238. <tfoot>
  239. <tr> <td colspan="2">Pie de la tabla (tfoot)</td></tr>
  240. </tfoot>
  241. </table>
  242. El elemento ``thead``
  243. =====================
  244. Representa el bloque de filas que consiste en las títulos de las columnas de
  245. una tabla.
  246. Se puede utilizar como hijo de un elemento de ``<table>``, después de cualquier ``<caption>``,
  247. y elementos de ``<colgroup>`` y antes de cualquier elemento ``<tbody>``, ``<tfoot>``
  248. y ``<tr>``, pero sólo si no hay otros elementos ``<thead>`` que sean hijos del
  249. elemento ``<table>``.
  250. A continuación, se muestra un ejemplo.
  251. .. code-block:: html
  252. <table>
  253. <caption>Hoja de subasta</caption>
  254. <thead>
  255. <tr>
  256. <th><label for=e1>Nombre</label>
  257. <th><label for=e2>Producto</label>
  258. <th><label for=e3>Fotografia</label>
  259. <th><label for=e4>Precio</label>
  260. <tr>
  261. <td>Tú nombre
  262. <td>¿Qué vas a vender?
  263. <td>Enlace a la fotografía.
  264. <td>El precio.
  265. <tbody>
  266. <tr>
  267. <td>Pepe
  268. <td>Galletas
  269. <td><img src="https://example.com/galletas.png" title="Las galletas de Pepe">
  270. <td>0.40€
  271. <tr>
  272. <td><input id=e1 type=text name=quien required form=f>
  273. <td><input id=e2 type=text name=que required form=f>
  274. <td><input id=e3 type=url name=foto form=f>
  275. <td><input id=e4 type=number step=0.01 min=0 value=0 required form=f>
  276. </table>
  277. <form id=f action="/subasta.cgi">
  278. <input type=button name=add value="submit">
  279. </form>
  280. El elemento ``tfoot``
  281. =====================
  282. Representa el bloque de filas que consiste en los
  283. resúmenes de las columnas (pie de página) de una tabla.
  284. Se puede utilizar como hijo de un elemento de ``<table>``, después de cualquier elemento
  285. ``<caption>``, ``<colgroup>``, ``<thead>``, ``<tbody>`` y ``<tr>``, pero sólo si no hay otros
  286. elementos ``<tfoot>`` que sean hijos del elemento ``<table>``.
  287. .. code-block:: html
  288. <table>
  289. <thead>
  290. <tr> <td colspan="2">Cabecera (thead)</td></tr>
  291. </thead>
  292. <tbody>
  293. <tr>
  294. <td>Celda 1 - parte tbody</td>
  295. <td>Celda 2 - parte tbody</td>
  296. </tr>
  297. <tr>
  298. <td>Celda 3 - parte tbody</td>
  299. <td>Celda 4 - parte tbody</td>
  300. </tr>
  301. <tr>
  302. <td>Celda 5 - parte tbody</td>
  303. <td>Celda 6 - parte tbody</td>
  304. </tr>
  305. </tbody>
  306. <tfoot>
  307. <tr> <td colspan="2">Pie (tfoot)</td></tr>
  308. </tfoot>
  309. </table>
  310. El elemento ``tr``
  311. ==================
  312. Define una fila de celdas en una tabla.
  313. Se puede utilizar junto en los siguientes contextos:
  314. - Como un hijo de un elemento ``<thead>``.
  315. - Como un hijo de un elemento ``<tbody>``.
  316. - Como un hijo de un elemento ``<tfoot>``.
  317. - Como hijo de un elemento de ``<table>``, después de cualquier elemento ``<caption>``,
  318. ``<colgroup>`` y ``<thead>``, pero solo si no hay elementos ``<tbody>`` que son hijos del elemento de ``<table>``.
  319. .. code-block:: html
  320. <table border = "1">
  321. <tr>
  322. <td>Celda 1</td>
  323. <td>Celda 2</td>
  324. </tr>
  325. </table>
  326. El elemento ``th``
  327. ==================
  328. Define una celda del encabezado en una tabla.
  329. Se puede utilizar con los siguientes atributos:
  330. - ``colspan``. El número de columnas que la celda ocupa.
  331. - ``rowspan``. El número de filas que la celda ocupa.
  332. - ``headers``. Las cabeceras de la celda
  333. - ``abbr``. Título alternativo para hacer referencia a la celda desde otros contextos.
  334. - ``scope``. Especifca las celdas a las que se aplica el encabezado.
  335. Es un atributo enumerado con 5 estados, 4 de los
  336. cuales tienen palabras clave explícitas:
  337. - ``col``. Significa que la celda de cabecera se aplica a algunas de las celdas
  338. subsiguientes en el grupo de columnas.
  339. - ``colgroup``. Significa que la celda de cabecera se aplica a todas las celdas
  340. subsiguientes en el grupo de columnas.
  341. - ``row``. Significa que la celda de cabecera se aplica a algunas de las celdas
  342. subsiguientes en el grupo de filas.
  343. - ``rowgroup``. Significa que la celda de cabecera se aplica a todas las celdas
  344. subsiguientes en el grupo de filas.
  345. - ``auto``. Significa que la celda de cabecera se aplica a todas las celdas
  346. seleccionadas basadas en el contexto.
  347. .. code-block:: html
  348. <table>
  349. <caption>Medicion de patas, rabos entre gatos y dalmatas</caption>
  350. <thead>
  351. <tr><th> ID <th> Medicion <th> Media <th> Maxima.
  352. <tbody>
  353. <tr> <td> <th scope=rowgroup> Gatos <td> <td>
  354. <tr> <td> 32 <th scope=row> Piernas <td> 2.67 <td> 4.
  355. <tr> <td> 10 <th scope=row> Cola <td> 1 <td> 1.
  356. </tbody>
  357. <tbody>
  358. <tr> <td> <th scope=rowgroup> Perros <td> <td>
  359. <tr> <td> 93 <th scope=row> Patas <td> 3.5 <td> 4.
  360. <tr> <td> 35 <th scope=row> Cola <td> 0.33 <td> 1.
  361. </tbody>
  362. </table>
  363. El anterior ejemplo muestra cómo el atributo ``scope`` con la palabra clave
  364. ``rowgroup`` afecta a las celdas de los datos que se aplica a las celdas del encabezado.
  365. Las celdas de cabecera con un ``scope = rowgroup`` ('Perros' y 'Gatos') se aplican
  366. a todas las celdas de su grupo de filas distintas de las celdas (a su izquierda)
  367. en la columna 1.
  368. El elemento ``td``
  369. ==================
  370. Representa una celda de datos en una tabla.
  371. Este elemento siempre es hijo de un elemento ``<tr>``.
  372. Se puede utilizar con los siguientes atributos:
  373. - ``colspan``. El número de columnas que la celda ocupa.
  374. - ``rowspan``. El número de filas que la celda ocupa.
  375. - ``headers``. Los encabezados de esta celda.
  376. .. code-block:: html
  377. <table>
  378. <thead>
  379. <tr>
  380. <th>
  381. <th>2008
  382. <th>2007
  383. <th>2006
  384. <tbody>
  385. <tr>
  386. <th>Net sales
  387. <td>$ 32,479
  388. <td>$ 24,006
  389. <td>$ 19,315
  390. <tr>
  391. <th>Cost of sales
  392. <td> 21,334
  393. <td> 15,852
  394. <td> 13,717
  395. <tbody>
  396. <tr>
  397. <th>Gross margin
  398. <td>$ 11,145
  399. <td>$ 8,154
  400. <td>$ 5,598
  401. <tfoot>
  402. <tr>
  403. <th>Gross margin percentage
  404. <td>34.3%
  405. <td>34.0%
  406. <td>29.0%
  407. </table>