前回からの続き。今回は、実際に CSS によるスタイルを定義する。スタイルのベースになるのは、Style Repository で LOG+REPO 用に提供しているものだ。
画面(ビュー)の構造: 詳細編
共通部分 (src/base.html) の構造は前回示した通り。今回は、画面ごとに変化する領域の構造を示す。
個別画面の構造は、ソース上、以下のファイルで定義されている。
ちなみに、前回は書かなかったが、以下に示す HTML の構造図では、主に CSS のセレクタに記述する書式で HTML の要素を書いている。h1 や blockquote はそのまま HTML の要素名で、pre.code のように . (ピリオド) に続くのはクラス名だ。また # (シャープ) に続くのは ID を表している。ただし、div 要素については、他と混同する恐れがない限り .pager や #contents のように要素名を省略して書くことにする。
一覧表示画面
テンプレート (src/listview.html) を見てもわかる通り、この画面の特徴となる構成要素は、ブログ記事のタイトル一覧(内容表示画面へのリンク付き)とページ切り替え用のリンクだ。
#view-header
| +-- h2
| +-- p
#contents
| +-- ol
| +-- li
| +-- ...
#view-footer
+-- nav
+-- .pager
+-- span
+-- span.current-page
+-- span.other-page
| +-- a
+-- span
内容表示画面
内容表示画面では、#contents 領域にブログの記事がそのまま流し込まれる。よって、この画面の HTML の構造は src/postview.html と記事の部分の構造を融合したものになる。以下の構造図では、典型的な記事の構造を挿入してある。
#view-header
| +-- h3
| +-- a
#contents
| +-- h4
| +-- p
| +-- blockquote
| +-- h4
| +-- h5
| +-- .right
| | +-- img
| +-- p
| +-- h5
| +-- p
| +-- table
| | +-- caption
| | +-- thead
| | +-- tbody
| +-- h4
| +-- pre.code
| +-- pre.terminal
| +-- ul
| +-- ...
#view-footer
+-- #labels
+-- span.label
+-- ...
設定画面
主要素の form は table 内に配置されている。table は 第 1 行 (theadに収められている) と 2 行目以降の第 1 列が見出しになる標準的な構造だ。form の要素 (input) は2 行目以降の第 2 列に置かれている。
#view-header
| +-- h3
#contents
| +-- form [action='/settings/', method='post']
| | +-- table
| | +-- caption
| | +-- thead
| | | +-- tr
| | | | +-- th
| | | | +-- th
| | +-- tbody
| | | +-- tr
| | | | +-- th
| | | | +-- td
| | | | +-- input [name='blog_id']
| +-- form [action='/settings/', method='post']
| +-- form-buttons
| +-- input [type='hidden', name='delete', value='yes']
| +-- input [type='submit', value='Delete Settings']
#view-footer
+-- (text)
+-- span.timestamp
デフォルトスタイル
いずれ、デバイスによるスタイルの切り替えを実装する(BG 内に作り込むか、または Style Repository で提供する)が、まずは Mac (または PC) 用のものをデフォルトスタイルとして BG 内に用意することにした。また、画面ごとに専用のスタイルを用意するかどうかは検討中で、デフォルトスタイルは 3 つの画面すべてに共通のものにしている。
スタイルの定義は Style Repository で LOG+REPO 用に提供しているものをほぼすべて流用している。HTML の構造の違いを調整した他は、フォントサイズ、色などはそのまま使っている。全体の横幅と要素ごとのマージンとパディングについてはまだ調整していない。
関連リンク
- Blogger Glass (GAE アプリ)
- Style Repository (GAE アプリ)
0 件のコメント:
コメントを投稿