提问者:小点点

为什么在两个不同的屏幕上,90%的div-height是不同的?


我想采取Div采取一个高度的整个屏幕,并有一个很好的框架周围,没有滚动。

因此,我有以下HTML。

<div class="take-page-height">
   <div class="welcome-div">
         <div class="col-md-12 center-text">
             <div>
                <h1>Hello</h1>
        </div>
    </div>
</div>

和以下CSS

.take-page-height {
  height: 100%;
  width: 100%;
  padding: 1.5%;
  position: fixed;
}

.welcome-div {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  word-wrap: break-word;
  background-color: $card-bg;
  background-clip: border-box;
}

当我降低外部Div的高度时,不同屏幕之间的高度不同。即使我用百分比。为什么会这样呢?

并且如何解决我的问题,div采取整个屏幕+我给它的填充和没有滚动?

亲切的问候


共3个答案

匿名用户

一个无需修改代码的简单修复方法是在css文件中设置

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

在不修改任何其他行的情况下修复此问题。另外,正如用户所说的,不需要使用。使用以下css代码实现了您的结果:

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

.take-page-height {
  height: 100vh;
  width: 100vw;
  padding: 1.5%;
}

.welcome-div {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  word-wrap: break-word;
  background-color: $card-bg;
}

匿名用户

若要使用完整的屏幕高度,请使用。若要使用全屏宽度,请使用:

主要的问题将是,它是一个明确的高度的内容区域。意味着衬垫,边距和边框会溢出它,默认情况下你会得到滚动条。

要解决这个问题,第一种方法应该是用重置默认正文边距。

但是,填充和边框仍然会导致溢出。不使用的简单解决方案是更改默认框行为。默认的框行为是:。如果将其更改为,则衬垫和边框将不再引起问题。

null

body {
  margin: 0;
}

.take-page-height {
  box-sizing: border-box;
  height: 100vh;
  width: 100vw;
  padding: 1.5%;
  background-color: red;
}

.welcome-div {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  word-wrap: break-word;
  background-color: green;
  background-clip: border-box;
}
<div class="take-page-height">
  <div class="welcome-div">
    <div class="col-md-12 center-text">
      <div>
        <h1>Hello</h1>
      </div>
    </div>
  </div>
</div>

匿名用户

如果您想要外部div的大小,整个屏幕那么。

.take-page-height {
  height: 100vh;
  width: 100vw;
  padding: 1.5%;
  position: fixed;
}

如果您想离开该边界,则可以尝试以下操作:

.take-page-height {
  height: calc(100vh - 1.5%);
  width: calc(100vw - 1.5%);
  padding: 1.5%;
  position: fixed;
}

但老实说,更好的方法是做到以下几点。

.take-page-height {
  height: 100vh;
  width: 100vw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.welcome-div {
  width: 98.5%;
  height: 98.5%;
}