从给定的细胞启动rowspan和colspan,并减少rowspan的填充



我正在编写一个动态创建HTML表的PHP脚本。

有两件事缺少,无法找到信息。

我想减少rowspan单元的"填充",水平太大。您可以使用什么来修改单元内部和末端的字符串之间的间距?

我也想从3行开始到最后一排,然后从第3列开始Colspan到最后一个。可以做到吗?

html源代码,如果您想查看表的样子:

table,
th,
td {
  border: 1px solid black;
  border-collapse: collapse;
}
<table style="width:50%">
  <tr>
    <th colspan="17">Weight, in Kg</th>
  </tr>
  <tr>
    <th rowspan="11">Height, in cm</th>
  </tr>
  <tr>
    <th></th>
    <th>40</th>
    <th>45</th>
    <th>50</th>
    <th>55</th>
    <th>60</th>
    <th>65</th>
    <th>70</th>
    <th>75</th>
    <th>80</th>
    <th>85</th>
    <th>90</th>
    <th>95</th>
    <th>100</th>
    <th>105</th>
    <th>110</th>
  </tr>
  <tr>
    <th>160</th>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>35</td>
    <td>37</td>
    <td>39</td>
    <td>41</td>
    <td>42</td>
  </tr>
  <tr>
    <th>165</th>
    <td>14</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
    <td>40</td>
  </tr>
  <tr>
    <th>170</th>
    <td>13</td>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>24</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
  </tr>
  <tr>
    <th>175</th>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>35</td>
  </tr>
  <tr>
    <th>180</th>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
    <td>33</td>
  </tr>
  <tr>
    <th>185</th>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
  </tr>
  <tr>
    <th>190</th>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
  </tr>
  <tr>
    <th>195</th>
    <td>10</td>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>15</td>
    <td>17</td>
    <td>18</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>28</td>
  </tr>
  <tr>
    <th>200</th>
    <td>10</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>26</td>
    <td>27</td>
  </tr>
</table>

创建一个2x2 "填充" 单元格。然后在后来启动列标签单元格一个<tr>。基本上,您可以水平运行两个标头行,因此在第三个<tr>中启动垂直标头行。

table,
th,
td {
  border: 1px solid black;
  border-collapse: collapse;
}
<table style="width:50%">
  <tr>
    <th colspan="2" rowspan="2"></th>
    <th colspan="17">Weight, in Kg</th>
  </tr>
  <tr>
    <th>40</th>
    <th>45</th>
    <th>50</th>
    <th>55</th>
    <th>60</th>
    <th>65</th>
    <th>70</th>
    <th>75</th>
    <th>80</th>
    <th>85</th>
    <th>90</th>
    <th>95</th>
    <th>100</th>
    <th>105</th>
    <th>110</th>
  </tr>
  <tr>
    <th rowspan="11">Height, in cm</th>
    <th>160</th>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>35</td>
    <td>37</td>
    <td>39</td>
    <td>41</td>
    <td>42</td>
  </tr>
  <tr>
    <th>165</th>
    <td>14</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
    <td>40</td>
  </tr>
  <tr>
    <th>170</th>
    <td>13</td>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>24</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
  </tr>
  <tr>
    <th>175</th>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>35</td>
  </tr>
  <tr>
    <th>180</th>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
    <td>33</td>
  </tr>
  <tr>
    <th>185</th>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
  </tr>
  <tr>
    <th>190</th>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
  </tr>
  <tr>
    <th>195</th>
    <td>10</td>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>15</td>
    <td>17</td>
    <td>18</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>28</td>
  </tr>
  <tr>
    <th>200</th>
    <td>10</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>26</td>
    <td>27</td>
  </tr>
</table>

当您说"填充" 时,我将其理解为 Wight两侧的空白,以kg 在单元的边界中。如果是这样:

  1. 增加字体尺寸,看起来可能很难。
  2. 增加字母间距,letter-spacing: 0.25em;,看起来很丑。

如果您是在谈论> 100 中的数字之后的空白'd建议让所有列都具有相同的宽度,然后将所有数字居中以甚至所有数字。

请注意,使用此方法的三位数的空间比双位数少。

