在非常宽的 HTML 表格上获得右边距?
Posted
技术标签:
【中文标题】在非常宽的 HTML 表格上获得右边距?【英文标题】:Getting a right margin on a very wide HTML table? 【发布时间】:2013-01-21 02:48:35 【问题描述】:我有一张很宽的桌子 - 太宽了,无法适应屏幕宽度;所以浏览器必须显示滚动条。我想从这张桌子的左右两边留出 20px 的空间;所以我尝试使用以下方式对其进行样式设置(下面的完整代码):
table
margin-left: 20px;
margin-right: 20px;
text-align: left;
border-collapse: collapse;
background-color: #e0e4f5;
左边距按预期显示:
但右边距没有(有点难看 - 但请注意水平滚动条的右边缘与表格的右边缘对齐):
是否可以显示某种右边距?
这是我的完整测试代码:
桌子 左边距:20px; 右边距:20px; 文本对齐:左; 边框折叠:折叠; 背景颜色:#e0e4f5;
<table id="mytable">
<caption>Table caption</caption>
<thead>
<tr>
<th scope='col'>head 1</th>
<th scope='col'>head 2</th>
<th scope='col'>head 3</th>
<th scope='col'>head 4</th>
<th scope='col'>head 5</th>
<th scope='col'>head 6</th>
<th scope='col'>head 7</th>
<th scope='col'>head 8</th>
<th scope='col'>head 9</th>
<th scope='col'>head 10</th>
<th scope='col'>head 11</th>
<th scope='col'>head 12</th>
<th scope='col'>head 13</th>
<th scope='col'>head 14</th>
<th scope='col'>head 15</th>
<th scope='col'>head 16</th>
<th scope='col'>head 17</th>
<th scope='col'>head 18</th>
<th scope='col'>head 19</th>
<th scope='col'>head 20</th>
<th scope='col'>head 21</th>
<th scope='col'>head 22</th>
<th scope='col'>head 23</th>
<th scope='col'>head 24</th>
<th scope='col'>head 25</th>
<th scope='col'>head 26</th>
<th scope='col'>head 27</th>
<th scope='col'>head 28</th>
<th scope='col'>head 29</th>
<th scope='col'>head 30</th>
<th scope='col'>head 31</th>
<th scope='col'>head 32</th>
<th scope='col'>head 33</th>
<th scope='col'>head 34</th>
<th scope='col'>head 35</th>
<th scope='col'>head 36</th>
<th scope='col'>head 37</th>
<th scope='col'>head 38</th>
<th scope='col'>head 39</th>
<th scope='col'>head 40</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="100">Table footer</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>test 1</td>
<td>test 2</td>
<td>test 3</td>
<td>test 4</td>
<td>test 5</td>
<td>test 6</td>
<td>test 7</td>
<td>test 8</td>
<td>test 9</td>
<td>test 10</td>
<td>test 11</td>
<td>test 12</td>
<td>test 13</td>
<td>test 14</td>
<td>test 15</td>
<td>test 16</td>
<td>test 17</td>
<td>test 18</td>
<td>test 19</td>
<td>test 20</td>
<td>test 21</td>
<td>test 22</td>
<td>test 23</td>
<td>test 24</td>
<td>test 25</td>
<td>test 26</td>
<td>test 27</td>
<td>test 28</td>
<td>test 29</td>
<td>test 30</td>
<td>test 31</td>
<td>test 32</td>
<td>test 33</td>
<td>test 34</td>
<td>test 35</td>
<td>test 36</td>
<td>test 37</td>
<td>test 38</td>
<td>test 39</td>
<td>test 40</td>
</tr>
<tr>
<td>test 1</td>
<td>test 2</td>
<td>test 3</td>
<td>test 4</td>
<td>test 5</td>
<td>test 6</td>
<td>test 7</td>
<td>test 8</td>
<td>test 9</td>
<td>test 10</td>
<td>test 11</td>
<td>test 12</td>
<td>test 13</td>
<td>test 14</td>
<td>test 15</td>
<td>test 16</td>
<td>test 17</td>
<td>test 18</td>
<td>test 19</td>
<td>test 20</td>
<td>test 21</td>
<td>test 22</td>
<td>test 23</td>
<td>test 24</td>
<td>test 25</td>
<td>test 26</td>
<td>test 27</td>
<td>test 28</td>
<td>test 29</td>
<td>test 30</td>
<td>test 31</td>
<td>test 32</td>
<td>test 33</td>
<td>test 34</td>
<td>test 35</td>
<td>test 36</td>
<td>test 37</td>
<td>test 38</td>
<td>test 39</td>
<td>test 40</td>
</tr>
<tr>
<td>test 1</td>
<td>test 2</td>
<td>test 3</td>
<td>test 4</td>
<td>test 5</td>
<td>test 6</td>
<td>test 7</td>
<td>test 8</td>
<td>test 9</td>
<td>test 10</td>
<td>test 11</td>
<td>test 12</td>
<td>test 13</td>
<td>test 14</td>
<td>test 15</td>
<td>test 16</td>
<td>test 17</td>
<td>test 18</td>
<td>test 19</td>
<td>test 20</td>
<td>test 21</td>
<td>test 22</td>
<td>test 23</td>
<td>test 24</td>
<td>test 25</td>
<td>test 26</td>
<td>test 27</td>
<td>test 28</td>
<td>test 29</td>
<td>test 30</td>
<td>test 31</td>
<td>test 32</td>
<td>test 33</td>
<td>test 34</td>
<td>test 35</td>
<td>test 36</td>
<td>test 37</td>
<td>test 38</td>
<td>test 39</td>
<td>test 40</td>
</tr>
<tr>
<td>test 1</td>
<td>test 2</td>
<td>test 3</td>
<td>test 4</td>
<td>test 5</td>
<td>test 6</td>
<td>test 7</td>
<td>test 8</td>
<td>test 9</td>
<td>test 10</td>
<td>test 11</td>
<td>test 12</td>
<td>test 13</td>
<td>test 14</td>
<td>test 15</td>
<td>test 16</td>
<td>test 17</td>
<td>test 18</td>
<td>test 19</td>
<td>test 20</td>
<td>test 21</td>
<td>test 22</td>
<td>test 23</td>
<td>test 24</td>
<td>test 25</td>
<td>test 26</td>
<td>test 27</td>
<td>test 28</td>
<td>test 29</td>
<td>test 30</td>
<td>test 31</td>
<td>test 32</td>
<td>test 33</td>
<td>test 34</td>
<td>test 35</td>
<td>test 36</td>
<td>test 37</td>
<td>test 38</td>
<td>test 39</td>
<td>test 40</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
【问题讨论】:
只有在缩小页面时才显示右边距。在这种情况下,当表格宽度大于页面宽度时,它不会显示。 这就是问题jsfiddle.net/nnJ6F/1要看到它,页面必须小到足以引起水平滚动 【参考方案1】:如果您可以像在这个 jsFiddle (http://jsfiddle.net/nnJ6F/1/) 中那样添加表格包装器 div,您可以将其设置为显示内联块:
.table-wrapper
display:inline-block;
这是一个有效的 jsFiddle:http://jsfiddle.net/nnJ6F/5/
【讨论】:
【参考方案2】:您可以将表格元素设置为display:inline-block;
,这将为您提供适当的边距。只需确保内联块满足您的 browser compatibility 要求即可。
Demo.
【讨论】:
将表格的显示属性从表格更改为其他任何内容都会产生副作用(请参阅***.com/a/7456216/487883)。需要记住的一点。【参考方案3】:关于我的评论在这里你可以看到它是如何工作的:
example
只需在结果和 javascript 位置之间移动 vertical panel
边界即可。
【讨论】:
OP 想要表格右侧的额外空间。这不是解决方案,您只是在演示问题。以上是关于在非常宽的 HTML 表格上获得右边距?的主要内容,如果未能解决你的问题,请参考以下文章