我有一个带有交替行的表格,为了更好的可读性,它有一个背景 colored颜色 .TABLE元素还具有作为水印在整个表格中重复的背景图像.

现在,表格背景图像与行背景 colored颜色 重叠.我想使表格背景图像高于行背景 colored颜色 ,但不高于行数据.

Issue Image

HTML码:

<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
  <tr>
    <td>Ernst Handel</td>
    <td>Roland Mendel</td>
    <td>Austria</td>
  </tr>
  <tr>
    <td>Laughing Bacchus Winecellars</td>
    <td>Yoshi Tannamuri</td>
    <td>Canada</td>
  </tr>
  <tr>
    <td>Magazzini Alimentari Riuniti</td>
    <td>Giovanni Rovelli</td>
    <td>Italy</td>
  </tr>
  <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
  <tr>
    <td>Laughing Bacchus Winecellars</td>
    <td>Yoshi Tannamuri</td>
    <td>Canada</td>
  </tr>
  <tr>
    <td>Magazzini Alimentari Riuniti</td>
    <td>Giovanni Rovelli</td>
    <td>Italy</td>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
  <tr>
    <td>Ernst Handel</td>
    <td>Roland Mendel</td>
    <td>Austria</td>
  </tr>
  <tr>
    <td>Magazzini Alimentari Riuniti</td>
    <td>Giovanni Rovelli</td>
    <td>Italy</td>
  </tr>
</table>

Css代码:

table {
  width: 100%;
  background-image: url(https://i.ibb.co/G3RH3zM/sample-bg.png);
  background-repeat: no-repeat space;
  background-position: center center;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}

JS菲德尔:https://jsfiddle.net/hpLu58y0/

推荐答案

或者我的 comments ,你可以在桌子上使用伪::after,并把背景放在那里.

因为它是一个新元素,你可以随心所欲地放置它,因此,它会遇到我提到的背景+堆叠问题.

PoC:

table {
  position: relative;
  z-index: 0;
  /* [...] */
}

table::after {
  content: "";
  pointer-events: none; /* let mouse events through */
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%; /* old iOS, OSX compat */
  height: 100%; /* old iOS, OSX compat */
  background-image: /* the image here instead */;
}

Html相关问答推荐

将文本区域标签的内容着色为SON(带有 colored颜色 )

使用网格时图像溢出容器高度

覆盖垫子中的边框底部 Select

assets资源 净值元素不会扩展到涵盖子项

使用响应迅速的网格系统,将两列保持在同一行,同时允许更多列用于更大的屏幕

需要帮助创建一个简单的html css网格布局

在弹性框布局中的第n个元素后强制换行

仅在过渡之前删除填充

Html视频标签:圆角像素化

禁用所有行,但在16角中单击编辑按钮的行除外

水平行中按钮的垂直偏移

用由文本制成的边框包围内容

margin-top 未应用于无序列表的第一项

如何使用CSS将页面标题水平居中对齐

水平对齐两列中的两个按钮 同一级别

从右到左支持百分号

focusout() Select 器不适用于搜索框

所有幻灯片上的 Quarto RevealJS 标题

如何阻止网格项目拉伸?

调整窗口大小时试图阻止按钮移动