【问题标题】:Responsive height of div issuediv问题的响应高度
【发布时间】:2016-09-28 14:16:11
【问题描述】:

一个例子胜过一千个单词,所以你去吧:

https://jsfiddle.net/jesuxapo/os53cyc1/

如您所见,高度是响应式的,但不是完全响应式的。问题是<div id="k">150px 的固定height。尝试使用它,我想你会明白我的意思。我想以某种方式摆脱这个“问题”。

我可以使用css3calc(),但它不是跨浏览器(尤其是android 和IE8-9)。

也许还有其他使用 html 和 css 语言的解决方案?

【问题讨论】:

    标签: html css responsive-design height


    【解决方案1】:

    您可以使用 display:table 属性(IE8 及更高版本):https://jsfiddle.net/os53cyc1/1/

    如果内容加起来超过 100vh,它会增长

    html, body {
      padding: 0;
      margin: 0;
      height: 100%;
      background: #333;
      font-weight: bold;
      color: #fff;
    }
    body {
      display:table;
      width:100%;
    }
    body>div {
      display:table-row;
    }
    div {
      border: solid 2px #FFFF00;
    }
    div#a {
      position: relative;
      background: #800000;
      width: 100%;
      height: 100%;
    }
    div#b {
      position: absolute;
      top: 0;
    }
    div#c {
      position: absolute;
      bottom: 0;
    }
    div#k {
      height: 150px;
      background: #008000;
    }
    <div id="k">
    Hello, I'm K and I just broke your code
    </div>
    <div id="a"><br><br><br><br>
    This is relative div with height of 100% and max-height of 500px
    <div id="b">
    This div is aligned to the top of the Red div
    </div>
    <div id="c">
    This div aligned to bottom of the Red div
    </div>
    </div>

    【讨论】:

    • 谢谢,但也许有更好的方法而不使用表格?我真的不喜欢它。
    • @jesuxapo display 还有其他选项(但 flex 不适用于 IE8),并且不要混合 HTML 和 CSS,这些是带显示的 div 而不是 HTML 表格。 (li 是默认的 display:list-item , div 是 block , span 是 inline ...但这只是样式而不是语义
    猜你喜欢
    • 2020-03-04
    • 2016-07-28
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    相关资源
    最近更新 更多