Bulma/Flexbox 页脚未粘在页面底部

Ele*_*all 1 css flexbox bulma

我正在使用 Bulma 作为我的 CSS 框架,使用 Vue 和 Laravel 制作一个应用程序。我想要一个页脚保留在页面底部,即使内容没有将其“推”到那里。目前我的自定义 CSS 中有这个:

body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

#app{
  flex:1;
}
Run Code Online (Sandbox Code Playgroud)

#app是我的默认 Blade 模板中的 div,我的应用程序被注入到其中:

<body>
    <div id="app">
        <index></index>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

这是我的主要 Vue 组件,其中注入了路由组件

<template>
    <div>
        <Navigation/>
        <router-view :key="$route.fullPath"></router-view>
        <footer class="footer">Test</footer>
    </div>
</template>
Run Code Online (Sandbox Code Playgroud)

当有足够的内容将页脚推到或超出底部时,这种方法效果很好。但如果没有,屏幕底部就会出现很大的间隙,并且页脚会被直接推到内容的底部。是什么赋予了?

Mic*_*l_B 5

Flex 属性仅在父元素和子元素之间起作用。除了孩子之外,没有任何遗产。所以如果你有这样的事情:

<body>
   <div id="app">
       <header></header>
       <main></main>
       <footer></footer>
   </div>
</body>
Run Code Online (Sandbox Code Playgroud)

。。。并且想要始终将页脚固定在底部,您需要这样的东西:

body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

#app {
  flex: 1;
  display: flex;
  flex-direction: column;
}

footer {
  margin-top: auto;
}
Run Code Online (Sandbox Code Playgroud)

有关 flex 属性范围的更多信息:

了解弹性自动边距: