css - 反转 CSS 变量的像素值
问题描述
我正在使用 CSS 变量,以便我可以轻松地进行彻底的更改。我的变量之一是--gap: 15px
,到目前为止我已经使用了大约 15 次。但是,我现在需要使用 的反转值--gap
,即-15px
.
失败:
calc(0 - var(--gap))
calc(var(--gap) * -1)
作品:
calc(var(--gap) - calc(var(--gap) * 2))
问题:
第一次尝试显然是最有说服力的,但为什么行不通呢?
有没有比第三种方式更有说服力的方法来实现这一点?
解决方案
如果我将单位添加到0
计算部分,您的第一个失败示例对我有用。
从规格:
注意:因为 <number-token> 总是被解释为数字或 <integer>,所以 calc() 不支持“无单位 0”<length>。即width: calc(0 + 5px); 无效,即使两者都 width: 0; 和宽度:5px;是有效的。
:root {
--gap: 15px;
}
div {
margin-top: calc(0px - var(--gap));
}
<div>text</div>
您的第二个失败示例对我有用。
:root {
--gap: 15px;
}
div {
margin-top: calc(var(--gap) * -1);
}
<div>text</div>
我在 Firefox 64、Chrome 71 和 Safari 12(所有 Mac)中测试了这两个示例。
推荐阅读
- ios - 如何剪辑/屏蔽 HStack 内容,使其表现得像 ScrollView,其中内容显示在 HStack 中?
- reactjs - 如果平面列表在滚动视图内,用户需要点击两次保存按钮
- javascript - 如何使网站从顶部开始滚动,然后在向上滚动时停止在某个点
- javascript - 如何防止使用 redux 重新渲染组件
- amazon-web-services - Amazon Redshift 不缓存查询结果
- html - 如何在每个锚元素后换行?
- javascript - 使用 YouTube 的延迟加载方法,当用户点击播放视频时如何取消静音
- solr - 我怎么知道为什么我的 Solr 预热查询需要这么长时间?
- swift - (SwiftUI) NavigationLink 不是屏幕的全宽
- java - Spring WebFlux - 返回自定义查询选择