css - tbody 边框呈现问题

标签 css angularjs

我正在使用 angularJS 对多个搜索结果进行 ngRepeat,以便将它们显示在表格中。每个结果都包含许多表格行和列,因此 ngRepeat 会重复 tbody 容器以包含完整结果。

我遇到的问题是围绕每个 tbody 设置边框样式。每个边框在鼠标悬停时从透明过渡到指定的颜色,但是由于默认的 border-collapse: collapse; 属性,边框的边缘看起来重叠,这使得它们看起来被切断,并且一般坏了。如果我使用 border-collapse: separate;display: block;,我可以使边框显示正确,但我失去了表格通常会很好的列水平间距提供。

我的目标是让每个 tbody 都有自己的边框,这样我就可以在鼠标悬停时转换颜色,同时保持相对于 th 标签的适当水平间距显示在表格的顶部。

这是我所拥有的简化版本:

HTML:

<table>
<thead>
    <th>Heading 1</th>
    <th>Heading 2</th>
    <th>Heading 3</th>
</thead>
<tbody ng-repeat="result in results">
    <tr>
        <td>{{result.a}}</td>
        <td>{{result.b}}</td>
        <td>{{result.c}}</td>
    </tr>
    <tr>
        <td colspan="3">
        <div>{{result.d}}</div>
        </td>
    </tr>
</tbody>

CSS:

tbody {
  transition: border-color 0.6s ease;
  -webkit-transition: border-color 0.6s ease; /* Safari */
  border 4px solid black;
}

tbody:hover {
  border-color: red;
}

我咨询过: tbody border not showing , Add borders on <tbody> , Border-top from tbody and border-bottom from thead don't work at the same time? 除其他外..

提前致谢。

最佳答案

对于将来遇到类似问题的任何人,我最终通过完全避免使用表格和 tbody 标签来解决这个问题。我使用一系列 div 将布局设​​置为在视觉上类似于表格,允许我以通常的方式将边框应用于 div。这种方法的缺点是您失去了根据包含的内容自动调整列宽大小的功能,但优点是您避免了上述边框问题。

希望对您有所帮助。

关于css - tbody 边框呈现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20651370/

相关文章:

javascript - jquery keyup 事件不会触发添加/删除类

css - Flexbox 响应式布局

angularjs - Angular 2 : Binding to Functions from Component Templates

javascript - 单页应用程序中模板检索的困惑以及与典型文件检索的区别

javascript - 使用 Phaser.js 和 Ionic 开发游戏应用程序(缓慢/不稳定的渲染)

javascript - angularFire 3 路数据绑定(bind)不会更新函数

javascript - 在事件中更改 jQuery 的 $(this) 对象的值

html - 如何在带有文本的div内创建一个不可见的方 block ?

html - 如何使用 CSS 在 Rails 应用程序上设置背景图片

javascript - AngularJS 隔离范围 ng-model 验证