質問: 複数のページで使用する共通のレイアウトについて なるべく(x)html+cssでサイトを作ろうと思っているのですが、 ヘッダ、フッタ、メニューなどの複数のページに及ぶ共通のレイアウト部分を cssで一括で管理する方法はないのでしょうか? javascriptでの方法は分かるのですが。。。 よろしくお願いします。
回答: cssの外部ファイルへの記述法,呼び出し方法が判らないと質問されているのなら、#1の方の回答だと思いますが(重複するのでここでは書きませんが)。 しかしjavascriptの様に更新時に一部を変えれば全部が変わるという仕掛けは、cssではかなり困難です。 というのも、cssはあくまでhtmlのデザインであり骨組みを変えたい場合はhtmlが変わらないと 少なくともそこにない要素を発生させる事は不可能です。 (まぁ逆に特定の要素を非表示にする事までは出来ますが・・・。) 結局、確認はしていませんがhp作成ツールでのインサート機能を用いるか 自分で手作業で管理用ファイルと公開用ファイルを別にして、 あとは文字列の一括変換を行う(この程度ならフリーのテキストエディタで可能)しかないかと・・・。 まぁそれが理由で、フレーム(インラインフレーム含む)が嫌われながらも使われているのではないかなぁ~と。 尚、事前に全ての要素毎に div と span を付加し id を付けて於いて ブックレベル要素,インライン要素という性質も含めて スタイルシートで指定してしまうという対処方法もあるにはありますが (将来増えそうな内容に対しては非表示として仮置きしておくとか) ただしこれはhtmlタグの意味を無視した方法なので 余程の事がない限り採用しない方がよいでしょう。 最後に、各要素へはidを必ず記述しておく事をお勧めします。 これにより当初使用していなかったidでも 後の要素の特定やグループ化(classの代用)に役立ちます。