セーフエリア

iPhone Xのリリース以降、Appleはセーフエリアと呼ばれる領域を導入し、その後Google ChromeもAndroidでサポートしました。

セーフエリアのあるデバイス(上部のノッチなど)では、アプリのUIは、縦向きでは上下に追加のスペースを、横向きでは左右に追加のスペースを含める必要があります(ノッチや新しいボトムバーを考慮するため)。

縦向きではFramework7が自動的に必要なスタイルの修正を行いますが、横向きでは要素に追加のクラスを追加する必要があります。

以下の要素にはこれらのクラスは必要ありません。

これらのクラスを使用したアプリレイアウトの例を示します。

<body>
  <!-- app root -->
  <div id="app">

    <!-- left panel doesn't require any additional classes -->
    <div class="panel panel-left panel-cover">
      ...
    </div>

    <!-- right panel doesn't require any additional classes -->
    <div class="panel panel-right panel-reveal">
      ...
    </div>

    <!-- main view, full-wide element, add "safe-areas" class -->
    <div class="view view-main view-init safe-areas" data-url="/">
      <div class="page">
        <div class="navbar">
          ...
        </div>
        <div class="page-content">
          <!-- full-wide list, will inherit safe-areas from view -->
          <div class="list">
            ...
          </div>
          <!-- full-wide content block, will inherit safe-areas from view -->
          <div class="block">
            ...
          </div>
          <!--
            two-columns blocks: need to
              - remove extra spacing on right side for left block
              - remove extra spacing on left side for right block
          -->
          <div class="row">
            <!-- remove right spacing on left block -->
            <div class="block col no-safe-area-right">
              ...
            </div>
            <!-- remove left spacing on right block -->
            <div class="block col no-safe-area-left">
              ...
            </div>
          </div>
          ...
        </div>
      </div>
    </div>
  </div>
  ...
</body>