CSS 函数

CSS 中的 env() 函数在向 CSS 中用户定义的环境变量添加值时非常有用,就像 var() 函数和其他自定义属性。环境变量通常由用户代理(例如网络浏览器)提供,并且可以在 CSS 中使用,以根据各种因素(例如设备特征或用户偏好)调整样式。

可以使用环境变量代替属性值的任何部分或描述符的任何部分,例如在媒体查询规则中。

可能的值

env() 函数可以具有以下值:

  • safe-area-inset-top、safe-area-inset-right、safe-area-inset-bottom、safe-area-inset-left:变量通过视口边缘的顶部、右侧、底部和左侧插图定义矩形。

    • 这些插图可以安全地放置内容,而不会被切割非矩形显示器的形状。

    • 对于矩形视口,例如笔记本电脑显示器,该值保持为零。

    • 对于非矩形显示器,例如表盘,设置四个值以创建一个矩形,以便内容在矩形内清晰可见。

  • titlebar-area-x、titlebar-area-y、titlebar-area-width、titlebar-area-height:用于安装在桌面设备上的 PWA。这些变量不允许内容与窗口控制按钮(最小化、最大化和关闭)重叠。Keyboard-inset-top、keyboard-inset-right、keyboard-inset-bottom、keyboard-inset-left、keyboard-inset-width、keyboard-inset-height:说明有关屏幕虚拟键盘外观的详细信息。变量通过距视口边缘的顶部、右侧、底部和左侧插入来定义矩形。宽度和高度插图是根据其他插图值测量的。

用户定义的属性名称区分大小写,这与其他 CSS 属性不同.

语法

property: env(variable-name, [fallback]); 
  • variable-name:环境变量的名称。

  • [后备]:(可选)。如果未定义环境变量,则使用后备值。

后备的语法允许使用逗号,就像其他语法一样自定义属性。但是,如果属性值不支持逗号,则该值将被视为无效。

用户定义的属性不会被所有属性重置。

CSS env(): 值的组合

以下示例演示了 env() 函数与安全值的使用 - safe-area-inset-top、safe-area-inset-right、safe-area-inset-bottom、safe-area-inset-left的用法:

<html>
<head>
<style>
   .text-style {
      background-color: darkblue;
      width: max-content;
      color: white;
      font-size: 25px;
      border: env(SAFE-AREA-INSET-TOP, 10px) inset lightblue;
      padding: 10px;
      padding: env(SAFE-AREA-INSET-TOP, 2.5em)
               env(SAFE-AREA-INSET-RIGHT, 2.5em) 
               env(SAFE-AREA-INSET-BOTTOM, 2.5em) 
               env(SAFE-AREA-INSET-LEFT, 2.5em)
   }
</style>
</head> 
<body>
    <h2>env() 函数例子</h2>
    <p class="text-style">通过环境变量添加的填充</p>
</body>
</html>