[ATUALIZAÇÃO 2020]
A partir de 2020/02/23, o Flexbox possui 95% de suporte ao navegador e é uma ótima opção para tornar o Leaflet responsivo usando a propriedade flex-grow.
Veja uma demonstração do CodePen aqui
É configurado para que ainda seja renderizado em navegadores que não suportam o Flexbox, apenas os usuários terão que rolar um pouco
¯ \ _ (ツ) _ / ¯
==================================================== ==========
[POST ANTIGO]
Isso funcionou para mim.
Nota: queria que meu mapa não tivesse 100% de largura em telas grandes, então adicionei
.container{max-width:60em;} /* Remove for full screen */
HTML
<div id="map-holder">
<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%;
}
#map-holder{
height: 100%;
}
.fill
{
min-height: 100%;
height: 100%;
width: 100%;
max-width: 100%;
}
.container{
max-width:60em;
padding: 0.2em;
}