CSS使100vh的填充工作准确无误

Jör*_*use 3 css padding viewport

我正在使用css类将高度设置为使用的完整视口高度

.fullheight { min-height: 100vh }
Run Code Online (Sandbox Code Playgroud)

但是,页面顶部有一个导航栏,我想使用填充来为其保留空间

.padding { padding-top: 55px }
Run Code Online (Sandbox Code Playgroud)

现在,我将div的格式设置为:

<div class="fullheight padding"> </div>
Run Code Online (Sandbox Code Playgroud)

填充效果很好,但div的高度现在当然比我的视口大55px。由于我使用了不同的填充(取决于导航栏的形状),因此我正在寻找一种解决方案,将div的总高度保持在100vh,而与使用其他类添加的填充无关。可能?

Wai*_*mal 6

您需要使用box-sizing: border-boxdiv的总宽度中包括填充。因此,您的代码将如下所示:

的HTML

<div class="fullheight padding"> </div>
Run Code Online (Sandbox Code Playgroud)

的CSS

.fullheight {
  min-height:         55px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing:    border-box;
  -ms-box-sizing:     border-box;
  -o-box-sizing:      border-box;
  box-sizing:         border-box;
}

.padding {
  padding-top: 55px;
}
Run Code Online (Sandbox Code Playgroud)