Map에 넘겨주는 container가 되는 HTMLElement의 스타일이 의도대로 먹혀있지 않은 상태에서
Map 객체를 선언하고 인스턴스를 만들게 되면
그 시점의 container 스타일대로 영역을 계산하여 지도가 그려지게 됩니다.
이후에 container에 스타일을 주어 다른 영역을 가지게 된다면 (그게 의도되었든 그렇지 않았든)
API의 내부에서는 container의 스타일이 바뀌었다는 것을 모르기 때문에
처음 그려진 그대로를 보여주게 될 것이고
그 결과 화면만을 보면 마치 그려지다 만 것처럼 보여지는 것이죠.
보통 브라우저의 트리구축 => 레이아웃 포지셔닝 => 페인팅 과정에서 의도하지 않은 동작이 순식간에 일어나기에 해결법을 찾기가 힘듭니다.
그래서 취하신 방법대로 container에 inline으로 스타일을 주는 것도 한 가지 해결책이라 생각합니다. ^^;
일반적으로 이렇게 동적으로 스타일을 변경할 경우,
Map객체의 메소드 중 Map.relayout()을 호출하여
지도 container의 영역을 재계산하도록 명령할 수 있습니다.