WordPressで縦書きブログを作ってみた話※レスポンシブ対応
このブログはメインコンテンツを縦書きデザインをレスポンシブに表示できるように実装してみたのだが、作成における技術的なポイント簡単にまとめておきたいと思う。
尚、今回まとめた方法はhtml, css, php, javascriptの知識が必要。
縦書きの表示方法
WEBサイト上で縦書きの文章を(メインコンテンツとして)表示させる方法は以下の二通りに分かれると思う。
- 横スクロール表示
- カラム分け縦スクロール表示
スマホなどは縦スクロールが基本なので、メインになるものが横スクロールっていうのは具合悪いなと感じる。よって 今回は縦スクロール表示を採用。
横いっぱいまで行が広がったら、横割りでカラムが下に増えていくようになっていく仕様。新聞とか雑誌みたいな感じである。
縦書きの実装
作業の流れは以下の通り。
- single.phpの編集
- single.cssの作成
- function.phpの編集
- 要素サイズ調整用jsファイルの作成
1、single.phpの編集
メインコンテンツ部分をdiv
で囲いIDを付与する。ID名は適当でOK。
ここではsingle.phpとしているが、テーマによってはsingle.phpからさらに別ファイルを読み込んでコンテンツ部分を呼び出している場合があるのでその点注意。
2、single.cssの作成
投稿ページのみに縦書きのスタイルを当てたかったため、新しくCSSファイルを作成してテーマフォルダ内に保存。CSSファイルには縦書きデザインの記述をする。
以下注意点。
- Firefox以外は
height
とcolumns
で必ず同じ高さを指定しておく。 - 最終的にFirefoxのみ
height
はauto
にする必要があった。※最初は逆にheight
をcolumns
と同じに指定しなければうまくいってなかったのでバグかも box-sizing
は必ず初期値のcontent-box
にしておく。 これをしておかないと後の要素サイズ調整がうまくいかない。
縦書き仕様のCSSに関しては以下のサイトを参考にした。
3、function.phpの編集
single.phpにのみにsingle.cssのスタイルをあてたかったため、function.phpに条件分岐を使って追加記述する。
ここまででメインコンテンツが縦書きになるが、2カラム目以降がオーバーフロー扱いになるので、下の要素と重なって大変な状態になっている。
なのでJavascriptでオーバーフロー分のスペースを確保する必要がある。
4、要素サイズ調整用jsファイルの作成
javascriptのコードは、以下の記事を参考にした。
で、実際に書いたコードがこれ。
これに名前を付けて、テーマフォルダ内の適当なところに保存。
そして「3、function.phpの編集」でfunction.phpに追記した箇所から、このjsファイルを読み込ませる。
以上で縦書きで表示されるようになる。
既存テーマでも縦書きにアレンジできるか試したところデフォルトテーマの「Twenty Seventeen」はこのやり方で縦書きにできた。
その他気づいたこと
その他縦書きにしたときに気づいたことを箇条書きにしておく。
- Firefoxは文章中に引用タグ(
blackquote
)が入っているとレイアウトが崩れる - マージンの上下左右の位置関係がEdgeだけ90度回転する
- 画像を文章中に挿入する場合は、ブラウザサイズごとで細かく画像サイズを調整しなければならない。
とにかく縦書きレイアウトはブラウザごとの挙動の違いが大きいので、それぞれに異なるCSSを当てるとかの調整の必要がある。
まとめ
個人的なWEB学習の課題として作ってみたが、結果としていい学びになったと思う。割とゲーム感覚で楽しめたし、全くよく分かってなかったJavascriptが、WEB上で何をしているのかの雰囲気もつかめた。
もしこの記事を見て試そうと思う人がいたら、くれぐれもバックアップは忘れずに楽しく試してもらえたらと思う。
- Prev«傾山(大分県・豊後大野)
2019年2月12日«Prev - Next»山行メモ
2019年2月25日(月)星生山