CSS:将 div 高度设置为 100% - 像素

Posted

技术标签:

【中文标题】CSS:将 div 高度设置为 100% - 像素【英文标题】:CSS: Set Div height to 100% - Pixels 【发布时间】:2010-11-24 21:23:23 【问题描述】:

我的页面上有一个超过 100 像素的标题(准确地说是 111 像素) 它下面的 div 需要延伸到视口的底部,就好像我已经将底部设置为 0px。问题在于我无法在 ie6 中指定顶部和底部(错误)。

我可以指定顶部:111px 或底部:0px,但我仍然需要正确的高度,即。 100% -111px,视视口大小而定。

似乎无法让表达式工作,因为这似乎是解决方案

这是我的 CSS 代码:

position: absolute; 
width: 200px; 
top: 111px; 
bottom: 0px;

有什么建议吗?

【问题讨论】:

我没有看到你想要达到的目标,你能粘贴代码吗?:) 位置:绝对;宽度:200px;顶部:111 像素;底部:0px;这适用于 ie8,这就是我想要的。但是 ie6 只需要您的第一个对齐方式(在这种情况下为顶部)。因此浏览器不会自动设置所需的高度。我的解决方案是设置 top: 111px 或 bottom:opx 然后分配所需的高度。如果有任何区别,这只需要对 Internet Explorer 6 以上(不是 firefox、opera 等)有效。 抱歉,不知道如何正确显示代码 内联代码,输入`。对于块代码(不是 cmets),每行缩进四个空格。 “回答你自己的问题”,这样下一个人就可以看到你做了什么。 【参考方案1】:

最好的方法是使用视口样式。它只是完成工作,不需要其他技术。

代码:

div
  height:100vh;
<div></div>

【讨论】:

像往常一样,在 IE 中使用时需要注意。 caniuse.com/#feat=viewport-units【参考方案2】:

我在 bodyhtml 标签中添加了 height 属性。

HTML:

<body>
<div id="wrapper">
 <div id="header">header</div>
 <div id="content">content</div>
</div>

CSS:

html, body

    height: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;

#wrapper

    height: 100%;
    min-height: 100%;

#header

    height: 111px;

【讨论】:

【参考方案3】:

或者,您可以只使用position:absolute

#content

    position:absolute;
    top: 111px;
    bottom: 0px;

但是,IE6 不喜欢顶部和底部声明。但是网络开发者不喜欢 IE6。

【讨论】:

这正是我所拥有的,正如你所提到的,IE6 不喜欢同时使用两者。我同意你的观点,但这就是客户想要的。必须编写 javascript 才能正确处理 topbottom 多个位置声明在任何浏览器上都不起作用 非常抱歉!你说得对。我在没有position: absolute 的情况下进行了快速测试。我的选票已锁定,该死的。有人支持这个人并纠正我的邪恶方式:) 哈哈哈哈哈哈哈哈哈。最佳评论:“IE6 不喜欢顶部和底部声明。但 Web 开发人员不喜欢 IE6。”男人哦男人。谢谢你让我开心。【参考方案4】:

现在有了 css3,你可以尝试使用 calc()

.main
  height: calc(100% - 111px);

看看这个答案: Div width 100% minus fixed amount of pixels

【讨论】:

【参考方案5】:

div
  height:100vh;
  background-color:gray;
&lt;div&gt;&lt;/div&gt;

【讨论】:

【参考方案6】:

div
  height:100vh;
&lt;div&gt;&lt;/div&gt;

【讨论】:

此方案不适用于所有浏览器【参考方案7】:

我猜你正在尝试获取sticky footer

【讨论】:

嗯,不完全是这样,但有点像这样。我有一个标题,所以我相应地调整了 css,但 div 太大了,仍然设置为 100%【参考方案8】:

当然是负边距!

HTML

<div id="header">
    <h1>Header Text</h1>
</div>
<div id="wrapper">
    <div id="content">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur 
        ullamcorper velit aliquam dolor dapibus interdum sed in dolor. Phasellus 
        vel quam et quam congue sodales.
    </div>
</div>

CSS

#header

    height: 111px;
    margin-top: 0px;

#wrapper

    margin-bottom: 0px;
    margin-top: -111px;
    height: 100%;
    position:relative;
    z-index:-1;

#content

    margin-top: 111px;
    padding: 0.5em;

【讨论】:

【参考方案9】:

100vh 对我有用,但起初我使用 javascript(实际上是 jQuery,但你可以调整它)来解决类似的问题。

HTML

<body>
  <div id="wrapper">
    <div id="header">header</div>
    <div id="content">content</div>
  </div>
</body>

js/jQuery

var innerWindowHeight = $(window).height();
var headerHeight = $("#header").height();
var contentHeight = innerWindowHeight - headerHeight;
$(".content").height(contentHeight + "px");

或者,如果你不想计算 headerHeight,你可以只使用 111px。

此外,您可能希望将其放入窗口调整大小事件中,以在例如窗口高度增加时重新运行脚本。

【讨论】:

以上是关于CSS:将 div 高度设置为 100% - 像素的主要内容,如果未能解决你的问题,请参考以下文章

CSS:将 div 高度设置为 100% - 像素

CSS:将 div 高度设置为 100% - 像素

CSS如何设置div高度100%减去nPx [重复]

div css布局网页如何实现网页自动适应屏幕高度和宽度

如何css宽度设置为包含内容,高度设置为100%?

css怎样才能设置高度为100%,就是里面的div跟着外面的大div增高。