依据浏览器窗口的大小自动填充剩余的空间

根据浏览器窗口的大小自动填充剩余的空间

<body style="height:100%">
    <div id="d1">
        <input type="text" value="hello" />
    </div>
    <div id="d2" style="height:200px;background-color:blue;"></div>
    <div id="d3" style="height:100%;background-color:red"></div>   
</body>


怎样根据当前浏览器窗口的大小用JS将d3这个DIV填充满剩余的空间?
------解决方案--------------------
<body style="height:100px;margin:0px">
    <div id="d1">
        <input type="text" value="hello" />
    </div>
    <div id="d2" style="height:200px;background-color:blue;"></div>
    <div id="d3" style="background-color:red"></div>  
</body>
<script>
    window.onload = function () {
        var css1 = document.compatMode == 'CSS1Compat';
        var h = document[css1 ? 'documentElement' : 'body'].clientHeight;
        var d1 = document.getElementById('d1'), d2 = document.getElementById('d2'), d3 = document.getElementById('d3')
        d3.style.height = h - d1.offsetHeight - d2.offsetHeight+'px';
    }
</script>