Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Max-Height in Html Table

Tags:

html

css

I create a table, and I want it's height be 800px.

If it's overflow, I want to make Scroll Bar but the Titles does not scroll.

So I try to add this CSS:

overflow: scroll; max-height:800px; 

But it's not work for me. This is the entire html file. What is the problem?

CSS

table{     overflow: scroll;    text-align: center;    margin: auto;    max-height:800px; } table, td, th { border:1px solid green;  } th { background-color:green; color:white; } 

And HTML

<table >   <tr>    <th>field a</th>    <th>field b</th>    <th>field c</th>    <th>field e</th>   </tr>   <tr>    <td>3534534</td>    <td>עו"ש</td>    <td>6,463</td>    <td>4,000</td>   </tr>   <tr>    <td>3534534</td>    <td>עו"ש</td>    <td>6,463</td>    <td>4,000</td>   </tr> </table> 

Thanks!!!

like image 289
user2097810 Avatar asked Nov 29 '13 21:11

user2097810


People also ask

How do I fix the height of a table in HTML?

The height of rows 'tr' in a table can be fixed very easily. This can be done by adding the height attribute in the tr tag. If the height is not specified, the height of the row changes according to the content. The height can be specified either in pixels, or percentage.

Is there a max-height in CSS?

The max-height property in CSS is used to set the maximum height of a specified element. Authors may use any of the length values as long as they are a positive value. max-height overrides height, but min-height always overrides max-height .


Video Answer


2 Answers

You can wrap the table in a div and give the max-height and overflow: scroll to that div

<div class="pane">     <table>         <tr>             <th>field a</th>             <th>field b</th>             <th>field c</th>             <th>field e</th>         </tr>         <tr>             <td>3534534</td>             <td>עו"ש</td>             <td>6,463</td>             <td>4,000</td>         </tr>         ...     </table> </div> 
.pane {     display: inline-block;     overflow-y: scroll;     max-height:200px; } table {     text-align: center;     margin: auto; } 

JSFiddle

There's another solution at Pure CSS Scrollable Table with Fixed Header without a wrapper div, but with an additional thead and tbody around the rows. You set the thead and tbody to display: block and give a max-height and overflow-y to the tbody. This lets the header stay in place when scrolling the rows. But as always, it comes with a price tag. You have to specify the column widths, because the thead and tbody are out of sync due to the display: block

<table>     <thead>         <tr>             <th>field a</th>             <th>field b</th>             <th>field c</th>             <th>field e</th>         </tr>     </thead>     <tbody>         <tr>             <td>3534534</td>             <td>עו"ש</td>             <td>6,463</td>             <td>4,000</td>         </tr>         ...     </tbody> </table> 
thead {     display: block; } tbody {     display: block;     overflow-y: scroll;     max-height:200px; } thead th, tbody td {     width: 70px; } 

JSFiddle

Update:

In the source code of that site, there are comments about IE and IE6. It sets

thead tr {     position: relative } 

and defines the width of the table with

table {     float: left;     width: 740px } 

Wheter this is relevant for IE10, I don't know.

like image 103
Olaf Dietsche Avatar answered Sep 18 '22 14:09

Olaf Dietsche


Use another element to wrap the whole table, and give those properties to him:

#table-limiter { max-height:800px; overflow: scroll; } 

HTML example:

<div id="table-limiter">    <table>       ...    </table> </div> 

Styling table is, sometimes, a trouble :(

like image 27
Maloke Avatar answered Sep 16 '22 14:09

Maloke