html - 为什么 box-shadow 属性不应用于 <tr> 而是直接应用于 Edge 中的 <td> 元素?

标签 html css microsoft-edge

添加box-shadow时到 <tr> 、Firefox 和 Chrome 都在整行周围显示它,而 Edge 直接将其应用于每个 <td>最终看起来像网格而不是连续的行。

这是该行为的演示:

table tr {
  box-shadow: 0 0 0 1px red inset;
}
<table>
  <tr>
    <td>hello</td>
    <td>world</td>
  </tr>
</table>

以下是屏幕截图:

  1. 它在 Firefox 中的外观

How it looks in Firefox

  • 它在 Chrome 中的外观
  • How it looks in Chrome

  • 它在 Edge 中的外观
  • How it looks in Edge

    所以看起来 Edge 直接将给定的样式应用于 <td> <tr>下的元素就像我设置了以下内容:

    table td {
      box-shadow: 0 0 0 1px red inset;
    }
    <table>
      <tr>
        <td>hello</td>
        <td>world</td>
      </tr>
    </table>

    通过实验,看起来也像 display: block似乎解决了这个问题,它使所有浏览器(几乎)平等地显示阴影

    table tr {
      box-shadow: 0 0 0 1px red inset;
      display: block;
    }
    <table>
      <tr>
        <td>hello</td>
        <td>world</td>
      </tr>
    </table>

    1. 如何 display: block在 Firefox 中查看

    How <code>display: block</code> looks in Firefox

  • 如何 display: block在 Chrome 中查看
  • How <code>display: block</code> looks in Chrome

  • 如何 display: block在 Edge 中查看
  • How <code>display: block</code> looks in Edge

    Edge 确实显示 box-shadow关于<tr> Firefox 和 Chrome 的左侧和右侧也有类似的空白。

    根据 box-shadow draft specifications它应该适用于所有元素。我感兴趣的是 Edge 为什么会这样做:为什么它会跳过 <tr>并将 CSS 直接应用到 <td>元素?这似乎完全不直观 - 其他属性如 border不要这样做 - 如果你将其应用于 parent , children 不会全部得到 border ,也是。

    最佳答案

    适用于 <tr> 的有限 CSS 属性自从 CSS 首次出现以来,元素(以及其他带有“display:table-row”的元素)就一直是这样。规范中列出了更多适用于“所有元素”的 CSS3 属性,但显然 Edge 正在将其应用于单元格而不是行本身。

    关于html - 为什么 box-shadow 属性不应用于 <tr> 而是直接应用于 Edge 中的 <td> 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55748930/

    相关文章:

    html - 下拉列表的 z-index 不适用于 iframe

    html - Twitter Bootstrap 中奇怪的 <section> 行为

    c# - 执行整页重新加载时再次出现 Selenium C# 安全错误

    html - 边缘表格中的溢出滚动条无法正确显示

    javascript - 通过突出显示在所有 TD 中找到值(value)

    javascript - 处理 HTML 脚本标记时出错

    html - iPad 总是假设纵向宽度为最大宽度

    microsoft-edge - Microsoft Edge 在后退/前进按钮上请求新页面

    javascript - 如何在不刷新页面的情况下更新html中的javascript变量值

    javascript - HTML5 Canvas 位于列表内,无法在所有列表上绘制图像