メインコンテンツへスキップ

縦向き(ポートレート):定義、例、CSS

ポートレート方向とは、画面の高さが幅より大きい状態を指します。ビジュアル例、CSS の @media (orientation: portrait)、および Capacitor アプリでの方向ロック方法について、ポートレートとランドスケープの違いを解説します。

縦画面と横画面のスマホフレームで、縦方向と横方向の画面向きを説明

縦向き とは、画面が 幅より高さがある (高さが幅より大きい)状態を指します。 横向き はその逆で、 幅が高さより広い状態です。縦向きの一般的な用途は、スマホのフィード、記事、フォーム、チャットなどです。横向きは、動画、マップ、水平なスペースが必要なダッシュボードに適しています。アスペクト比(例:縦9:16、横16:9)は幅と高さの比率を示し、向きはどちらの辺が長いのかを示すだけです。

縦向きと横向きの例

ポートレートモードの画像を検索した場合、この並列表示がそのイメージです。同じデバイスクラスで、縦長のフレームと横長のフレームが並んでいます。

並列図: 高さが幅より大きいポートレートモードと、幅が高さより大きいランドスケープモード

ポートレートは注意を縦スクロールに集中させます。ランドスケープはより多くのカラムや並列UIを露出させます。これらは単なる回転ラベルではなく、レイアウトのコンテキストです。

向き 形状 主な用途
縦向き 高さが幅より大きい フィード、読み物、フォーム、チャット
横向き 幅が高さより大きい 動画、地図、グラフ、ゲーム

画面の向きは解像度やアスペクト比とは異なります。2台の端末がどちらも縦向きでも、ピクセルサイズや比率は異なる場合があります。レスポンシブレイアウトは、特定のスマホモデルではなく、ビューポートの形状を基準にすべきです。

CSSでの縦向き

回転時に間隔や構造を変える場合はCSSを使います。次の @media (orientation: portrait) クエリは、高さが幅より大きいビューポートに一致します。MDNではこれを以下で説明しています。 orientation メディア機能.

/* Default: portrait-first single column */
.page {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.sidebar {
  display: none;
}

@media (orientation: landscape) {
  .page {
    grid-template-columns: 280px 1fr;
  }

  .sidebar {
    display: block;
  }
}

@media (orientation: portrait) {
  .hero {
    padding-block: 24px;
  }
}

まずユーザーが最初に目にする orientation から始め、その後で landscape のルールを追加します。キーボードやブラウザの chrome が表示されたときに壊れる固定の viewport 高さは避けてください。実際のデバイスで両方の orientation においてフォームや sticky header をテストしてください。

回転に反応する必要がある JavaScript(チャート、マップ、カスタムシェルなど)では、 screen.orientation の change イベントを監視するか、 window.innerHeight まで window.innerWidthを比較します。可能であればレイアウトは CSS に委ねてください。

モバイルおよび Capacitor アプリでの orientation ロック

ブラウザは orientation ロックを単なる設定として扱います。ネイティブアプリと Capacitor プロジェクトでは、回転がタスクを妨げる場合(サインイン、決済、キオスクフローなど)に、画面ごとに画面方向を強制できます。

この @capgo/capacitor-screen-orientation プラグインは現在のモードを読み取り、ルートでポートレイトをロックし、ユーザーがその画面を離れるとロックを解除します。 Screen Orientation プラグインのドキュメント を参照して、API の詳細を確認してください。

import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';

await ScreenOrientation.lock({ orientation: 'portrait' });

const { type } = await ScreenOrientation.orientation();
console.log(type);

await ScreenOrientation.unlock();

ロックは控えめに。回転が間隔を変えるだけなら、レイアウトを適応させるべきです。ロックする場合は、 lock と unlock をページライフサイクルに紐付け、メディアや設定画面では引き続きランドスケープを使えるようにします。iOS と Android 全体のレイアウトパターンについては、 Capacitor アプリのクロスプラットフォーム UI/UX ベストプラクティス.

よくある質問

ポートレイト方向とは?

縦向き(Portrait)とは、ディスプレイの高さが幅より大きい状態を指します。高さが幅を超えているため、長い辺が垂直方向に伸びます。読み物、チャット、スクロール用にスマートフォンを縦に持つ場合、通常は縦向きになります。

縦向きと横向きの違いは何ですか?

縦向きは高さが幅より大きく、横向きは幅が高さより大きいです。デバイスを回転させることで切り替わりますが、アスペクト比とレイアウトのスペースが変わるため、UIは単に引き伸ばすのではなく適応させるべきです。

CSSで @media (orientation: portrait) をどのように使いますか?

次のメディアクエリを追加します @media (orientation: portrait) { ... } ビューポートの高さが幅を超えたときにスタイルを適用します。横向き用のレイアウトルールと組み合わせるには、次を使用します @media (orientation: landscape) 両方の向きが必要なときに使います。

スマートフォンやアプリでの「向きの変更」とは?

向きの変更とは、デバイスを回転させるか、アプリの回転を許可して、画面を縦向きと横向きの間で切り替えることです。Webではビューポートの寸法が入れ替わります。ネイティブアプリとCapacitorアプリでは、OSが切り替えをアニメーションし、セーフエリアを更新する場合もあります。

コンテンツの向きとは?

コンテンツの向きとは、デバイスをどの方向に持つかだけでなく、フレームに対してコンテンツをどう配置するかを指します。縦向きの画面でも、ワイドなチャートや動画がレターボックス表示されることがあります。デフォルトのデバイスの角度だけでなく、タスクに合わせてレイアウトとメディアを調整しましょう。

縦向きと横向きの違いの例を見せてもらえますか?

はい。縦向き(Portrait)は高さが幅より大きい、縦長のスマホフレームのような状態です。横向き(Landscape)は幅が高さより大きい、横長のフレームのような状態です。以下の 縦向きと横向きの例 のラベル付き図までスクロールしてください。


もし Capacitor アプリをリリースしていて、リリース後の迅速な修正と併せて画面の向きを制御する動作が必要なら、 Capgo を検討する価値があります。これは CapacitorJS や Electron アプリに Live Updates を提供するだけでなく、画面の向き(screen orientation)などのアプリ機能向けプラグインもメンテナンスしています。これにより、リリースプロセス全体を再ビルドすることなく、特定のビューをロックしたり有効にしたりできます。

Capacitor アプリ向けの Live Updates

Web レイヤーのバグが本番で発生したら、App Store の審査を何日も待たずに Capgo で修正を配信しましょう。ネイティブの変更は通常の審査フローに残したまま、ユーザーはバックグラウンドでアップデートを受け取れます。

最新のブログ記事

Capgoは、真にプロフェッショナルなモバイルアプリを作るために必要な最高のインサイトを提供します。