CopyPastor

Detecting plagiarism made easy.

Score: 1; Reported for: Exact paragraph match Open both answers

Possible Plagiarism

Plagiarized on 2018-10-04
by babar junaid

Original Post

Original - Posted on 2013-09-17
by avrahamcool



            
Present in both answers; Present only in the new answer; Present only in the old answer;

This is not an easy one. I've come up with a Script solution. (I don't think this can be done using pure CSS)
The HTML stays the same as you posted, the CSS changes a little bit, JQuery code added.
Here it is [Working Fiddle][1] .
jquery for doing your work you want.
$(document).ready(function () { setTableBody(); $(window).resize(setTableBody); $(".table-body").scroll(function () { $(".table-header").offset({ left: -1*this.scrollLeft }); }); }); function setTableBody() { $(".table-body").height($(".inner-container").height() - $(".table-header").height()); }
it completely solves your problem. I hope it helps you

[1]: http://jsfiddle.net/avrahamcool/eZXtq/
This is not an easy one. I've come up with a Script solution. (I don't think this can be done using pure CSS)
the **HTML** stays the same as you posted, the **CSS** changes a little bit, **JQuery** code added.
[**Working Fiddle**](http://jsfiddle.net/avrahamcool/eZXtq/) *Tested on:* IE10, IE9, IE8, FF, Chrome
BTW: if you have unique elements, why don't you use id's instead of classes? I think it gives a better selector performance.
**Explanation** of how it works: `inner-container` will span the entire space of the `outer-container` (so basically, he's not needed) but I left him there, so you wont need to change you DOM.
the `table-header` is relatively positioned, without a scroll (`overflow: hidden`), we will handle his scroll later.
the `table-body` have to span the rest of the `inner-container` height, so I used a script to determine what height to fix him. (it changes dynamically when you re-size the window) without a fixed height, the scroll wont appear, because the div will just grow large instead.. notice that this part can be done without script, if you fix the header height and use CSS3 (as shown in the end of the answer)
now it's just a matter of moving the header along with the body each time we scroll. this is done by a function assigned to the `scroll` event.

**CSS** (some of it was copied from your style)
* { padding: 0; margin: 0; } body { height: 100%; width: 100%; } table { border-collapse: collapse; /* make simple 1px lines borders if border defined */ } .outer-container { background-color: #ccc; position: absolute; top:0; left: 0; right: 300px; bottom: 40px; } .inner-container { height: 100%; overflow: hidden; } .table-header { position: relative; } .table-body { overflow: auto; } .header-cell { background-color: yellow; text-align: left; height: 40px; } .body-cell { background-color: blue; text-align: left; } .col1, .col3, .col4, .col5 { width:120px; min-width: 120px; } .col2 { min-width: 300px; }
**JQuery**
$(document).ready(function () { setTableBody(); $(window).resize(setTableBody); $(".table-body").scroll(function () { $(".table-header").offset({ left: -1*this.scrollLeft }); }); }); function setTableBody() { $(".table-body").height($(".inner-container").height() - $(".table-header").height()); }
If you don't care about fixing the header height (I saw that you fixed the cell's height in your CSS), some of the Script can be skiped if you use CSS3 :[**Shorter Fiddle**](http://jsfiddle.net/avrahamcool/eZXtq/1/) (this will not work on IE8)

        
Present in both answers; Present only in the new answer; Present only in the old answer;