html - 表格的滚动条将文本推到左边?

标签 html css html-table

我不明白为什么我的浏览器(最新的 Chrome)一直在我的表格单元格和滚动条(我用红色突出显示)之间添加空间:

enter image description here

当我将表格 HTML 放入 JSFiddle 时,它​​没有有这个额外的空间(https://jsfiddle.net/m0c3twda/1/)。

.table-container{
    margin-left:  auto;
    margin-right:  auto;
    width: 80vw;  /* set the width of the table to 80% of view width */
}

#image-list {
    overflow-y: scroll;
    overflow-x: visible;
    height: 100px;
    display:  block;
    width:  100%;
    margin-top: 20px;
    margin-left:  auto;
    margin-right: auto;
}

#image-list tr{
    display: table-row;
    padding:  0px;
}

#image-list td{
    padding-left:  3px;
    padding-right:  3px;
}

#image-list tr td:first-child{
    text-align: left;
}

#image-list tr td:nth-child(2){
    text-align: center;
}

#image-list tr td:nth-child(3){
    text-align: right;
}
<div class='table-container'>
        <table id='image-list'>
            <tr class="row">
                <td><a class="image-link" href="/index/Chrysanthemum%20-%20Copy.jpg"> Chrysanthemum - Copy.jpg </a></td>
                <td><a class="image-link" href="/index/Chrysanthemum.jpg"> Chrysanthemum.jpg </a></td>
                <td><a class="image-link" href="/index/Desert%20-%20Copy.jpg"> Desert - Copy.jpg </a></td>
            </tr>
            <tr class="row">
                <td><a class="image-link" href="/index/Desert.jpg"> Desert.jpg </a></td>
                <td><a class="image-link" href="/index/Hydrangeas%20-%20Copy.jpg"> Hydrangeas - Copy.jpg </a></td>
                <td><a class="image-link" href="/index/Hydrangeas.jpg"> Hydrangeas.jpg </a></td>
            </tr>

            ...

            <tr class="row">
                <td><a class="image-link" href="/index/test%20%282%29.jpg"> test (2).jpg </a></td>
                <td><a class="image-link" href="/index/test%20%283%29.jpg"> test (3).jpg </a></td>
                <td><a class="image-link" href="/index/test%20%284%29.jpg"> test (4).jpg </a></td>
            </tr>
            <tr class="row">
                <td><a class="image-link" href="/index/Tulips.jpg"> Tulips.jpg </a></td>
            </tr>
      </table>
</div>

https://jsfiddle.net/m0c3twda/1/ -- 注意:JSFiddle 中有更多行,为了简单起见,我只在此处发布了一些行。

我也试过 html {overflow-y: scroll} as suggested here但同样的事情发生了。

出于某种原因,我怀疑它在 .table-container{} CSS 中,除非我完全删除它,它仍然会在第三列和滚动条之间增加空间...

没有Javascript/jQuery等,全是HTML+CSS(虽然是通过Flask生成的)

我可能忽略或没有考虑什么?

最佳答案

所以这里发生的一些事情需要重新考虑; See updated fiddle添加了一些视觉辅助工具。

对于初学者来说,没有理由改变 display ,它是一张 table ,让它成为一张 table 。通过将其更改为 block嵌套的 tr 忘记了它们在上下文中应该是什么,chrome 将应用 <tbody>在你的行和单例 <td> 周围最后总是会导致布局问题,因为如果缺少 colspan,它基本上是一个损坏的标签在测量/布置/绘画时充当带列的有效行。

我们还让容器处理 overflowborder-collapse处理间距的减少作为 display: table 的一个属性而不是定位 td作为 display: block 的 child 如前所述。

无论如何,希望这对您有所帮助。干杯!

关于html - 表格的滚动条将文本推到左边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503969/

相关文章:

jquery - bootstrap 可折叠导航栏开始打开

php - 通过 AJAX 提交动态表格并将相关值获取到 PHP

javascript - 运行单击并双击 anchor 标记

javascript - 为什么忽略表格指定的水平尺寸?

html - 你能只用表格设计边框吗?

css - 响应式 CSS 与 Chrome 的响应式 View

javascript - 数组中的随机十六进制颜色

javascript - jQuery Custom Accordion - 关闭当前打开的部分

HTML 和 CSS 表格通过继承获得错误的样式

html - 如何在 ASP.Net MVC 5 中设置 html 表格宽度属性