在悬停

时间:2016-02-18 08:39:19

标签: html css css3

这是我的表:(我知道我必须使用div而不是表格)

<table class="table-fill">
  <thead>
    <tr class="">
      <th class="text-top">
        <i class="fa fa-comments"></i></th>
      <th class="text-top">Service & Support</th>
    </tr>
  </thead>
  <tbody class="table-hover">
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span></td>
      <td class="text-left">TableData1</td>
    </tr>
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span></td>
      <td class="text-left">TableData2</td>
    </tr>
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span></td>
      <td class="text-left">TableData3</td>
    </tr>
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span></td>
      <td class="text-left">TableData4 </td>
    </tr>
    <tr>
      <td class="text-left"></td>
      <td class="text-left"></td>
    </tr>
  </tbody>
</table>
当我将鼠标悬停在.text-left上时,我希望为.text-top类提供另一种背景和颜色。该表还必须具有不同的box-shadow。 这是我的CSS:
.text-left:hover .table-fill {
    box-shadow: 0 26px 74px rgba(0, 0, 0, 0.69);
}

.text-left:hover .text-top {
   background:#fff;
   color:#4E5066;
}

我已尝试.text-left:hover ~ .table-fill.text-left:hover + .table-fill.text-left:hover > .table-fill,但这不起作用。

我也看了HereHereHere,但这并没有解决我的问题。

如果可能,我想避免使用jQuery。

3 个答案:

答案 0 :(得分:1)

为什么不改变表格上的样式悬停本身,因为你的所有内容都有文本左侧类,就像在表格内的任何地方悬停一样。这只是我的建议。

.table-fill:hover {

  box-shadow: 0 26px 74px rgba(0, 0, 0, 0.69);

}


.table-fill:hover .text-top {

  background: #fff;
  color: #4E5066;

}
<table class="table-fill">
  <thead>
    <tr class="">
      <th class="text-top">
        <i class="fa fa-comments"></i>
      </th>
      <th class="text-top">Service & Support</th>
    </tr>
  </thead>
  <tbody class="table-hover">
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span>
      </td>
      <td class="text-left">TableData1</td>
    </tr>
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span>
      </td>
      <td class="text-left">TableData2</td>
    </tr>
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span>
      </td>
      <td class="text-left">TableData3</td>
    </tr>
    <tr>
      <td class="text-left"><span class="dashicons dashicons-arrow-right-alt2"></span>
      </td>
      <td class="text-left">TableData4</td>
    </tr>
    <tr>
      <td class="text-left"></td>
      <td class="text-left"></td>
    </tr>
  </tbody>
</table>

答案 1 :(得分:0)

.table-filled.text-top既不是.text-left的兄弟姐妹也不是后代,所以这不起作用。 jQuery可能是你最好的选择。

答案 2 :(得分:0)

这是我的解决方案:

将激活更改为 .table-fill ,而不是 .text-left ,如下所示:

.table-fill:hover .text-top {
  background:#fff;
  color:#4E5066;
}
.table-fill:hover {
  box-shadow: 0 26px 74px rgba(0, 0, 0, 0.69);
}

希望它能产生预期的效果