vuvu
vuvu

Reputation: 5328

How to align table header with table content?

Because I'm working with anchor tags I built a table with divs. that are displayed as table. Unfortunately the header is not aligned with the content. What is wrong?

jsfiddle

HTML

<div class="compare-table">
            <div class="row">
                <div class="tablehead">1 header</div>
                <div class="tablehead">2 header</div>
                <div class="tablehead">3 header</div>
                <div class="tablehead">4 header</div>
                <div class="tablehead">5 header</div>
            </div>
        </div>
   <div class="compare-table">                
            <a >
                <div class="cell">my value 1</div>
                <div class="cell">my value 2</div>
                <div class="cell">my value 3</div>
                <div class="cell">my value 4</div>
                <div class="cell">my value 5</div>
            </a>
</div>

Upvotes: 1

Views: 114

Answers (2)

Wavemaster
Wavemaster

Reputation: 1814

You are opening a new table for your content with compare-table.

Use a new class="row" instead. See the snippet.

.compare-table {
  display: table;
  width: 100%;
  max-width: 1000px;
  padding: 0;
  margin: 0 auto;
  border: none;
  border-collapse: collapse;
  border-spacing: 0;
}
.tablehead {
  display: table-cell;
  padding: 26px 0 26px 38px;
  background-color: white;
  text-align: left;
  font-size: 13px;
  color: #9b9b9b;
  font-weight: 400;
  font-style: normal;
  text-transform: uppercase;
}
.cell {
  display: table-cell;
  padding: 32px 0 32px 38px;
  color: #9b9b9b;
  font-weight: 400;
  font-style: normal;
}
.compare-table .row .cell:first-child {
  color: #003668;
  font-weight: 900;
}
.row {
  display: table-row;
  border-bottom: solid 1px #d9d9d9;
  cursor: pointer;
}
<div class="compare-table">
  <div class="row">
    <div class="tablehead">1 header</div>
    <div class="tablehead">2 header</div>
    <div class="tablehead">3 header</div>
    <div class="tablehead">4 header</div>
    <div class="tablehead">5 header</div>
  </div>
  <div class="row">
    <div class="cell"><a>link goes here</a>
    </div>
    <div class="cell">my value 2</div>
    <div class="cell">my value 3</div>
    <div class="cell">my value 4</div>
    <div class="cell">my value 5</div>
  </div>
</div>

Additionally: you should use the <a> inside the <div class="cell"> if you want a link.

Upvotes: 4

G-Cyrillus
G-Cyrillus

Reputation: 105893

Your rows must belong to the same parent displayed as table : http://jsfiddle.net/95rf60r8/2/

<div class="compare-table">
            <div class="row">
                <div class="tablehead">1 header</div>
                <div class="tablehead">2 header</div>
                <div class="tablehead">3 header</div>
                <div class="tablehead">4 header</div>
                <div class="tablehead">5 header</div>
            </div>

            <a class="row">
                <div class="cell">my value 1</div>
                <div class="cell">my value 2</div>
                <div class="cell">my value 3</div>
                <div class="cell">my value 4</div>
                <div class="cell">my value 5</div>
            </a>
</div>

Upvotes: 5

Related Questions