3

Check the snippet bellow.

html, body {
    height: 100%;
    margin: 0;
}


.flex {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.body {
    height: 100%;
}

nav {
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: row;
}

.holder {
    display: flex;
    flex-direction: column;
    height: initial !important;
    flex: 1;
}

.wrapper {

    flex: 1;
    display: flex;
    min-height: 0;
    overflow-y: auto;
}
<div class="body">
    <div class="flex"><!---->
        <nav style="height: 40px; background-color: blue"></nav>
        <!---->
        <div class="holder body">
            <div class="wrapper">
                <div>
                    <div class="holder">

                        <div>
                            <br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br>v
                        </div>
                    </div>


                </div>


            </div>
            <div>
                <div style="height: 60px; background-color: red"></div>
            </div>
        </div>
    </div>
</div>

If you run this on chrome 71-, snippet above doesn't have body scroll, only .wrapper is scrollable. But the same page on chrome 72+ has the body scroll.

EDIT Origin question has also issues with quirks mode. Meaning without <!doctype html> this issue worked ok even on chrome 72+.

deathangel908
  • 8,601
  • 8
  • 47
  • 81

1 Answers1

3

On chrome 72+ you need to set min-height on .holder. This is not required on versions before 72.

html, body {
    height: 100%;
    margin: 0;
}


.flex {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.body {
    height: 100%;
}

nav {
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: row;
}

.holder {
    display: flex;
    flex-direction: column;
    height: initial !important;
    flex: 1;
    min-height: 0;
}

.wrapper {

    flex: 1;
    display: flex;
    min-height: 0;
    overflow-y: auto;
}
<div class="body">
    <div class="flex"><!---->
        <nav style="height: 40px; background-color: blue"></nav>
        <!---->
        <div class="holder body">
            <div class="wrapper">
                <div>
                    <div class="holder">

                        <div>
                            <br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>v<br><br><br><br><br><br><br><br><br><br><br><br>v<br><br>v
                        </div>
                    </div>


                </div>


            </div>
            <div>
                <div style="height: 60px; background-color: red"></div>
            </div>
        </div>
    </div>
</div>
deathangel908
  • 8,601
  • 8
  • 47
  • 81
  • 1
    Do you know if there's any documentation about this Chrome 72 change? Or a Chrome bug? I took a look, and I didn't see this mentioned in the changes to Chrome 72. – Dan Cron Feb 04 '19 at 20:34
  • I see this Chromium bug https://bugs.chromium.org/p/chromium/issues/detail?id=927066 which refers to this discussion https://www.reddit.com/r/webdev/comments/alg8az/anyone_experiencing_issues_with_flexbox_and/ – Dan Cron Feb 04 '19 at 21:07