Кажется, я нашёл решение Вашей проблемы. Оно заключается в задании свойств top, left, right и bottom в 0. В IE6 работать не будет, потому что он не понимает 2 последние свойства. По-умолчанию у DIV свойство display установлено в block, но я предпочитаю явно его указывать, для лучшей читабельности.
Родительский контейнер должен иметь явно заданное свойство position (любое значение).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <style> .inner { display: block; position:absolute; height:auto; bottom:0; top:0; left:0; right:0; margin-top:20px; margin-bottom:20px; margin-rightpx; margin-leftpx; background-color: green; } .outer { display: block; width:500px; height: 300px; position: absolute; background: aqua; } </style> </head> <body> <div class="outer"> <div class="inner"> </div> </div> </body> </html>