1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordPress テーマファイルを弄らずにdiv要素の順番を入れ替えたい

Last updated at Posted at 2019-07-01

##業務目標
会社として立ち上げるオウンドメディアの準備もいよいよ佳境に入った。環境としては、WordPress4.7.13 + Sango 1.8.2テーマが採用されたが、

index.php
<body class="home blog">
  <div id="container">
    <header id="header">"メニューバーを含むヘッダー"</div>
    <div id="header-image">"カバー写真"</div>
    <div id="content">"記事一覧"</div>
  </div>
</body>

となっているのを、どうしても、

index.php
<body class="home blog">
  <div id="container">
    <div id="header-image">"カバー写真"</div>
    <header id="header">"メニューバーを含むヘッダー"</div>
    <div id="content">"記事一覧"</div>
  </div>
</body>

に入れ替えたい。
つまり、カバーを上のほうに持ってきてインパクトを狙いたいのだ。

###課題
なんだ、単にテーマファイルをいじればいいじゃないか?
そう思うだろうか。しかし社会は甘くないのである。

#####テーマ改修リバート問題
どんなテーマにもいえることだが、子テーマの改変でカバーできるCSSとは異なり、HTML/PHP構文本体の改修は、テーマのアップデートによってリバートされてしまう。
子テーマにindex.phpを入れて親テーマをバイパスすればリバート問題こそ解決するが、親テーマのアップデートにおけるindex.phpへの変更が反映されず、他のファイルのみがアップデートされる事態となり、遅かれ早かれ矛盾して500 internal errorと相成りそうである。

そのため、子テーマCSSの改修のみで、目標を達成する必要があるのだ。

###試行
(CSS改修だけで実現できることは前提)
####@saksak氏 【レスポンシブ】PCとスマホでdivの順番を入れ替える
こんなのを発見したので、とりあえずトライ。CSS flexboxという最新仕様を使うそうな。
#####特長

  • レスポンシブ対応である。

flexboxの対象にするためには、CSS上でセレクタを指定して、「display:flex」を付与するだけでよいそうな。いけそうじゃん!
(display:flexは)親要素に加える必要がある唯一のプロパティです。その子要素は自動的にflexアイテムになります。

通常の上⇒下の表示は

.flex-container {
  flex-direction: column;
}

になるそう。
これを今回のケースにあてはめると、div id="container"display:flexflex-direction: columnを設定すれば、子要素のdivはみなflexになるはずだ。
(ただし、引用したQiitaでは、「flex-flow」プロパティは、「flex-direction」と「flex-wrap」を設定するショートハンドです。を利用してるので若干定義のしかたが違う。

#####Orderを定義
さて、いよいよ、子要素のdivにorderを設定。
「order」のデフォルト値: 0なので、

style.css
    #container{
        display: flex;
        flex-direction: column;
    }
    #header-image{
        order: -1;
    }

##できたっ!!
試行1回目でうまくいくって普通ないことです。記念にヘンリー・フォードの名言を。

There is no man living who isn’t capable of doing more than he thinks he can do.
どんな人間も、自分が思っている以上のことができる。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?