概要
WordPressの標準エディタであるグーテンベルク(ブロックエディタ)は、直感的な操作で表を作成できる強力なツールです。しかし、標準の「テーブルブロック」は、そのままではモバイル環境での表示が崩れやすく、特に列数が多いデータテーブルでは、ユーザー体験を著しく損なう原因となります。本記事では、グーテンベルクの標準機能を活かしつつ、CSSを活用してスマホで見やすく、かつメンテナンス性の高いレスポンシブテーブルを実装する方法を解説します。単なる見た目の調整ではなく、アクセシビリティとパフォーマンスを考慮したプロフェッショナルな実装技術を網羅します。
なぜグーテンベルクのテーブルはモバイルで崩れるのか
Webデザインにおける最大の敵の一つが「テーブルの横幅」です。PCモニターでは快適に閲覧できる表も、スマートフォンの狭い画面幅では、列が押しつぶされ、テキストが折り返され、結果として表全体が崩れたり、画面外にはみ出して横スクロールバーが出現したりします。
グーテンベルクの標準テーブルブロックは、HTMLの`
`タグをそのまま出力しますが、CSSでの制御がなされていない場合、ブラウザは「可能な限り内容を表示しよう」として無理な縮小を行います。これを解決するためには、CSSで「横スクロールを許可する」か「レイアウトを切り替える」のいずれかのアプローチを選択する必要があります。
実装アプローチ1:横スクロールによるレスポンシブ対応
最もシンプルで、データ数が多い場合に有効なのが、表全体をコンテナで包み込み、横スクロールを可能にする手法です。
/* CSS: テーブルのレスポンシブ(横スクロール) */
.table-container {
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
margin-bottom: 1.5em;
}
.wp-block-table {
min-width: 600px; /* 表の最小幅を指定 */
}
この手法は、グーテンベルクのテーブルブロックを「グループブロック」で囲み、そのグループに「table-container」というCSSクラスを追加するだけで実装可能です。これにより、スマホユーザーは表を左右にスワイプして内容を確認できるようになります。
実装アプローチ2:CSSによるレイアウト変換(カード型表示)
データ量が少ない場合、あるいは表の内容をより直感的にスマホで見せたい場合は、メディアクエリを使用して、スマホ表示時にテーブルの行をブロック状(カード型)に並べ替える手法が効果的です。
/* CSS: スマホでカード型に変換 */
@media screen and (max-width: 600px) {
.responsive-table thead {
display: none;
}
.responsive-table tbody,
.responsive-table tr,
.responsive-table td {
display: block;
width: 100%;
}
.responsive-table tr {
margin-bottom: 15px;
border: 1px solid #ccc;
}
.responsive-table td::before {
content: attr(data-label);
font-weight: bold;
display: block;
}
}
この手法を実装するには、各`td`要素に`data-label`属性を付与する必要があります。グーテンベルクの標準ブロックでは直接属性を付与しにくいため、「カスタムHTMLブロック」を使用するか、JavaScriptで動的に属性を挿入するなどの工夫が必要です。
実務における最適解:アクセシビリティの確保
レスポンシブ対応で最も見落とされがちなのが「アクセシビリティ」です。特にスクリーンリーダーを使用するユーザーにとって、テーブルの構造を崩すようなCSS(display: blockへの変更など)は、情報の関連性を失わせるリスクがあります。
実務レベルで推奨するのは、以下の3点です。
1. 見出しタグの活用: `
`と`
`を必ず適切に使用する。
2. キャプションの付与: グーテンベルクのテーブル設定で「キャプション」を追加し、表の内容を明示する。
3. 視認性の向上: `nth-of-type`を使用してストライプ背景(縞模様)を適用し、行の判別を容易にする。
プラグインに頼りすぎないメリット
世の中にはテーブルをレスポンシブにするためのプラグインが多数存在しますが、私は可能な限りCSSのみでの実装を推奨します。理由は以下の3点です。
1. サイトの軽量化: プラグインを追加すると、不要なCSSやJSが読み込まれ、Core Web Vitalsのスコアが悪化します。
2. 依存関係の排除: プラグインの更新が止まった際、サイト全体が崩れるリスクを負うことになります。
3. デザインの柔軟性: テーマ固有のスタイルに合わせるためには、自前でCSSを記述する方が圧倒的に美しい仕上がりになります。
サンプル:グーテンベルクでの設定手順
ステップ1:グーテンベルクでテーブルブロックを配置し、データを入力する。
ステップ2:ブロック設定の「高度な設定」から、追加CSSクラスに「responsive-table」と記述する。
ステップ3:テーマのカスタマイザー、または「外観」>「追加CSS」に、上記で紹介したCSSを追記する。
ステップ4:PC、タブレット、スマホの各画面幅で、崩れがないか検証ツール(F12)で確認する。
まとめ
グーテンベルクで表をレスポンシブにするための鍵は、「コンテンツの内容に応じた表示方法の選択」にあります。大量のデータを扱うなら横スクロール、簡潔なスペック表ならカード型。この使い分けをCSSで制御することで、ユーザーに対してストレスを与えない高品質なUIを提供できます。
Webデザイナーとして重要なのは、ツールが用意した機能だけで満足せず、その裏側のHTML構造を理解し、CSSという強力なツールを正しく使いこなすことです。今回紹介した手法は、どのようなWordPressテーマであっても応用可能です。ぜひ、今日からあなたのサイトのテーブルを見直し、ユーザー体験を一段上のレベルへと引き上げてください。技術的な実装は、常に「ユーザーがどう情報を受け取るか」という視点から逆算して行うべきです。それが、プロのWebデザイナーとしての責任であり、Webサイトの価値を高める唯一の道なのです。
よりよいエクスペリエンスを提供するため、当ウェブサイトでは Cookie を使用しています。引き続き閲覧する場合、Cookie の使用を承諾したものとみなされます。
タイトルとURLをコピーしました
|
コメント