CSS3 Flex Box - Part 4
簡介
在彈性容器中 (flex container) 排列各彈性元件 (flex item) 時,預設都是以彈性元件在 DOM tree 中平輩的前後次序,依序排列。但在彈性元件中設定屬性 order 卻可以改變彈性元件的排列次序。
- order
- 這是個設定在彈性元件中的屬性,賦予值為一無單位的數值,可以為負值,預設值為 0。若為負值,負數愈大的彈性元件則愈先排列;若為正值,正數愈大的彈性元件則愈晚排列。具有相同的數值的彈性元件,則依 DOM tree 中平輩的先後次序排列。與其說 order 設定了彈性元件的排列先後次序,不如說 order 設定了彈性元件的先後排列權值。彈性容器先分析所有彈性元件的權值,依權值分成群組,再依權值由高至底,將每一個群組中的彈性元件依其在 DOM tree 中平輩的先後次序排列,一直到所有的權值群組都排列完畢為止。
範例
範例中建立一個含有七個彈性元件的彈性容器,每個彈性元件依照其在 DOM tree 中平輩的次序標號,但在其 CSS 類別中設定 order 屬性以改變其排列的先後次序。可以試著改變 order 的設定值,以瞭解其排列的規則。
CSS
<style> html { width:100%; height:auto; font:normal normal normal 1em Arial, '文泉驛正黑', 'WenQuanYi Zen Hei', '儷黑 Pro', 'LiHei Pro', '微軟正黑體', 'Microsoft JhengHei'; } body { margin: 0 auto; width: 800px; padding:20px; } .container { display: flex; flex-direction:row; width: 400px; padding:20px; background-color: lightgreen; } .basis { width:40px; height:40px; border: 1px solid black; background-color: coral; } .center { display:flex; justify-content: center; align-items: center; font-size: 2em; } .item_1 { order:0; } .item_2 { order:0; } .item_3 { order:2; } .item_4 { order:-1; } .item_5 { order:2; } .item_6 { order:-2; } .item_7 { order:1; } </style>
.container{} 設定了彈性容器的外觀、尺寸及基本的排列方式。
.basis{} 設定了各彈性元件的外觀及尺寸。
.center{} 將彈性元件的編號置於元件中央。
.item_*{} 則為各彈性元件設定 order 屬性,決定其排列時的權值。
HTML
<body></body>1234567
HTML 中依編號的次序建立七個彈性元件,如果沒有在彈性元件中設定 order 屬性,則應編號的次序排列。
沒有留言:
張貼留言