Margines wychodzi poza div, gdy granica jest usuwana

Pochodzę z rzeczywistego problemu z granicami i marginesem na mojej stronie. Zrobiłem ten przykład testu, który moim zdaniem działa trochę dziwnie:

<!DOCTYPE html>
<html>
    <head>
        <style>
            body {
                background-color:black;
            }

            .outer {
                width:100px;height:100px;

            }

            .inner {
                margin-top:40px;
                height:20px;
                border:1px solid red;
            }


            #outer-1 {
                background-color:blue;

                border-top:10px solid yellow; 
            }

            #outer-2 {
                background-color:green;

                border-top:none;
            }

            #sep {
                background-color:white;
            }

        </style>
    </head>
    <body>
        <div id="outer-1" class="outer">
            <div class="inner">
                CONTENT
            </div>
        </div>

        <div id="sep">TEST</div>

        <div id="outer-2" class="outer">
            <div class="inner">
                CONTENT
            </div>
        </div>  
    </body>
</html>

Dlaczego górny margines „.inner” przesuwa się „na zewnątrz”, gdy górna granica jest usuwana w # outer-2? Myślałem, że czerwona granica pozostanie w niebieskich i zielonych obszarach w tym samym miejscu? ale tak nie jest.

Czemu? i czy istnieje sposób, aby wyglądał tak, jak sobie wyobrażałem?

questionAnswers(4)

yourAnswerToTheQuestion