CSS calc()函数

时间:2017-06-13 10:36:19

标签: css calc

我使用的是最新版本的Chrome,但在使用CSS calc()函数时,Dev Tools中出现“无效属性”错误。

我以前从来没有真正使用它,所以我可能在这里做错了,虽然我看不清楚。希望有人可以帮我解决这个问题。

这是我的代码。

padding-top: calc(980px / 1980px) * 100;

这用于计算背景图像上的填充顶部,以便在响应式背景图像上具有16:9的比例。

答案是49.49%。

我的css的这个特定部分的其余代码如下所示,以便CSS能够解决这个问题。

.hero{
/** Height 980px / Width 1980px * 100 -- Keeps image aspect at 16:9 **/
padding-top: calc(( 980px / 1980px ) * 100);

max-width:1980px;
background:url('images/default-bg.jpg') no-repeat center center #fff;
background-size:cover;

}

希望这是有道理的。我看看我可以使用它似乎不是一个不使用供应商前缀的问题。

另一件需要注意的事情是我正在使用SCSS和Scout App。我应该只使用SCSS计算来做这件事吗?

只是想使用这个css函数,因为我之前从未使用过它。

由于 丹

5 个答案:

答案 0 :(得分:0)

您不能按单位除以numbers

答案 1 :(得分:0)

您正在使用

padding-top: calc(980px / 1980px) * 100);

使用以下

padding-top: calc(980px / 1980 * 100);

<强> calc guide

发布工作示例

.box {
  width:500px;
  height:500px;
  background:tomato;
  padding-top: calc(980px / 1980 * 100);
}
<div class="box">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque molestiae, quos mollitia dolorum id eaque in repellendus? Quae itaque numquam ipsa quasi eos, ea ullam at vero perspiciatis velit? Nesciunt.
</p>
</div>

答案 2 :(得分:0)

你可以得到你想要的东西......

<body onload>

答案 3 :(得分:0)

您根本不需要使用px作为单位。除px / px将导致无单位,因此没有必要将其放入计算中。简单地说:

padding-top: calc(980 / 1980 * 100%);

我刚测试过,它在Chrome中运行良好。

答案 4 :(得分:0)

即使 calc()功能允许使用不同的单位,您也应该除以无单位数。 例如:

width: calc(500px / 50 *2)

有一篇很棒的文章解释了 calc()函数here