table css3 hover

highlight hover X-Y Position

by Jens Kühn

HTML

<table cellspacing="3" cellpadding="3" class="contenttable">
  <thead>
    <tr class="tr-even tr-0">
      <th class="td-0">Haushaltsvolumen (€)</th>
      <th class="td-1">2006</th>
      <th class="td-2">2007</th>
      <th class="td-3">2008</th>
      <th class="td-4">2009</th>
      <th class="td-5">2010</th>
      <th class="td-last td-6">2011</th>
    </tr>
  </thead>  


  <tbody>
    <tr class="tr-odd tr-1">
      <td class="td-0">Verwaltungshaushalt</td>
      <td class="td-1">89.784.420</td>
      <td class="td-2">94.925.160</td>
      <td class="td-3">103.425.400</td>
      <td class="td-4">103.625.600 </td>
      <td class="td-5">92.858.230 </td>
      <td class="td-last td-6">109.015.660</td>
    </tr>
    <tr class="tr-even tr-2">
      <td class="td-0">Vermögenshaushalt</td>
      <td class="td-1">20.892.060</td>
      <td class="td-2">19.490.860</td>
      <td class="td-3">33.789.700</td>
      <td class="td-4">37.236.300 </td>
      <td class="td-5">30.552.200 </td>
      <td class="td-last td-6">26.283.250</td>
    </tr>
    <tr class="tr-odd tr-3">
      <td class="td-0">Pro-Kopf-Verschuldung brutto</td>
      <td class="td-1">554</td>
      <td class="td-2">580</td>
      <td class="td-3">512</td>
      <td class="td-4">485</td>
      <td class="td-5">636</td>
      <td class="td-last td-6">902</td>
    </tr>
    <tr class="tr-even tr-4">
      <td class="td-0">&nbsp;</td>
      <td class="td-1">31.12.2005</td>
      <td class="td-2">31.12.2006</td>
      <td class="td-3">31.12.2007</td>
      <td class="td-4">31.12.2008</td>
      <td class="td-5">31.12.2009</td>
      <td class="td-last td-6">31.12.2010</td>
    </tr>
    <tr class="tr-odd tr-5">
      <td class="td-0">Hebesätze</td>
      <td class="td-1">&nbsp;</td>
      <td class="td-2">&nbsp;</td>
      <td class="td-3">&nbsp;</td>
      <td class="td-4">&nbsp;</td>
      <td class="td-5">&nbsp;</td>
      <td class="td-last td-6">&nbsp;</td>
    </tr>
    <tr class="tr-even tr-6">
    ...

CSS

table {
  border-collapse: separate;
  border-spacing: 3px;
  overflow: hidden;
}

td,
th {
  border: 1px solid;
  position: relative;
  outline: 0;
  padding: 0.5em;
}

thead th,
tbody th {
  color: #000;
  padding: 0.5em;
  text-align: center;
}

tr:hover {
  background: #ffa;
}

td:hover::after,
thead th:not(:empty):hover::after,
td:focus::after,
thead th:not(:empty):focus::after {
  content: '';
  height: 10000px;
  left: 0;
  position: absolute;
  top: -5000px;
  width: 100%;
  z-index: -1;
}

td:hover::after,
th:hover::after {
  background-color: #ffa;
}

body {
  padding: 40px;
}

@media screen and (max-width: 600px) {
  /* http://dbushell.com/demos/tables/rt_05-01-12.html */
  .contenttable {
    display: block;
    position: relative;
    width: 100%;
  }
  .contenttable thead {
    display: block;
    float: left;
  }
  .contenttable tbody {
    display: block;
    width: auto;
    position: relative;
    overflow-x: auto;
    white-space: nowrap;
  }
  .contenttable thead tr {
    display: block;
  }
  .contenttable th {
    display: block;
  }
  .contenttable tbody tr {
    display: inline-block;
    vertical-align: top;
  }
  .contenttable th,
  .contenttable td{
    display: block;
    min-height: 1.25em;
  }
  td:hover::after,
  thead th:not(:empty):hover::after,
  td:focus::after,
  thead th:not(:empty):focus::after {
    height: auto;
    left: 0;
    top: auto;
    width: 0;
  }
  td:hover::after,
  th:hover::after {
    background-color: inherit;
  }
}