有没有办法使CSS calc()永远不会是负值?

cmo*_*sey 11 css css3 css-calc

我有以下代码,它可以很好地集中我的内容,直到vh少于那么650px.我想知道是否有办法让这个值永远不会0只使用CSS calc.

.my-margin-top {
    margin-top: calc(50vh - 325px);
}
Run Code Online (Sandbox Code Playgroud)

fca*_*ran 16

假设没有办法限制calc()你计算的值max-height,最多可以使用媒体查询650px

.my-margin-top {
    margin-top: calc(50vh - 325px);
}

@media all and (max-height: 650px) {
   .my-margin-top {
       margin-top: 0;
   }
}
Run Code Online (Sandbox Code Playgroud)

或者您也可以通过将现有规则包装到min-height媒体查询中来恢复逻辑

@media all and (min-height: 650px) {
   .my-margin-top {
       margin-top: calc(50vh - 325px);
   }
}
Run Code Online (Sandbox Code Playgroud)

  • @cmorrissey:公平地说,你的用例只是*发生*以具有视频单元为特色,这些单元适用于媒体查询.一般来说,你根本无法将calc()表达式的结果钳制到一定范围的值 - CSS需要为此提供某种形式的min()和max(). (2认同)