如何为环境变量设置自定义值,以防显示有裁剪?
假设浏览器支持 ENV
如果我设置:
padding-left: env(safe-area-inset-left)在这种情况下:
如果显示有裁剪(左侧)-浏览器将设置它的自己的特定值;
如果它没有(矩形),则值为0px
问:如何设置自定义值(例如30‘s)而不是浏览器的值?
为了清楚起见,我希望-30 is填充从左边如果显示有剪贴画,和20 is是一个矩形显示。
怎么做呢?
发布于 2020-06-17 16:31:42
您可以使用新的CSS clamp()来确保将值保持在20到30像素之间。
.block {
padding-left: 20px;
padding-left: clamp(20px, 20px + env(safe-area-inset-left), 30px);
}使用这种方法,中间值20px + env(safe-area-inset-left)将解析为矩形显示上的20px + 0px,20px + 50px (以50px为例)。夹持从20到30像素将确保值保持在该范围内。添加回退将确保不发布env()或clamp()的浏览器仍然具有20px填充值。
编辑:我发现clamp(MIN, VAL, MAX)的情况更容易理解,但是由于VAL是MIN + something,所以您也可以将其简化为min(20px + env(safe-area-inset-left), 30px)。
https://stackoverflow.com/questions/62433659
复制相似问题