一天认识一个css小妙招 环境变量函数env()

669 阅读1分钟

env() 是 ios11新增特性,webkit的css函数,用于设定安全区域与边界的距离。

第一点 添加新的视口元值

为了告诉浏览器使用屏幕上所有的可用空间,并以此使用env()变量。

<meta name="viewport" content="... viewport-fit=cover">

第二点 语法使用

env(safe-area-inset-top);
env(safe-area-inset-right);
env(safe-area-inset-bottom);
env(safe-area-inset-left);

env(safe-area-inset-top, 20px);
env(safe-area-inset-right, 1em);
env(safe-area-inset-bottom, 0.5vh);
env(safe-area-inset-left, 1.4rem);

safe-area-inset-* 由四个定义了视口边缘内矩形的top, right, bottom 和 left 的环境变量组成,这样可以安全地放入内容,而不是有非矩形的显示切断的风险。

对于矩形视口,例如普通的笔记本电脑显示器,其值等于零。

对于非矩形显示器(如圆形表盘,iPhoneX屏幕),在用户代理设置的四个值形成的矩形内,所有内容均可见。

第三点 案例

9561667203587_.pic.jpg

iPhone11下面的引导横条挡住了网页的内容,那我们可以设置一下安全区域距离底部边界的距离,就可以防止底部横条挡住。解决移动端 小程序或者h5底部栏 iphonex等一些手机安全区域底部横条屏幕的适配问题。

.container {
  padding-bottom: env(safe-area-inset-bottom);
}

9551667203441_.pic.jpg

代码为:

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="viewport-fit=cover">
  <title>css env函数</title>
</head>

<div class="container">
<div class="big-block"></div>
<div class="big-block"></div>
<div class="big-block"></div>
<div class="big-block"></div>
</div>

<style>
body, html {
  margin: 0;
  padding: 0;
}
.container {
  padding-bottom: env(safe-area-inset-bottom);
}
.big-block {
  background-color: #1C9363;
  height: 480px;
  margin: 10px 0;
}
</style>