क्योंकि अतीत में कार्यान्वयन बदल गया है, वहां फ्लेक्सबॉक्स के 2 प्रमुख कार्यान्वयन हैं। This page पुराने और नए कार्यान्वयन के बारे में कुछ पृष्ठभूमि जानकारी प्रदान करता है।
मुझे फ्लेक्सबॉक्स here के कार्यान्वयन की वर्तमान स्थिति के लिए एक अच्छा ट्यूटोरियल मिला। एक पृष्ठ (demo on Codepen here) के एचटीएमएल-संरचना के
उदाहरण कोड:
<div class="page-wrap">
<section class="main-content" role="main">
Main content: first in source order
</section>
<nav class="main-nav" role="navigation">
Links
</nav>
<aside class="main-sidebar" role="complementary">
Sidebar
</aside>
</div>
main-nav
दो बार के रूप साइडबार के रूप में बड़ी के साथ 3 में page-wrap
टुकड़े को विभाजित करने के लिए, हम flexbox इस्तेमाल कर सकते हैं। एक और फायदा यह है कि main-content
डीओएम में तत्व की स्थिति main-nav
से पहले है लेकिन फ्लेक्सबॉक्स के साथ हम सामग्री से पहले इसे प्रस्तुत कर सकते हैं। यह स्क्रीनreaders के लिए उपयोगी है इसलिए सामग्री पहले पढ़ी जाती है।
हमें page-wrap
एक फ्लेक्सबॉक्स संदर्भ बनाने की आवश्यकता है।
.page-wrap {
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
गुणों का क्रम महत्वपूर्ण है: इस तरह सभी बच्चों flexbox आइटम बन जाते हैं। चूंकि कुछ ब्राउज़र दोनों कार्यान्वयन का समर्थन करते हैं, इसलिए हमें पुरानी गुणों के नीचे नवीनतम गुणों को निर्दिष्ट करने की आवश्यकता होती है। ऐसा इसलिए है क्योंकि display
-property prefixed नहीं है।
आइटम की चौड़ाई जोड़ने के लिए:
.main-content {
width: 60%;
}
.main-nav,
.main-sidebar {
-webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */
-moz-box-flex: 1; /* OLD - Firefox 19- */
width: 20%; /* For old syntax, otherwise collapses. */
-webkit-flex: 1; /* Chrome */
-ms-flex: 1; /* IE 10 */
flex: 1; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
क्योंकि अब main-nav
main-content
.main-content {
-webkit-box-ordinal-group: 2; /* OLD - iOS 6-, Safari 3.1-6 */
-moz-box-ordinal-group: 2; /* OLD - Firefox 19- */
-ms-flex-order: 2; /* TWEENER - IE 10 */
-webkit-order: 2; /* NEW - Chrome */
order: 2; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
.main-nav {
-webkit-box-ordinal-group: 1;
-moz-box-ordinal-group: 1;
-ms-flex-order: 1;
-webkit-order: 1;
order: 1;
}
.main-sidebar {
-webkit-box-ordinal-group: 3;
-moz-box-ordinal-group: 3;
-ms-flex-order: 3;
-webkit-order: 3;
order: 3;
}
हैं के बाद प्रदान की गई है आखिरी बात हम क्या करने की जरूरत है, आइटम का क्रम बदलने है आप मेलिंग सूची या यहां तक कि [ईडी] (http://dev.w3.org/csswg/css3-flexbox/) देखते हैं, आप देखेंगे कि यह बहुत अधिक परिवर्तन के माध्यम से जा रहा है। मुझे नहीं लगता कि इस बिंदु पर खुद को बदलने वाले spec से कहीं अधिक विश्वसनीय है ... – BoltClock