【18-4】Flexboxの orderプロパティで表示順を自由に変えよう

最終更新日:2020年03月31日  (初回投稿日:2016年11月21日)

今回は orderプロパティを使ってみます。
これは Flexアイテムの表示の順番を入れ替えることができます。

orderプロパティは、Flexbox のほかに、Grid Layout でも使います。
いずれも、アイテム(子要素)の表示順を変える用途で使います。

本日のINDEX
  1. 表示順を自由に変えられる orderプロパティ
    1. order は見た目の順番を変えるだけ
    2. Flexアイテムの order を全部書き出して入れ替える
    3. マイナスの値は 先頭よりも前に出る

Flexbox に関しては、記事を分けています。

【18-1】Flexbox を使おう!(display:flexでFlexboxを作る)
display: flex で「Flexコンテナ」を作ります。
flex-basis、flex-grow、flex-shrink、justify-contentプロパティを使ってみます。
【18-2】Flexbox内のボックスの配置方法を指定しよう
flex-wrap、flex-directionプロパティを使います。
【18-3】Flexbox内の縦(垂直)方向を揃えよう
align-items、align-self、align-contentプロパティを使います。
【18-4】Flexboxの orderプロパティで表示順を自由に変えよう ←今日はココ
orderプロパティを使います。
(ちょっとメモ)Flexbox をシミュレーションできるサイト2件
シミュレーションしてみると、わかりやすい!
【18-5】Flexboxの古い仕様とベンダープレフィックスまとめ
Flexboxの各ブラウザの対応やベンダープレフィックスについて。

参考資料:W3C CSS Flexible Box Layout Module Level 1

表示順を自由に変えられる orderプロパティ

orderプロパティのデフォルトは「0」。HTMLの記述順に並びます。
数値を変えることで、表示順が変わります。
マイナスの値も使えるので、ある Flexアイテムにマイナスのカウントを付ければ、先頭のアイテムよりも前に来ます。

order の値
整数 順番のカウントを整数で。デフォルトは0。マイナスの値も使えます
値の継承 なし 適用できる要素 Flexアイテム な要素。
Flexコンテナに対して絶対位置指定された子要素

order は見た目の順番を変えるだけ

order は、あくまでも表示上の(見た目の)順番を変えるだけで、HTML文書上の順序を書き換えたりしません

じゃあコレ、いったいどんなときに使うの?と思ったら、
W3Cの勧告候補ページに使用例が載っていました。

タブを使ったレイアウトで、アクティブなタブが「order: -1」でいつも先頭になるという仕掛けです。
WordPressなどで動的にHTMLが生成される場合なら簡単に使えそう。
これなら見た目だけの表示順を変えてもHTML文書的に問題は無く使えますね。

Flexアイテムの order を全部書き出して入れ替える

さっそくサンプルです。
これは Flexアイテムを全部書きだして order を入れ替えています。

div#container {
	display:flex;
    flex-wrap:wrap;
	justify-content: space-between}
div#container section {flex:100px}
/*↓アイテムを全部書き出して、1番目と5番目のorderのみ入れ替えています*/
div#container section:nth-child(1) {order:5}
div#container section:nth-child(2) {order:2}
div#container section:nth-child(3) {order:3}
div#container section:nth-child(4) {order:4}
div#container section:nth-child(5) {order:1}
div#container section:nth-child(6) {order:6}

このように、1番目と5番目のアイテムの順序が変わります。
(↓クリックでサンプルファイルが開きます)

マイナスの値は 先頭よりも前に出る

Flexアイテムは、左から右(縦に並んでいる場合は上から下)へカウントされます。
先頭は「0」から始まるのが通常。なので order の値をマイナスにすれば、先頭よりも前に出ることになります。

マイナスの値を使ったサンプルソースです。

div#container2 section:nth-child(6) {order:-2}
div#container2 section:nth-child(5) {order:-1}

これでこのように、6番目のアイテムが先頭に、5番目がその次になります。
(↓クリックでサンプルファイルが開きます。先ほどと同じサンプルファイルです)

次回予告

Flexbox で使用するプロパティはこれで全部。今回で終わりです。
ただしこれらは、今のFlexboxの仕様(の勧告候補)です。
Flexboxには今まで何度か仕様が変わってきた歴史があるので「ブラウザのバージョンによって仕様が違う」というややこしい事態もあるんですって。
これについて次回は触れておきたいと思います。

関連記事
このエントリーをはてなブックマークに追加

やる気を保つためにランキングに参加しています。
応援してくださると すっごいやる気を出します! (笑)

初心者にも使いやすい(と思う)レンタルサーバー

「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、 スターサーバーロリポップ!です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。

ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。

スポンサーリンク

コメントの投稿

ご注意:メールアドレスは書かないで
「コメントを送信する」ボタンを押した後の「確認画面」で、メールアドレス・URL などを入力できるようになっており、メールアドレス・URL は、そのままオートリンクになる仕様です。
当方でメールアドレスだけ削除することも、メールアドレスを非公開にすることもできません
メールアドレスは書かないでください。詳しくはこちらにまとめましたのでご覧ください。

スポンサーリンク
最新記事
Category
オススメの本
Links
Calendar
01 | 2024/02 | 03
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 - -
Archive
Profile

yuki★hata

Author : yuki★hata
せめて月1回の更新をめざします~。

メールフォームはこちら

スポンサーリンク
スポンサーリンク
Copyright © ほんっとにはじめてのHTML5とCSS3 All Rights Reserved.