table,
th,
td {
  border: 1px solid black;
  border-collapse: collapse;
  text-align: center;
}
th,
td {
  min-width: 1.85rem;
}
<table style="width:50%">
  <tr>
    <th colspan="2" rowspan="2"></th>
    <th colspan="17">Weight, in Kg</th>
  </tr>
  <tr>
    <th>40</th>
    <th>45</th>
    <th>50</th>
    <th>55</th>
    <th>60</th>
    <th>65</th>
    <th>70</th>
    <th>75</th>
    <th>80</th>
    <th>85</th>
    <th>90</th>
    <th>95</th>
    <th>100</th>
    <th>105</th>
    <th>110</th>
  </tr>
  <tr>
    <th rowspan="11">Height, in cm</th>
    <th>160</th>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>35</td>
    <td>37</td>
    <td>39</td>
    <td>41</td>
    <td>42</td>
  </tr>
  <tr>
    <th>165</th>
    <td>14</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
    <td>40</td>
  </tr>
  <tr>
    <th>170</th>
    <td>13</td>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>24</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
  </tr>
  <tr>
    <th>175</th>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>35</td>
  </tr>
  <tr>
    <th>180</th>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
    <td>33</td>
  </tr>
  <tr>
    <th>185</th>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
  </tr>
  <tr>
    <th>190</th>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
  </tr>
  <tr>
    <th>195</th>
    <td>10</td>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>15</td>
    <td>17</td>
    <td>18</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>28</td>
  </tr>
  <tr>
    <th>200</th>
    <td>10</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>26</td>
    <td>27</td>
  </tr>
</table>

或者您可以在列和中心设置特定数量的填充物。我个人喜欢上面的代码段的结果。在这里,您可以在数字上获得一致的空白,同时牺牲相等的列宽度。

table,
th,
td {
  border: 1px solid black;
  border-collapse: collapse;
  text-align: center;
}
th,
td {
  padding: 0.125rem 0.25rem;
}
<table style="width:50%">
  <tr>
    <th colspan="2" rowspan="2"></th>
    <th colspan="17">Weight, in Kg</th>
  </tr>
  <tr>
    <th>40</th>
    <th>45</th>
    <th>50</th>
    <th>55</th>
    <th>60</th>
    <th>65</th>
    <th>70</th>
    <th>75</th>
    <th>80</th>
    <th>85</th>
    <th>90</th>
    <th>95</th>
    <th>100</th>
    <th>105</th>
    <th>110</th>
  </tr>
  <tr>
    <th rowspan="11">Height, in cm</th>
    <th>160</th>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>35</td>
    <td>37</td>
    <td>39</td>
    <td>41</td>
    <td>42</td>
  </tr>
  <tr>
    <th>165</th>
    <td>14</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>33</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
    <td>40</td>
  </tr>
  <tr>
    <th>170</th>
    <td>13</td>
    <td>15</td>
    <td>17</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>24</td>
    <td>25</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>36</td>
    <td>38</td>
  </tr>
  <tr>
    <th>175</th>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>31</td>
    <td>32</td>
    <td>34</td>
    <td>35</td>
  </tr>
  <tr>
    <th>180</th>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
    <td>33</td>
  </tr>
  <tr>
    <th>185</th>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
    <td>32</td>
  </tr>
  <tr>
    <th>190</th>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>18</td>
    <td>19</td>
    <td>20</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>29</td>
    <td>30</td>
  </tr>
  <tr>
    <th>195</th>
    <td>10</td>
    <td>11</td>
    <td>13</td>
    <td>14</td>
    <td>15</td>
    <td>17</td>
    <td>18</td>
    <td>19</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>24</td>
    <td>26</td>
    <td>27</td>
    <td>28</td>
  </tr>
  <tr>
    <th>200</th>
    <td>10</td>
    <td>11</td>
    <td>12</td>
    <td>13</td>
    <td>15</td>
    <td>16</td>
    <td>17</td>
    <td>18</td>
    <td>20</td>
    <td>21</td>
    <td>22</td>
    <td>23</td>
    <td>25</td>
    <td>26</td>
    <td>27</td>
  </tr>
</table>

如果两个都是您所引用的,请澄清。

最新更新