【发布时间】:2018-03-06 20:38:44
【问题描述】:
我使用的是最新版本的 Chrome,但在使用 CSS calc() 函数时,在开发工具中出现“无效属性”错误。
我以前从未真正使用过它,所以我可能在这里做错了,尽管我看不到是什么。希望有人能帮我解决这个问题。
这是我的代码。
padding-top: calc(980px / 1980px) * 100;
这用于计算背景图像上的 padding-top,以便我可以在响应式背景图像上获得 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;
}
希望这是有道理的。我看了一下 Can I use ,不使用供应商前缀似乎不是问题。
另一件可能会影响这一点的注意事项是我正在使用 SCSS 和 Scout App。我应该只使用 SCSS 计算来代替吗?
只是想用这个css函数,之前没用过。
谢谢 丹
【问题讨论】:
-
不要使用像素,而是尝试使用 calc(16em / 9em)。
-
嗨,我也试过了,但没有任何反应,开发工具仍然显示 Invalid Property Value。
-
如果
.hero是一个全宽元素,您可以简单地定义height: 0; padding-bottom: 56.25%来创建一个16:9 的容器。如果不是,则将该样式分配给它的::before伪元素 -
我只是想看看是否有一种动态方法可以做到这一点,而无需对答案进行硬编码。考虑以这种方式使用 calc() 如果我更改了高度或宽度,它将重新计算 padding-bottom 的 % 值
-
所以你仍在硬编码高度或宽度