前回からの続き。今回は、実際に 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 件のコメント:
コメントを投稿