Solution 1 :

Remove margin-top: 59vh from #map_div and add display: flex, flex-direction: column, and justify-content: flex-end to #outer

<style>
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    height: 100%;
    font-size: 1vw;
}

body {
    height: 100%;
}

#outer {
    border: 1px solid black;
    height: 90vh;
    width: 35%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

#map_div {
    border: 1px solid blue;
    height: 300px;
}
</style>

<!DOCTYPE html>
<html lang="en">  
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href = "style.css">
  <title>Document</title>
</head>
<body>
  <div id = "outer">
    <div id = "map_div"></div>
  </div>
</body>
</html>

Problem :

So I want to achieve the following which i drew:

enter image description here

and the green div is the outer div and inside the div, there is a div which i plan to use for a map. Now the problem I’m facing now is how to I place the div at the bottom of the outer div? I want it to be somehow locked in that position so when I resize the browser, it would stay at its current position and the map div won’t move around.

I tried using “margin-top: 59vh” but when i adjust the height of my browser it overflows and becomes weird:

enter image description here

Would appreciate some help on this.

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    height: 100%;
    font-size: 1vw;
}

body {
    height: 100%;
}

#outer {
    border: 1px solid black;
    height: 90vh;
    width: 35%;
}

#map_div {
    border: 1px solid blue;
    height: 300px;
    margin-top: 59vh;
}
<!DOCTYPE html>
<html lang="en">  
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href = "style.css">
  <title>Document</title>
</head>
<body>
  <div id = "outer">
    <div id = "map_div"></div>
  </div>
</body>
</html>

By