【问题标题】:How to make the child fit 100% of parent height with fixed view?如何通过固定视图使孩子适合 100% 的父母身高?
【发布时间】:2019-02-25 20:26:41
【问题描述】:

我有一个固定高度为 20 厘米的 div。现在,内页需要有内边距,并且绝对位置需要尊重该内边距。

我怎样才能让红框总是填满剩下的?无论如何,位置绝对项都需要始终位于底部。

它需要有一个类,而不是 10 个具有 10 个不同高度的类,如 58%、45% 等......

如果您检查代码笔:https://codepen.io/Aurelian/pen/MqxvgW

这是 HTML:

<div class="page">

   <div class="image"></div>

   <div class="page-inner-default">
      <p>hello</p>
      <span class="pos-bot">Hi</span>
   </div>

</div>

<div class="page">

   <div class="image"></div>

   <h1>Heading</h1>

   <div class="page-inner-default">
      <p>hello</p>
     <span class="pos-bot">Hi</span>
   </div>

</div>

这是 CSS:

*, *:before, *:after {
  box-sizing: border-box;
}

body {
   background: grey;
   box-sizing: border-box;
}

.image {
   height: 250px;
   border: 1px solid green;
   background: green;;
}

.pos-bot {
   position: absolute;
   bottom: 0;
}

.page {
   height: 20cm;
   background-color: white;
   width: 16cm;
   margin: 50px auto;
   display: inline-block;
   vertical-align: top;
   position: relative;
}

.page-inner-default {
   position: relative;
   padding: 50px;
   height: 100%;
      border: 1px solid red;
}

.image {

}

【问题讨论】:

  • 你能澄清你的问题吗?比如密码笔上的那个红框?你能为给你带来问题的 div 提供一个类名吗?
  • 20cm?为什么不是 em 空格或 px?
  • codepen 上只有一个红框重复了两次。上面有红色框的类应该填满剩余的空间,而不是像现在这样过去。
  • 因为我做的是印刷版,所以需要在CM中。
  • 你的“红框”从屏幕上消失了……这是你想要解决的问题吗?

标签: html css


【解决方案1】:

给出 .page{overflow:hidden} 并从 .page-inner-default 中删除相对位置,因此 .pos-bot 将定位到最近的相对位置,在这种情况下它是 .page div

*, *:before, *:after {
  box-sizing: border-box;
}

body {
   background: grey;
   box-sizing: border-box;
}

.image {
   height: 250px;
   border: 1px solid green;
   background: green;;
}

.pos-bot {
   position: absolute;
   bottom: 0;
}

.page {
  overflow: hidden;
   height: 20cm;
   background-color: white;
   width: 16cm;
   margin: 50px auto;
   display: inline-block;
   vertical-align: top;
   position: relative;
}

.page-inner-default {
   padding: 50px;
   min-height: 100%;
      border: 1px solid red;
}
    <div class="page">

     <div class="image"></div>

     <div class="page-inner-default">
        <p>hello</p>
        <span class="pos-bot">Hi</span>
     </div>

  </div>

  <div class="page">

     <div class="image"></div>

     <h1>Heading</h1>

     <div class="page-inner-default">
        <p>hello</p>
       <span class="pos-bot">Hi</span>
     </div>

  </div>

【讨论】:

  • 欣赏答案,但是当底部有填充时溢出将无法正常工作,但需要在此处添加另一个 div 并且无法正常工作.. 我正在寻找一个干净的解决方案,就像您可以使用 flexbox 一样。溢出无关紧要,我已经在我的项目中得到了它。但是盒子需要尊重填充,这意味着 100% 需要对容器是动态的。溢出隐藏只是隐藏它,并不能解决问题。哇!
猜你喜欢
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 2012-04-22
  • 2017-12-05
相关资源
最近更新 更多