css 带自动功能的钳位功能不作为最小值、值、最大值工作
css clamp function with auto not working as min, value, max
我正在使用 css clamp()
来调整我的 div 的高度,但它没有按预期工作。
.container{
height: clamp(200px, auto, 400px);
}
但在
时效果很好
.container{
min-height: 200px;
height: auto;
max-height: 400px;
}
在文档 css clamp(): MDN Web Docs 中,它说它完成了 min, value and max
的工作。为什么它不起作用?
如果你检查 the syntax 你可以看到:
clamp( <calc-sum>#{3} )
where
<calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*
where
<calc-product> = <calc-value> [ '*' <calc-value> | '/' <number> ]*
where
<calc-value> = <number> | <dimension> | <percentage> | ( <calc-sum> )
auto
不是逻辑语法的一部分,因为您无法将 auto
与像素值(或任何长度)
进行比较
您认为浏览器会首先将 auto
应用于高度,以便根据内容找到高度值,然后将该值转换为 px
,然后应用 clamp()
使用该值但没有。那样不行。
浏览器将首先尝试解析 clamp(200px, auto, 400px)
,这是无效的,因为 auto
不是 <calc-value>
。我们甚至不需要知道它应用于哪个 属性。
我正在使用 css clamp()
来调整我的 div 的高度,但它没有按预期工作。
.container{
height: clamp(200px, auto, 400px);
}
但在
时效果很好.container{
min-height: 200px;
height: auto;
max-height: 400px;
}
在文档 css clamp(): MDN Web Docs 中,它说它完成了 min, value and max
的工作。为什么它不起作用?
如果你检查 the syntax 你可以看到:
clamp( <calc-sum>#{3} )
where
<calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*
where
<calc-product> = <calc-value> [ '*' <calc-value> | '/' <number> ]*
where
<calc-value> = <number> | <dimension> | <percentage> | ( <calc-sum> )
auto
不是逻辑语法的一部分,因为您无法将 auto
与像素值(或任何长度)
您认为浏览器会首先将 auto
应用于高度,以便根据内容找到高度值,然后将该值转换为 px
,然后应用 clamp()
使用该值但没有。那样不行。
浏览器将首先尝试解析 clamp(200px, auto, 400px)
,这是无效的,因为 auto
不是 <calc-value>
。我们甚至不需要知道它应用于哪个 属性。