Chrome表格标题的框阴影

时间:2015-08-04 13:27:17

标签: html css

我试图将box-shadow添加到表格的第一行(标题), 这在Firefox中运行良好,但遗憾的是在Chrome中无效。

我尝试过使用不同的显示属性值(例如" display:block"), 它会在Chrome中添加阴影,但会将整个标题移动到第一列的第一个单元格中。关于如何在我的案例中添加box-shadow的任何解决方案?

下面是我的CSS / HTML示例(box-shadow用于选择器" tr:first-child"):



body,
html {
  height: 100%;
  background-color: #E0E0E0;
}
table {
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
  margin-bottom: 25px;
  background: linear-gradient(to bottom, #E0E0E0 0%, #E1E1E1 10%, #E5E5E5 47%, #E7E7E7 100%);
  -webkit-border-radius: 10px 10px 10px 10px;
  -moz-border-radius: 10px 10px 10px 10px;
  border-radius: 10px 10px 10px 10px;
  box-sizing: border-box;
}
table,
th,
td {
  border-collapse: collapse;
}
tr:hover {
  background-color: #E0E0E0;
}
tr:first-child {
  background-color: #E0E0E0;
  -webkit-border-radius: 10px 10px 10px 10px;
  -moz-border-radius: 10px 10px 10px 10px;
  border-radius: 10px 10px 10px 10px;
  -webkit-box-shadow: 3px 5px 10px grey;
  -moz-box-shadow: 3px 5px 10px grey;
  box-shadow: 3px 5px 10px grey;
}
th {
  background-color: #404040;
  color: #FFFFFF;
}
th,
td {
  padding: 3px;
  max-width: 600px;
}
td {
  border-bottom: 1px solid #909090;
}
td.last_row {
  border-bottom: none;
}
td:first-child {
  text-align: center;
  width: 25px;
}
td:last-child {
  text-align: center;
  width: 50px;
}
#column_1 {
  -webkit-border-radius: 10px 0px 0px 10px;
  -moz-border-radius: 10px 0px 0px 10px;
  border-radius: 10px 0px 0px 10px;
}
#column_2 {
  -webkit-border-radius: 0px 10px 10px 0px;
  -moz-border-radius: 0px 10px 10px 0px;
  border-radius: 0px 10px 10px 0px;
}
.outer_col {
  border: none;
}

<body>
  <table>
    <tr>
      <th id="column_1">ID</th>
      <th id="column_2" colspan="2">DESCRIPTION</th>
    </tr>
    <tr>
      <td class="outer_col">1</td>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit</td>
      <td class="outer_col"><a href="#">Link</a>
      </td>
    </tr>
    <tr>
      <td class="outer_col">2</td>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit</td>
      <td class="outer_col"><a href="#">Link</a>
      </td>
    </tr>
    <tr>
      <td class="outer_col">3</td>
      <td class="last_row">Lorem ipsum dolor sit amet, consectetur adipiscing elit</td>
      <td class="outer_col"><a href="#">Link</a>
      </td>
    </tr>
  </table>
</body>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

将盒子阴影效果移动到th:

th {
  background-color: #404040;
  color: #FFFFFF;
  -webkit-border-radius: 10px 10px 10px 10px;
  -moz-border-radius: 10px 10px 10px 10px;
  border-radius: 10px 10px 10px 10px;
  -webkit-box-shadow: 3px 5px 10px grey;
  -moz-box-shadow: 3px 5px 10px grey;
  box-shadow: 3px 5px 10px grey;
}

tr:第一个孩子与你的情况相同,所以你不需要它。

要使其在最新版本的IE中运行,您需要添加到: 边界崩溃:独立;

答案 1 :(得分:0)

Chrome通常会在一行中使用box-shadow。只需将“tr:firstchild”重写为“th”元素,它就可以在Chrome中运行。 “box-shadow属性仅适用于具有display:block或display:inline-block属性的元素。”

因此,如果您使用display:block或display:inline-block,它会应用您的阴影,但也会破坏表格的完整布局。所以我建议只重建你的影子...... :)