Solved

Table display

Posted on 2013-11-09
4
121 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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

"I want to put my photos online, but I don't want them stolen.  What settings should I use?" When You Put Photos Online First and foremost, any digital file published on the WWW can be copied, stored, modified, retransmitted, etc.  Remember Naps…
CSS3 Custom checkboxes This article shows how to style the checkbox form element using only CSS. Works in: Chrome, FF, Safari, Opera, IE9+ Uses modernizr.js to check for :checked pseudo class, falling back to plain old checkboxes (IE8 and bel…
In this tutorial viewers will learn how to position overlapping items using z-index in CSS. They will also learn the restrictions on the z-index property.  Create a new HTML document with an internal stylesheet.: Create a div in CSS and name it Red.…
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…

777 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