css 将表格背景图像置于行背景颜色之上

qojgxg4l  于 2024-01-09  发布在  其他
关注(0)|答案(2)|浏览(121)

我有一个表格,为了提高可读性,表格中的每一行都有一个背景颜色。表格元素也有一个背景图像,作为水印在整个表格中重复出现。
现在表格背景图像被行背景颜色覆盖。我想把表格背景图像放在行背景颜色之上,但不是放在行数据之上。


的数据
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 Fiddle:https://jsfiddle.net/hpLu58y0/

e3bfsja2

e3bfsja21#

作为我的评论的替代,你可以在table上使用一个伪::after,并把背景放在那里。
由于它是一个新元素,你可以随意放置它,因此不会遇到我提到的背景+堆叠问题。

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 */;
}

字符集

dfty9e19

dfty9e192#

试试这个它工作codepen

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

个字符

相关问题