1442 lines
42 KiB
Plaintext
1442 lines
42 KiB
Plaintext
- type 1 table
|
|
|
|
1) HTML
|
|
<body class="wrapper flow">
|
|
<h1>HTML table advanced features and accessibility</h1>
|
|
|
|
<p>Origin: <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables/Advanced" target="_blank">HTML table advanced features and accessibility - Learn web development | MDN</a>.</p>
|
|
|
|
<h2>Adding a <code><caption></code>, and structure with <code><thead></code>, <code><tfoot></code> and <code><tbody></code></h2>
|
|
|
|
<table>
|
|
<caption>How I chose to spend my money</caption>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Purchase</th>
|
|
<th scope="col">Location</th>
|
|
<th scope="col">Date</th>
|
|
<th scope="col">Evaluation</th>
|
|
<th scope="col">Cost (€)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th scope="row">Haircut</th>
|
|
<td>Hairdresser</td>
|
|
<td>12/09</td>
|
|
<td>Great idea</td>
|
|
<td>30</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Lasagna</th>
|
|
<td>Restaurant</td>
|
|
<td>12/09</td>
|
|
<td>Regrets</td>
|
|
<td>18</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Shoes</th>
|
|
<td>Shoeshop</td>
|
|
<td>13/09</td>
|
|
<td>Big regrets</td>
|
|
<td>65</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Toothpaste</th>
|
|
<td>Supermarket</td>
|
|
<td>13/09</td>
|
|
<td>Good</td>
|
|
<td>5</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<th scope="row" colspan="4">SUM</th>
|
|
<td>118</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
|
|
<h2>Using the <code>scope</code> attribute</h2>
|
|
|
|
<table>
|
|
<caption>Items Sold August 2016</caption>
|
|
<thead>
|
|
<tr>
|
|
<td> </td>
|
|
<td> </td>
|
|
<th colspan="3" scope="colgroup">Clothes</th>
|
|
<th colspan="2" scope="colgroup">Accessories</th>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td> </td>
|
|
<th scope="col">Trousers</th>
|
|
<th scope="col">Skirts</th>
|
|
<th scope="col">Dresses</th>
|
|
<th scope="col">Bracelets</th>
|
|
<th scope="col">Rings</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th rowspan="3" scope="rowgroup">Belgium</th>
|
|
<th scope="row">Antwerp</th>
|
|
<td>56</td>
|
|
<td>22</td>
|
|
<td>43</td>
|
|
<td>72</td>
|
|
<td>23</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Gent</th>
|
|
<td>46</td>
|
|
<td>18</td>
|
|
<td>50</td>
|
|
<td>61</td>
|
|
<td>15</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Brussels</th>
|
|
<td>51</td>
|
|
<td>27</td>
|
|
<td>38</td>
|
|
<td>69</td>
|
|
<td>28</td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="2" scope="rowgroup">The Netherlands</th>
|
|
<th scope="row">Amsterdam</th>
|
|
<td>89</td>
|
|
<td>34</td>
|
|
<td>69</td>
|
|
<td>85</td>
|
|
<td>38</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Utrecht</th>
|
|
<td>80</td>
|
|
<td>12</td>
|
|
<td>43</td>
|
|
<td>36</td>
|
|
<td>19</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h2>Using the <code>id</code> and <code>headers</code> attributes</h2>
|
|
|
|
<table>
|
|
<caption>Items Sold August 2016</caption>
|
|
<thead>
|
|
<tr>
|
|
<td> </td>
|
|
<td> </td>
|
|
<th colspan="3" id="clothes">Clothes</th>
|
|
<th colspan="2" id="accessories">Accessories</th>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td> </td>
|
|
<th id="trousers">Trousers</th>
|
|
<th id="skirts">Skirts</th>
|
|
<th id="dresses">Dresses</th>
|
|
<th id="bracelets">Bracelets</th>
|
|
<th id="rings">Rings</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th rowspan="3" id="belgium">Belgium</th>
|
|
<th id="antwerp">Antwerp</th>
|
|
<td headers="clothes trousers belgium antwerp">56</td>
|
|
<td headers="clothes skirts belgium antwerp">22</td>
|
|
<td headers="clothes dresses belgium antwerp">43</td>
|
|
<td headers="accessories bracelets belgium antwerp">72</td>
|
|
<td headers="accessories rings belgium antwerp">23</td>
|
|
</tr>
|
|
<tr>
|
|
<th id="gent">Gent</th>
|
|
<td headers="clothes trousers belgium gent">46</td>
|
|
<td headers="clothes skirts belgium gent">18</td>
|
|
<td headers="clothes dresses belgium gent">50</td>
|
|
<td headers="accessories bracelets belgium gent">61</td>
|
|
<td headers="accessories rings belgium gent">15</td>
|
|
</tr>
|
|
<tr>
|
|
<th id="brussels">Brussels</th>
|
|
<td headers="clothes trousers belgium brussels">51</td>
|
|
<td headers="clothes skirts belgium brussels">27</td>
|
|
<td headers="clothes dresses belgium brussels">38</td>
|
|
<td headers="accessories bracelets belgium brussels">69</td>
|
|
<td headers="accessories rings belgium brussels">28</td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="2" id="netherlands">The Netherlands</th>
|
|
<th id="amsterdam">Amsterdam</th>
|
|
<td headers="clothes trousers netherlands amsterdam">89</td>
|
|
<td headers="clothes skirts netherlands amsterdam">34</td>
|
|
<td headers="clothes dresses netherlands amsterdam">69</td>
|
|
<td headers="accessories bracelets netherlands amsterdam">85</td>
|
|
<td headers="accessories rings netherlands amsterdam">38</td>
|
|
</tr>
|
|
<tr>
|
|
<th id="utrecht">Utrecht</th>
|
|
<td headers="clothes trousers netherlands utrecht">80</td>
|
|
<td headers="clothes skirts netherlands utrecht">12</td>
|
|
<td headers="clothes dresses netherlands utrecht">43</td>
|
|
<td headers="accessories bracelets netherlands utrecht">36</td>
|
|
<td headers="accessories rings netherlands utrecht">19</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</body>
|
|
|
|
2) CSS
|
|
@import "https://germanfrelo.github.io/base-css-stylesheet/base.css" layer(base);
|
|
@import "https://codepen.io/germanfrelo/pen/mdMYKza.css" layer(styles);
|
|
|
|
:root {
|
|
--page-max-inline-size: 100%;
|
|
}
|
|
|
|
body {
|
|
padding-block: 2rem;
|
|
}
|
|
|
|
caption {
|
|
text-align: start;
|
|
}
|
|
|
|
|
|
|
|
- type 2 table
|
|
|
|
1) HTML
|
|
<header>
|
|
<h1>CSS responsive table</h1>
|
|
<p>...with fixed column and row headers and scroll snap. - <a href="https://twitter.com/scottjehl/status/1407356545080434697">@scottjehl</a></p>
|
|
</header>
|
|
<main>
|
|
<div role="region" aria-label="data table" tabindex="0" class="primary">
|
|
<!-- Note: use the aria-label attribute above to describe this keyboard-focusable region appropriately, per your implementation. Alternatively, it could instead be an aria-labelledby attribute that points to a table caption's ID attribute. Thx for thoughts, @aardrian -->
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th class="pin"> </th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
<th>Col Header</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Row Header</th>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
<td>Cell Data</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<aside>
|
|
sidebar
|
|
</aside>
|
|
</main>
|
|
<footer>
|
|
Site footer
|
|
</footer>
|
|
|
|
2) CSS
|
|
body {
|
|
font: 90%/1.4 system-ui;
|
|
margin: 0;
|
|
font-family: sans-serif;
|
|
}
|
|
header {
|
|
padding: 7vh 5vw;
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
header h1,
|
|
header p {
|
|
margin: 0;
|
|
}
|
|
footer {
|
|
padding: 7vh 5vw;
|
|
border-top: 1px solid #ddd;
|
|
}
|
|
aside {
|
|
padding: 7vh 5vw;
|
|
}
|
|
.primary {
|
|
overflow: auto;
|
|
scroll-snap-type: both mandatory;
|
|
height: 80vh;
|
|
}
|
|
@media (min-width: 40em) {
|
|
main {
|
|
display: flex;
|
|
}
|
|
aside {
|
|
flex: 0 1 20vw;
|
|
order: 1;
|
|
border-right: 1px solid #ddd;
|
|
}
|
|
.primary {
|
|
order: 2;
|
|
}
|
|
}
|
|
table {
|
|
border-collapse: collapse;
|
|
border: 0;
|
|
}
|
|
th,
|
|
td {
|
|
border: 1px solid #aaa;
|
|
background-clip: padding-box;
|
|
scroll-snap-align: start;
|
|
}
|
|
tbody tr:last-child th,
|
|
tbody tr:last-child td {
|
|
border-bottom: 0;
|
|
}
|
|
thead {
|
|
z-index: 1000;
|
|
position: relative;
|
|
}
|
|
th,
|
|
td {
|
|
padding: 0.6rem;
|
|
min-width: 6rem;
|
|
text-align: left;
|
|
margin: 0;
|
|
}
|
|
thead th {
|
|
position: sticky;
|
|
top: 0;
|
|
border-top: 0;
|
|
background-clip: padding-box;
|
|
}
|
|
thead th.pin {
|
|
left: 0;
|
|
z-index: 1001;
|
|
border-left: 0;
|
|
}
|
|
tbody th {
|
|
background-clip: padding-box;
|
|
border-left: 0;
|
|
}
|
|
tbody {
|
|
z-index: 10;
|
|
position: relative;
|
|
}
|
|
tbody th {
|
|
position: sticky;
|
|
left: 0;
|
|
}
|
|
thead th,
|
|
tbody th {
|
|
background-color: #f8f8f8;
|
|
}
|
|
|
|
|
|
- type 3 tabel
|
|
1) HTML
|
|
<table>
|
|
<caption>Developers Rating</caption>
|
|
<thead>
|
|
<tr>
|
|
<th>Avatar</th>
|
|
<th>Group</th>
|
|
<th>Name</th>
|
|
<th>Points</th>
|
|
<th>Control</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><img src="https://i.postimg.cc/yYYd1HV1/katara.jpg" alt="img"></td>
|
|
<td>Ninja</td>
|
|
<td>Asma Ad</td>
|
|
<td>120</td>
|
|
<td>
|
|
<button class="view">view</button>
|
|
<button class="delete">Delete</button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><img src="https://i.postimg.cc/Y26YPMSb/zuko.jpg" alt="img"></td>
|
|
<td rowspan="2">Shades</td>
|
|
<td>David</td>
|
|
<td>180</td>
|
|
<td>
|
|
<button class="view">view</button>
|
|
<button class="delete">Delete</button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><img src="https://i.postimg.cc/yYYd1HV1/katara.jpg" alt="img"></td>
|
|
<td>Alex</td>
|
|
<td>160</td>
|
|
<td>
|
|
<button class="view">view</button>
|
|
<button class="delete">Delete</button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><img src="https://i.postimg.cc/Y26YPMSb/zuko.jpg" alt="img"></td>
|
|
<td rowspan="2">Valhala</td>
|
|
<td> Kawtar</td>
|
|
<td>190</td>
|
|
<td>
|
|
<button class="view">view</button>
|
|
<button class="delete">Delete</button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><img src="https://i.postimg.cc/yYYd1HV1/katara.jpg" alt="img"></td>
|
|
<td>Katara</td>
|
|
<td>110</td>
|
|
<td>
|
|
<button class="view">view</button>
|
|
<button class="delete">Delete</button>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><img src="https://i.postimg.cc/Y26YPMSb/zuko.jpg" alt="img"></td>
|
|
<td>Union</td>
|
|
<td>Ashraf</td>
|
|
<td>90</td>
|
|
<td>
|
|
<button class="view">view</button>
|
|
<button class="delete">Delete</button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<td colspan="5" class="tablefoot"></td>
|
|
</tfoot>
|
|
</table>
|
|
|
|
2) CSS
|
|
table {
|
|
width: 700px;
|
|
text-align: center;
|
|
border: 1px solid #fff;
|
|
border-spacing: 1px;
|
|
font-family: 'Cairo', sans-serif;
|
|
margin: auto;
|
|
}
|
|
|
|
caption {
|
|
font-weight: bold;
|
|
}
|
|
|
|
table td {
|
|
padding: 10px;
|
|
background-color: #eee;
|
|
}
|
|
|
|
table th {
|
|
background-color: #333;
|
|
color: #fff;
|
|
padding: 10px;
|
|
}
|
|
|
|
img {
|
|
width: 90px;
|
|
height: 90px;
|
|
}
|
|
|
|
.view,
|
|
.delete {
|
|
border: none;
|
|
padding: 5px 10px;
|
|
color: #fff;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.view {
|
|
background-color: #03A9F4;
|
|
}
|
|
|
|
.delete {
|
|
background-color: #E91E63;
|
|
}
|
|
|
|
.tablefoot {
|
|
padding: 0;
|
|
border-bottom: 3px solid #009688;
|
|
}
|
|
|
|
HTML 표 스타일링은 세계에서 가장 매력적인 일이 아니지만, 때로는 우리 모두가 해야할 일입니다. 이 기사에서는 특정 표 스타일링 기술을 강조 표시하여 HTML 표를 보기좋게 만드는 방법에 대한 안내서를 제공합니다.
|
|
|
|
전제조건: HTML 기본 사항 (HTML 소개 학습), HTML 표 에 대한 지식 및 CSS 작동 방식에 대한 이해 (CSS 첫 번째 단계 학습.)
|
|
목적: HTML 표를 효과적으로 스타일링하는 방법 배우기.
|
|
In this article
|
|
전형적인 HTML 표
|
|
우리의 표 스타일링
|
|
적극적인 학습: 나만의 표 스타일
|
|
표 스타일링 빠르게 하는 팁
|
|
요약
|
|
Auth0
|
|
Make login our problem. Not yours.
|
|
Your time is valuable. Use it to focus on your app, and let us handle login (and much more).
|
|
Try it Free Now
|
|
Ad
|
|
전형적인 HTML 표
|
|
전형적인 HTML 표를 살펴 봅시다. 글쎄요, 일반적인 표의 예들은 — 신발, 날씨 또는 직원들에 관한 것입니다; 우리는 영국의 유명한 펑크 밴드에 관한것을 만들어서 더 흥미롭게 만들기로 결정했습니다. 코드는 다음과 같습니다.
|
|
|
|
html
|
|
|
|
Copy
|
|
<table>
|
|
<caption>
|
|
A summary of the UK's most famous punk bands
|
|
</caption>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Band</th>
|
|
<th scope="col">Year formed</th>
|
|
<th scope="col">No. of Albums</th>
|
|
<th scope="col">Most famous song</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th scope="row">Buzzcocks</th>
|
|
<td>1976</td>
|
|
<td>9</td>
|
|
<td>Ever fallen in love (with someone you shouldn't've)</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">The Clash</th>
|
|
<td>1976</td>
|
|
<td>6</td>
|
|
<td>London Calling</td>
|
|
</tr>
|
|
|
|
... some rows removed for brevity
|
|
|
|
<tr>
|
|
<th scope="row">The Stranglers</th>
|
|
<td>1974</td>
|
|
<td>17</td>
|
|
<td>No More Heroes</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<th scope="row" colspan="2">Total albums</th>
|
|
<td colspan="2">77</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
scope, <caption>, <thead>, <tbody> 등의 기능 덕분에 표가 잘 표시되고 쉽게 스타일링되며 액세스할 수 있습니다. 불행히도 화면에 렌더링할 때는 좋지 않습니다(punk-bands-unstyled.html 에서 라이브 참조).
|
|
|
|
|
|
|
|
기본 브라우저 스타일만 사용하면, 비좁고 읽기 어려우며 지루해 보입니다. 이 문제를 해결하려면 CSS 를 사용해야 합니다.
|
|
|
|
우리의 표 스타일링
|
|
표 예제를 함께 스타일링 해 봅시다.
|
|
|
|
시작하려면, sample markup 의 로컬 사본을 만들고 두 이미지 (노이즈 및 표범가죽) 를 모두 다운로드한 다음, 세 개의 결과 파일을 로컬 컴퓨터의 작업 디렉토리에 넣습니다.
|
|
|
|
다음으로, style.css 라는 새 파일을 만들고 다른 파일과 같은 디렉토리에 저장하십시오.
|
|
|
|
<head> 안에 다음 HTML 행을 배치하여 CSS 를 HTML 에 연결하십시오.
|
|
|
|
html
|
|
|
|
Copy
|
|
<link href="style.css" rel="stylesheet" type="text/css" />
|
|
간격 및 레이아웃
|
|
가장 먼저 해야할 일은 간격/레이아웃을 정렬하는 것입니다 — 기본 표 스타일은 너무 비좁습니다! 이렇게 하려면, style.css 파일에 다음 CSS 를 추가하십시오.
|
|
|
|
css
|
|
|
|
Copy
|
|
/* 간격 */
|
|
|
|
table {
|
|
table-layout: fixed;
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
border: 3px solid purple;
|
|
}
|
|
|
|
thead th:nth-child(1) {
|
|
width: 30%;
|
|
}
|
|
|
|
thead th:nth-child(2) {
|
|
width: 20%;
|
|
}
|
|
|
|
thead th:nth-child(3) {
|
|
width: 15%;
|
|
}
|
|
|
|
thead th:nth-child(4) {
|
|
width: 35%;
|
|
}
|
|
|
|
th,
|
|
td {
|
|
padding: 20px;
|
|
}
|
|
가장 중요한 부분은 다음과 같습니다.
|
|
|
|
fixed 의 table-layout 값은 일반적으로 표가 기본적으로 좀 더 예측 가능하게 작동하므로 표에 설정하는 것이 좋습니다. 일반적으로, 표의 열은 내용의 양에 따라 크기가 정해지는 경향이 있으며, 그 결과 이상한 결과가 발생합니다. table-layout: fixed 를 사용하면 제목의 너비에 따라 열의 크기를 지정한 다음 내용을 적절하게 처리할 수 있습니다. 이것이 우리가 thead th:nth-child(n) (:nth-child) 선택자 ("<thead> 요소 내에서 <th> 요소인 n번째 자식 요소<thead> 를 순서대로 선택합니다") 요소를 설정하고 백분율 너비를 설정했습니다. 전체 열 너비는 제목 너비를 따르므로, 표 열의 크기를 정할 수 있습니다. Chris Coyier 는 이 기술에 대해 고정 표 레이아웃 에서 자세히 설명합니다.
|
|
|
|
이를 width 와 100% 결합했습니다. 즉, 표에 넣은 container 를 표에 채우고 반응성이 뛰어납니다 (아직 더 많은 작업이 필요하지만 좁은 화면 너비에서 잘 보임).
|
|
|
|
collapse 의 border-collapse 값은 모든 표 스타일 작업에 대한 표준 모범 사례입니다. 기본적으로, 표 요소에 테두리를 설정하면, 아래 이미지와 같이 테두리 사이에 간격이 있습니다:이것은 매우 멋지게 보이지 않습니다 (원하는 모양일 수 있는지, 누가 알겠습니까?) border-collapse: collapse; 로 설정하면 테두리가 하나로 축소되어 훨씬 좋아 보입니다:
|
|
|
|
우리는 전체 표 주위에 border 를 넣었습니다. 나중에 표 머리글과 바닥글에 테두리를 씌울 것입니다 — 표 바깥쪽에 테두리가 없고 틈새가 생기면 정말 이상하게 보입니다.
|
|
|
|
<th> 및 <td> 요소에 padding 을 설정했습니다 — 이렇게 하면 데이터 항목에 숨을 공간이 생깁니다. 표를 훨씬 읽기 쉽게 보이게합니다.
|
|
|
|
이 시점에서, 우리 표는 이미 훨씬 좋아보입니다.
|
|
|
|
|
|
|
|
간단한 typography
|
|
이제 텍스트를 약간 정리해 보겠습니다.
|
|
|
|
우선, Google Fonts 에서 펑크 밴드 관련 표에 적합한 글꼴을 찾았습니다. 원하는 경우 거기에 가서 다른 것을 찾을 수 있습니다. 제공된 <link> 요소 및 custom font-family 선언을 Google Fonts 에서 제공하는 선언으로 바꾸면 됩니다.
|
|
|
|
먼저, 다음 <link> 요소를 기존 <link> 요소 바로 위의 HTML head 에 추가하십시오.
|
|
|
|
html
|
|
|
|
Copy
|
|
<link
|
|
href="https://fonts.googleapis.com/css?family=Rock+Salt"
|
|
rel="stylesheet"
|
|
type="text/css" />
|
|
이제 이전 CSS 아래의 style.css 파일에, 다음 CSS 를 추가하십시오.
|
|
|
|
css
|
|
|
|
Copy
|
|
/* typography */
|
|
|
|
html {
|
|
font-family: "helvetica neue", helvetica, arial, sans-serif;
|
|
}
|
|
|
|
thead th,
|
|
tfoot th {
|
|
font-family: "Rock Salt", cursive;
|
|
}
|
|
|
|
th {
|
|
letter-spacing: 2px;
|
|
}
|
|
|
|
td {
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
tbody td {
|
|
text-align: center;
|
|
}
|
|
|
|
tfoot th {
|
|
text-align: right;
|
|
}
|
|
여기에서는 표에 특별한 것은 없습니다. 우리는 일반적으로 쉽게 읽을 수 있도록 글꼴 스타일을 조정합니다.
|
|
|
|
전역 sans-serif 글꼴 스택을 설정했습니다; 이것은 순전히 문체 선택입니다. 또한 <thead> 및 <tfoot> 요소의 제목에 맞춤 글꼴을 설정하여 멋지고 펑키한 모양을 만들었습니다.
|
|
가독성을 높이기 위해 제목과 셀에 letter-spacing 을 설정했습니다. 다시 말하지만, 주로 스타일 선택입니다.
|
|
<tbody> 내부의 표 셀에서 텍스트를 가운데 정렬하여 제목과 일치하도록 했습니다. 기본적으로, 셀에는 text-align 에 left 값이 제공되고, 머리글에는 center 값이 제공되지만 둘 다에 대해 정렬을 동일하게 설정하는것이 좋습니다. 제목 글꼴의 기본 굵은체는 모양을 구별하기에 충분합니다.
|
|
데이터와 시작적으로 더 잘 연결되도록 <tfoot> 내부에서 제목을 오른쪽 정렬했습니다.
|
|
결과는 조금 깔끔해 보입니다.
|
|
|
|
|
|
|
|
그래픽 과 색상
|
|
이제 그래픽과 색상으로 넘어가겠습니다! 표에는 punk and attitude 가 가득하기 때문에, 밝은 인상적인 스타일링을 제공해야합니다. 걱정하지 마십시오. 표를 크게 만들 필요는 없습니다 — 더 미묘하고 세련된 것을 선택할 수 있습니다.
|
|
|
|
아래에서 다시 CSS 를 style.css 파일에 추가하고, 다시 시작하십시오.
|
|
|
|
css
|
|
|
|
Copy
|
|
thead,
|
|
tfoot {
|
|
background: url(leopardskin.jpg);
|
|
color: white;
|
|
text-shadow: 1px 1px 1px black;
|
|
}
|
|
|
|
thead th,
|
|
tfoot th,
|
|
tfoot td {
|
|
background: linear-gradient(
|
|
to bottom,
|
|
rgba(0, 0, 0, 0.1),
|
|
rgba(0, 0, 0, 0.5)
|
|
);
|
|
border: 3px solid purple;
|
|
}
|
|
다시 말하지만, 여기에는 표에만 해당되는 것이 없지만, 몇 가지 주목할 가치가 있습니다.
|
|
|
|
<thead> 및 <tfoot> 에 background-image 를 추가하고, 머리글과 바닥글에 있는 모든 텍스트의 color 를 흰색으로 (텍스트에 그림자 추가) 변경하여 읽기 쉽게 했습니다. 텍스트가 배경과 잘 대비되도록 해야합니다. 그래야 잘 읽을 수 있습니다.
|
|
|
|
또한 머리글과 바닥글 내부의 <th> 및 <td> 요소에 선형 그라데이션을 추가하여 약간의 질감을 개선하오, 밝은 보라색 테두리를 부여했습니다. 중첩된 요소를 여러 개의 중첩된 요소를 사용하여 스타일을 서로 겹칠 수 있는 것이 유용합니다. 예, 여러 배경 이미지를 사용하여 <thead> 및 <tfoot> 요소에 배경 이미지와 선형 그라데이션을 모두 넣을 수는 있지만, 별도로 결정했습니다. 여러 배경 이미지 또는 선형 그라데이션을 지원하지 않는 구형 브라우저의 이점을 위해서입니다.
|
|
|
|
얼룩말 줄무늬 (Zebra striping)
|
|
우리는 표의 다른 데이터 행을 더 쉽게 구문 분석하고 읽을 수 있도록 번갈아 가며 zebra stripes 를 구현하는 방법을 보여주기 위해 별도의 섹션을 제공하고자 했습니다. style.css 파일의 맨 아래에 다름 CSS 를 추가하십시오.
|
|
|
|
css
|
|
|
|
Copy
|
|
tbody tr:nth-child(odd) {
|
|
background-color: #ff33cc;
|
|
}
|
|
|
|
tbody tr:nth-child(even) {
|
|
background-color: #e495e4;
|
|
}
|
|
|
|
tbody tr {
|
|
background-image: url(noise.png);
|
|
}
|
|
|
|
table {
|
|
background-color: #ff33cc;
|
|
}
|
|
이전에는 :nth-child 선택자가 특정 자식 요소를 선택하는 데 사용되는 것을 보았습니다. 수식을 매개 변수로 제공할 수도 있으므로 일련의 요소를 선택합니다. 수식 2n-1 은 홀수 번째 자식 (1, 3, 5 등) 을 모두 선택하고 수식 2n 은 짝수 번째 자식 (2, 4, 6 등) 을 모두 선택합니다. 코드의 odd 및 even 키워드 조차도 앞에서 언급한 공식과 정확히 동일한 기능을 수행합니다. 이 경우 홀수 및 짝수 행에 다른 색상 (선정적인 색상) 을 부여합니다.
|
|
또한 모든 본문 행에 반복적인 배경 타일을 추가하여, 약간의 노이즈 (약간 시각적 왜곡이 있는 반투명 .png) 를 사용하여 질감을 제공했습니다.
|
|
마지막으로, :nth-child 선택자를 지원하지 않는 브라우저는 여전히 본문 행의 배경을 갖도록 전체 표에 단색 배경색을 지정했습니다.
|
|
이러한 색상은 다음과 같은 모양을 만듭니다.
|
|
|
|
|
|
|
|
자, 이것은 여러분의 취향에 맞지 않을 수도 있습니다. 하지만 , 우리가 하려고하는 요점은 표가 지루하고 학문적일 필요는 없다는 것입니다.
|
|
|
|
caption 스타일링
|
|
표와 관련하여 마지막으로 해야할 일이 있습니다 — caption 에 스타일을 지정하는 일입니다. 이렇게 하려면, style.css 파일의 맨 아래에 다름을 추가하십시오.
|
|
|
|
css
|
|
|
|
Copy
|
|
caption {
|
|
font-family: "Rock Salt", cursive;
|
|
padding: 20px;
|
|
font-style: italic;
|
|
caption-side: bottom;
|
|
color: #666;
|
|
text-align: right;
|
|
letter-spacing: 1px;
|
|
}
|
|
bottom 값을 가진 caption-side 속성을 제외하고는 여기서 주목할만한 것이 없습니다. 이로 인해 caption 이 표의 맨 아래에 배치되고 다른 선언과 함께 최종 모양을 얻을 수 있습니다(punk-bands-complete.html 참조).
|
|
|
|
|
|
|
|
적극적인 학습: 나만의 표 스타일
|
|
이 시점에서 표 HTML 예제 (또는 일부를 사용하십시오!) 를 가져와서 표보다 훨씬 더 나은 디자인과 장식을 갖도록 스타일을 지정하고 싶습니다.
|
|
|
|
표 스타일링 빠르게 하는 팁
|
|
다음 단계로 넘어가지 전에, 위에서 설명한 가장 유용한 요점에 대한 간단한 목록을 제공해야 한다고 생각했습니다.
|
|
|
|
표 마크 업을 가능한 한 간단하게 만들고, 유연한 작업을 유지하십시오 예: 백분유을 사용하여 디자인의 반응속도를 향상시킵니다.
|
|
table-layout: fixed 를 사용하여 제목 (<th>) 에서 width 를 설정하여 열 너비를 쉽게 설정할 수 있는 예측 가능한 표 레이아웃을 작성합니다.
|
|
border-collapse: collapse 를 사용하여 표 요소 테두리를 서로 접어서 깔끔하게 만들 수 있습니다.
|
|
<thead>, <tbody> 및 <tfoot> 를 사용하여 표를 논리적 덩어리로 나누고 CSS 를 적용할 추가 위치를 제공하십시오. 필요한 경우 서로 위에 스타일을 더 쉽게 레이어할 수 있습니다.
|
|
alternative 행을 읽기 쉽게 하려면 얼룩말 줄무늬를 사용합니다.
|
|
text-align 을 사용하여 <th> 및 <td> 텍스트를 정렬하여, 더 깜끔하고 쉽게 따라할 수 있도록 하십시오. |