How to make a div 100% of page (not screen) height?
css, html
Solution
If you change `position: absolute` to `position: fixed` it will work in all browsers except IE6. This fixes the div to the viewport, so it doesn't move out of view when scrolling.
You can use `$(document).height()` in jQuery to make it work in IE6 too. E.g.
$('.screenMask').height($(document).height());
That would obviously fix it for all the other browsers too, but I prefer not using JavaScript if I can avoid it. You'd need to do the same thing for the width too, actually, in case there's any horizontal scrolling.
There are plenty of hacks around to make fixed positioning work in IE6 too, but they tend to either impose some other limitations on your CSS, or use JavaScript, so they're likely not worth the trouble.
Also, I presume you have only one of these masks, so I'd suggest using an ID for it instead of a class.
Problem
I'm trying to use CSS to create a 'greyed out' effect on my page while a loading box is displayed in the foreground while the application is working. I've done this by creating a 100% height/width, translucent black div which has its visibility toggled on/off via javascript. I thought this would be simple enough; however, when the page content expands to the point that the screen scrolls, scrolling to the foot of the page reveals a portion which is not greyed out. In other words, the 100% in the div's height seems to be applying to the browser viewport size, not the actual page size. How can I make the div expand to cover the whole of the page's content? I've tried using JQuery .css('height', '100%') before toggling it's visibility on but this doesn't change anything. This is the CSS of the div in question: ``` div.screenMask { position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 1000; background-color: #000000; opacity: 0.7; filter: alpha(opacity=70); visibility: hidden; } ``` Thanks.