【问题标题】:div height fill rest of the white spacediv 高度填充剩余的空白区域
【发布时间】:2023-03-21 16:51:01
【问题描述】:

我正在尝试使我的橙色 div 获得所有高度的空白。我使用 1920x1080 显示器。当我在我的页面中打开底部代码时,我在红色、蓝色和绿色 div 下有空白区域。我想要橙色 div 将我的红色、蓝色、绿色 div 向下移动并填充它们下方的空白区域。

这个想法是网站自动填充浏览器窗口而没有滚动条。

我尝试写 100% 而不是 700px,但是当我的属性为 100% 时,橙色 div 消失了。

谁能告诉我为什么会这样,我的错误在哪里,我该如何防止它。

还有其他方法可以为我的红色、蓝色和绿色 div 提供相等的空间吗?我计算出 100% 的页面除以 3 的周期为 33.3333。这就是为什么我将宽度设置为 33.33% 但它并没有完全填满页面。

.wrapper{
    position: relative;
}
.pink{
   background-color: pink;
   height: 100px; width: 100%;
   position: relative;
}
.orange{
   background-color: orange;
   height: 700px; width: 100%;
   position: relative;
   margin: 0px 0px 0px 0px;
}


.red{
   background-color: red;
   height: 300px; width: 33.33%;
   position: relative;
    float: left;
}
.blue{
   background-color: blue;
   height: 300px; width: 33.33%;
   position: relative;
    float: left;
}
.green{
   background-color: green;
   height: 300px; width: 33.33%;
   position: relative;
    float: left;
}
<div class="wrapper">
    <div class="pink"></div>
    <div class="orange"></div>
    <div class="red"></div><div class="blue"></div><div class="green"></div>
</div>

【问题讨论】:

  • 你是指背景中的空白吗?
  • 你的问题不清楚
  • 你可以通过flexbox来均衡红蓝绿的宽度。
  • @dreamhunter 你想提供什么信息来让我的问题更清楚?

标签: html css


【解决方案1】:

将 height:100% 赋予父 div、body 和 html

body, html{
  height:100%;
}
.wrapper{
    position: relative;
    height:100%;
}
.orange{
   background-color: orange;
   height: 100%; width: 100%;
   position: relative;
   margin: 0px 0px 0px 0px;
}

请查看此fiddle

【讨论】:

  • 橙色 div 太高并出现滚动条。我想在没有滚动条的情况下填充浏览器窗口。
  • 用jquery好吗?
  • 我认为对于这么简单的事情来说它会变得太复杂了。
【解决方案2】:

这是你的意思吗?

我用过

display: table
display: table-row
display: table-cell

橙色 div 现在将填充窗口的剩余高度。

Fiddle

编辑:我更新了小提琴。稍微整理了一下代码。

【讨论】:

  • 是的,这就是我想做的。从哪里可以阅读更多信息,如何制作这种类型的布局?因为我第一次看到“显示:表格行/单元格”
  • 老实说,我不能从一个地方告诉你它。随着时间的推移,我从经验中学到了东西。
  • 你能推荐我一些不错的书面书籍和网站、博客、播客吗?
  • 我不时访问designernews.co。他们展示网站,我通常会检查他们,看看他们如何做我不熟悉的效果。
【解决方案3】:

将此包含在您的style

body{
    margin:0;
    padding:0;
} 

【讨论】:

    【解决方案4】:

    orangepink 包装在与最后三个不同的单独 div 中,并在该 div 上使用 display:flex;

    您可以通过对父 div 使用 display:flex 对子 div 使用 flex:1 来制作三个 div eualwidth。你不一定非得使用width:33.33%;

    html,body{
      width:100%;
      height:100%;
      margin:0;
      padding:0;
    }
    .wrapper{
      position: relative;
      margin:0;
      padding:0;
      display:flex;
      min-height:100vh;
      flex-direction:column;
    }
    .pink{
       background-color: pink;
       height: 50px;
       width: 100%;
       position: relative;
      flex-shrink:0;
    }
    .orange{
       background-color: orange;
       height:100%;
      width: 100%;
       position: relative;
       margin: 0px 0px 0px 0px;
      flex-shrink:0;
      flex-grow:1;
    }
    .wrapper2{
      position: relative;
      margin:0;
      padding:0;
      flex-shrink:0;
      width:100%;
      height:100px;
      display:flex;
      flex-direction:row;
      justify-content: space-between;
    }
    .red{
       background-color: red;
       height:100%;
       position: relative;
       float: left;
       flex: 1;
    }
    .blue{
       background-color: blue;
       height:100%;
    flex: 1;   position: relative;
        float: left;
    }
    .green{
       background-color: green;
       height:100%;
    flex: 1;   position: relative;
        float: left;
    }
    <div class="wrapper">
      <div class="pink"></div>
      <div class="orange"></div>
    <div class="wrapper2">
      <div class="red"></div>
      <div class="blue"></div>
      <div class="green"></div>
    </div>
      </div>

    【讨论】:

    • @ZzozZ 我认为这就是你对橙色的意思,但我仍然不确定最后三个(红色、绿色、蓝色)。如果你能解释一下这些应该是什么样的。
    • 它是上下滚动条。我想让 div 填充没有滚动条的浏览器窗口。
    • 好的。现在试试。 wrapper 具有三个垂直部分:pinkorangewrapper2。而wrapper2具有三个水平分区redbluegreen
    • 现在wrapper2pink 具有固定高度,但是,无论屏幕大小orange 将填满屏幕的其余部分,而不会出现任何scollbar。除非有太多内容无法显示在屏幕上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多