[2021 UPDATE]
As of 2021/01/13 Flexbox has 97% browser support and is a great option for making Leaflet responsive using the flex-grow property.
View a CodePen Demo here
It's set-up so that it will still render on browsers that don't support Flexbox just those users will have to scroll abit
¯\(ツ)/¯
============================================================
[OLD POST]
This worked for me.
Note: I wanted my map not to be 100% width on large screens so I added
.container{max-width:60em;} /* Remove for full screen */
HTML
<div id="main">
<div class="container fill">
<div id="map"></div>
</div>
</div>
CSS
#map
{
width: 100px;
height: 100px;
min-height: 100%;
min-width: 100%;
display: block;
}
html, body
{
height: 100%;
}
#frame{
height: 100%;
}
.fill
{
min-height: 100%;
height: 100%;
width: 100%;
max-width: 100%;
}
.container{
max-width: 60em;
padding: 0.2em;
}