无法在轮播中使用calc来调整图像大小

时间:2015-03-29 00:12:02

标签: css angularjs css3 carousel angular-ui-bootstrap

我希望这是一个简单的答案,我只是忽略了。我一直在玩ui-bootstrap carousel指令,并希望动态调整大小以填充我的页眉和页脚之间的空间。

我的页眉和页脚是每个高度为70px的div。旋转木马工作得很好,当我让它做它自己的东西,然后插入图像。但是图像相当大,并不是完全相同的大小。我想也许这是img标签的问题所以我将其更改为div并将图像设置为每个图像的背景,高度设置为calc(100% - 70px - 70px)。然而,div似乎永远不会得到计算出的高度(它们的高度始终为0)。

在线搜索后,我已将htmlbody标记设置为height: 100%,因此不存在问题。

鉴于它有点难以解释,请参考 this plunkr

1 个答案:

答案 0 :(得分:1)

给定百分比的高度仅在父元素也具有明确的高度设置时才有效 - 您在此处没有,因此无论是在calc()还是height: x%中使用它都无法使用直接

但是你可以使用calc(100vh - 140px),如果你对limited support in older browsers¹好的话。 100vh是视口高度的100%,但不需要在html元素之前的所有父元素上设置高度(因为height:100%需要达到相同的高度的东西)。


¹请注意,caniuse中的已知问题提到“Safari& amp; iOS Safari(6和7)都不支持calc()中的视口单元。“根据您是否需要这些单元,可能会造成交易破坏。在这种情况下,您可以尝试使用绝对(或固定)定位(每个topbottom 70px)作为轮播容器。这样,它将再次具有定义的高度,并且子元素的100%应该起作用。