decodeURI和decodeURIComponent

daily-work - 图1

安全区域

安全区域指的是一个可视窗口范围,处于安全区域的内容不受圆角(corners)、齐刘海(sensor housing)、小黑条(Home Indicator)影响

viewport-fit

iOS11 新增特性,苹果公司为了适配 iPhoneX 对现有 viewport meta 标签的一个扩展,用于设置网页在可视窗口的布局方式:

  • contain: 可视窗口完全包含网页内容
  • cover:网页内容完全覆盖可视窗口 (iponex)
  • auto:默认值,跟 contain 表现一致

env() 和 constant()


iOS11 新增特性,Webkit 的一个 CSS 函数,用于设定安全区域与边界的距离,有四个预定义的变量:

  • safe-area-inset-left:安全区域距离左边边界距离
  • safe-area-inset-right:安全区域距离右边边界距离
  • safe-area-inset-top:安全区域距离顶部边界距离
  • safe-area-inset-bottom:安全区域距离底部边界距离


我们只需要关注 safe-area-inset-bottom 这个变量,因为它对应的就是小黑条的高度(横竖屏时值不一样)。

  1. <meta name="viewport" content="width=device-width, viewport-fit=cover">
  2. // 顺序不能变
  3. padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */
  4. padding-bottom: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */
  5. {
  6. margin-bottom: constant(safe-area-inset-bottom);
  7. margin-bottom: env(safe-area-inset-bottom);
  8. }
  9. @supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {
  10. div {
  11. margin-bottom: constant(safe-area-inset-bottom);
  12. margin-bottom: env(safe-area-inset-bottom);
  13. }