Solved

Table display

Posted on 2013-11-09
4
120 Views
Last Modified: 2013-11-24
Im trying to get a table to layout and look good.

My first problem was to get the body scrolling, but not the table header, which after reading an article discovered setting the table to display:block; which works great, the problem is that the columns now get all messed up:-
table
So if I remove display:block; my columns width are fine, but then my scroll fails.

I thought I could set each columns width using nth-child, but this doesnt seem to work.

So my CSS code stands at:-
#openTickets {
      width: 900px;
      top: 30px;
      left:50px;
      position: absolute;
      border: thin solid #494ECC;
      text-align: left;
}

#openTickets thead {
  text-align: center;
  background-color: #aaa;
}

#openTickets tbody {
    background-color:#ddd;
      text-align: left;
      height:400px;
      overflow-y: auto;
}

#openTickets td {
  padding: 3px 10px;
  border: thin solid #494ECC;
}

#openTickets td:nth-clild(0) { width:500px; }
#openTickets td:nth-clild(1) { width:150px; }
#openTickets td:nth-clild(2) { width:150px; }
#openTickets td:nth-clild(3) { width:150px; }
#openTickets td:nth-clild(4) { width:150px; }
#openTickets td:nth-clild(5) { width:300px; }
#openTickets td:nth-clild(6) { width:150px; }

thead >tr, tbody {
  display: block; 
}

Open in new window


and my HTML code stands at:-
<table id="openTickets">
  <thead>
    <td>Ticket</td>
    <td>User</td>
    <td>Company</td>
    <td>Location</td>
    <td>Subject</td>
    <td>Age</td>
    <td>AssignedTo</td>
  </thead>
  <tbody>
          <tr>
            <td>0</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>1</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>2</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>3</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>4</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>5</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>6</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>7</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>8</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>9</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>10</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>11</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>12</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>13</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>14</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
          <tr>
            <td>15</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td><td>t</td>
          </tr>
            </tbody>
</table>

Open in new window



Can someone advise me please on what to do to keep my scroll bars working, and set the widths of the coloums right?

Thank you
0
Comment
Question by:tonelm54
  • 2
4 Comments
 
LVL 53

Expert Comment

by:COBOLdinosaur
ID: 39635779
Setting dimensions for table elements is always problem matic because the specifications will be ignore to conform to content rather than layout.  The best way to do a table with fixed heading is to not use a table but rather used divs sytled as table elements

Then you get the positive parts of tables without some of the negatives.

If that does no work for you then post a link to the page and I will see if there are other options available.

Cd&
0
 
LVL 17

Expert Comment

by:nanharbison
ID: 39638424
You have the width of the table set to 900px, and then the width of the columns add up to more than that, unless I am not interpreting your CSS correctly. I usually do the lazy thing and set the width of the columns right in the table html, which usually works, unless you have an error in your numbers for cell widths.
  <thead>
    <td width="150px">Ticket</td>....
But am I reading the CSS incorrectly?
0
 
LVL 43

Accepted Solution

by:
Chris Stanyon earned 500 total points
ID: 39638485
@nanharbison - the 'width' attribute for TD is deprecated in HTML 4.01 and not supported in HTML5 - you should switch to using CSS!
0
 
LVL 53

Expert Comment

by:COBOLdinosaur
ID: 39673342
@nanharbison,

Recommending the use of obsolete properties simply creates new or additional problems.  Most of the Experts on the site are trying to promote "best practice"; not quick hacks that  lead to pages that are doomed to fail at some point.

You will probably get called on it anytime you offer that kind of advice.

Cd&
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction If you're like most people, you have occasionally made a typographical error when you're entering information into an online form.  And to your consternation, the browser remembers the error, and offers to autocomplete your future entr…
This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
In this tutorial viewers will learn how add a scalable full-width header using CSS3. Create a new HTML document with an internal stylesheet. Set a tiled background.:  Create a new div and name it Header. Position it with position:absolute at the top…
In this tutorial viewers will learn how to embed custom externally-hosted Google Fonts using the Google Font API in CSS Go to the Google Fonts website at google.com/fonts: Browse or search based on font properties or name to find a suitable font for…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now