【发布时间】:2015-04-27 06:15:55
【问题描述】:
我们现在已经开始在 css 中使用 calc() 来设置计算结果的宽度。
例如:
<div id='parent'>
<div id='calcWidth'></div>
</div>
#parent{
width:100px;
}
#calcWidth{
width:calc(100% - 3px);
height:100px;
background:red;
}
我知道calc() 是如何工作的,但我只想知道css 中返回的内容,而不是上面给出的示例中的calc(100% - 3px);。
我的困惑是什么?
在上面的例子中
width:calc(100% - 3px);说
100%的宽度实际上是100px,这将在运行时由css确定。所以计算出来的宽度将是
100px-3px=97px97px 如果你把它转换成%97%对吧?
但是现在,有两种可能
返回
97px,设置为宽度。返回
97%,设置为宽度。
我的问题是:
现在在这两种情况下,宽度都应设置为
97px,但是什么是 作为width:calc(100% - 3px);、97px或97%的结果返回?
你也可以看到这个小提琴: http://jsfiddle.net/8yspnuuw/1/
编辑:请阅读
见朋友:举个简单的例子:
<div class='parent'>
<div class='child'>
</div>
</div>
.parent{
width:200px;
}
.child{
width:20%
}
我知道渲染时 child 的宽度将变为 160 px。 好的!但这不是css中设置的内容吗? css 将其设置为 %,它是 只是以像素为单位渲染。
同样,使用 calc,它会返回 % 还是 pixel
或者为了解释我的问题,阅读BoltClocks answer,计算值是什么,(而不是使用值,我知道是以像素为单位的)
【问题讨论】:
-
您可以使用 FireBug 查看计算的样式,或者使用控制台自己运行 getComputedStyle:developer.mozilla.org/en-US/docs/Web/API/Window/… 并进行测试:)
-
有趣的问题+1
-
鉴于最终结果始终以像素为单位,为什么
calc()的返回值的具体格式很重要?我猜它总是以像素为单位,因为这是每个计算的长度值最终被分配/渲染的,但我不确定。 -
嘿,为什么是反对票