如何使用顺风CSS填充视口的高度

ben*_*r78 4 css flexbox tailwind-css

我只是在尝试Tailwind CSS,想知道如何填充视口的高度。

从文档中获取此示例HTML

<div class="flex items-stretch bg-grey-lighter">
    <div class="flex-1 text-grey-darker text-center bg-grey-light px-4 py-2 m-2">1</div>
    <div class="flex-1 text-grey-darker text-center bg-grey-light px-4 py-2 m-2">2</div>
    <div class="flex-1 text-grey-darker text-center bg-grey-light px-4 py-2 m-2">3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

如何使其延伸到屏幕底部?

gos*_*tsu 35

您可以添加min-h-screen到parent <div>,这将填充视点的高度。

不同之处h-screen在于它会延伸到屏幕上。当屏幕很小并且内容充满滚动条时,这会很有帮助。在这种情况下,背景将不会填充向上滚动部分的其余部分。

 <div class="flex items-stretch bg-grey-lighter min-h-screen">
    <div class="flex-1 text-grey-darker text-center bg-grey-light px-4 py-2 m-2">1</div>
    <div class="flex-1 text-grey-darker text-center bg-grey-light px-4 py-2 m-2">2</div>
    <div class="flex-1 text-grey-darker text-center bg-grey-light px-4 py-2 m-2">3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

链接到顺风游戏中的一些片段(添加了背景颜色示例以澄清):https://play.tai​​lwindcss.com/8Qd822yY4w


Jon*_*lez 14

我正在使用 NextJS + tailwindcss。NextJS 添加了一个<div id="__next">,所以这就是我的global.css

@tailwind base;
@tailwind components;
@tailwind utilities;
html {
  @apply h-full;
}
body {
  @apply h-full;
}
div#__next {
  @apply h-full;
}
main {
  @apply h-full;
}
Run Code Online (Sandbox Code Playgroud)

在我的页面中我有

<main className="bg-gradient-to-br from-indigo-500 via-purple-500 to-pink-500">
  ...
</main>
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以使用Tailwind CSS.h-screen类。

  • 您确定是指“h-screen”吗? (4认同)

Sim*_*lli 7

我知道这是一篇旧帖子,但我现在找到了它,当我试图在内容太少而无法填充屏幕时将背景颜色拉伸到屏幕大小,并避免在内容太少时背景颜色突然停止内容更多地取决于屏幕的大小(这种情况发生在 h 屏幕上)。我使用 min-h-screen 解决了这个问题。


Nit*_*hav 5

有一个名为顺风的类.h-screen,可以转换为height:100vh;css。这也应该起作用。有关更多详细信息,请参阅官方Tailwind文档

  • 获取`height:100vh 是错误的;`你必须使用`h-screen` 而不是`h-full` (2认同)
  • 我认为值得注意的是,“.h-full”仅在定义了父级元素高度的情况下才有效。例如:`&lt;div class="h-56 bg-yellow-300"&gt; &lt;div class="h-full bg-white"&gt;这将完成工作&lt;/div&gt; &lt;/div&gt;` 通过不定义高度,这不起作用:`&lt;div class="bg-yellow-300"&gt; &lt;div class="h-full bg-white"&gt;这不会起作用&lt;/div&gt; &lt;/div&gt;` (2认同)

小智 1

当body的内容太少而无法填满整个屏幕时,我会使用flexbox来垂直拉伸较小的div。

确保body和父div有100%的高度,并使用flex box作为列并添加flex-basis以垂直且均匀地分布。

html, body {height: 100%;}

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

.flex-1 {
/* or flex-grow: 1; */
flex-basis: 33.33%;
}
Run Code Online (Sandbox Code Playgroud)