Flexbox ms: ПолноС руководство ΠΏΠΎ Flexbox | Frontender Magazine

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Flexbox — CSS

Flexbox ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ поддСрТиваСтся соврСмСнными Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ. Π’ этом руководствС ΠΌΡ‹ рассмотрим, насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ flexbox поддСрТиваСтся Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, рСсурсы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для создания ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΈ запасных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Как  ΠΈ всС спСцификации CSS, flexbox ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΡ‚Π°Ρ‚ΡŒΒ ΠšΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ Π² Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ W3C. Π£ спСцификации Π² этом статусС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ итСрациями всС Π±Ρ‹Π»ΠΎ ΠΈΠ½Π°Ρ‡Π΅.

Flexbox Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. Π’ Ρ‚ΠΎ врСмя ΠΌΠ΅Ρ‚ΠΎΠ΄ создания ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π» использованиС Π²Π΅Π½Π΄ΠΎΡ€Π½Ρ‹Ρ… прСфиксов. ИдСя этих прСфиксов Π±Ρ‹Π»Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° спСцификации Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ рСализациями. ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

Однако, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС прСфиксы всё Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, ΠΈ измСнСния Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ спСцификации Π²Ρ‹Π½ΡƒΠ΄ΠΈΠ»ΠΈ людСй ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ сайты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этой самой спСцификации ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ 2009 спСцификация выглядСла совсСм ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ display: box ΠΈ нСсколько box-* свойств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°Π»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСгодня Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄ flexbox.

ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅Β ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ спСцификации помСняло синтаксис Π½Π°Β display: flexbox β€” ΠΈ ΠΎΠΏΡΡ‚ΡŒ с Π²Π΅Π½Π΄ΠΎΡ€Π½Ρ‹ΠΌΠΈ прСфиксами.

Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС спСцификация Π±Ρ‹Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΒ display: flex ΠΊΠ°ΠΊ способ создания flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Начиная с этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½ΠΎΠΉ вСрсии спСцификации отличная.

БущСствуСт нСсколько старых статСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ вСрсии flexbox, ΠΈΡ… довольно Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ созданиС flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Если Π²Ρ‹ нашли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅Β Β 

display: box ΠΈΠ»ΠΈΒ display: flexbox, Ρ‚ΠΎ это ΡƒΠΆΠ΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ информация.

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ flexbox, ΠΈ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ прСфиксы для этого. Safari послСдним ΠΈΠ· основных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² избавился ΠΎΡ‚ прСфиксов послС Ρ€Π΅Π»ΠΈΠ·Π°Β Safari 9 Π² 2015. Π”Π²Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ для обСспСчСния кроссбраузСрности, это:

  • Internet Explorer 10, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π½Π΅Π΄Ρ€ΠΈΠ»Β display: flexbox Π²Π΅Ρ€ΡΠΈΡŽ спСцификации с прСфиксом -ms-.
  • UC Browser, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всС Π΅Ρ‰Ρ‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ вСрсии 2009 Π³ΠΎΠ΄ с display: box ΠΈ прСфиксом -webkit-.

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Π½Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎ Explorer 11 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ соврСмСнный display: flex,Β ΠΎΠ΄Π½Π°ΠΊΠΎΒ Π½Π΅ Π±Π΅Π· Π±Π°Π³ΠΎΠ².

The majority of issues with flexbox relate to the changes in the specification, as it has been developed, and the fact that many of us were attempting to use an experimental specification in production. If you are trying to ensure backwards compatibility with old versions of browsers, and in particular IE10 and 11, the Flexbugs site is a helpful resource. You will see that many of the listed bugs apply to old browser versions and are fixed in current browsers. Each of the bugs has a workaround listed β€” which can save you many hours of puzzling.

If you want to include very old browsers with flexbox support then you can include the vendor prefixes in your CSS in addition to the unprefixed version. This is becoming less and less of a requirement today as support is widespread.

.wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

Autoprefixer Online is a useful way to see which prefixes are recommended, depending on how many versions you wish to go back with browser support. You can also check Can I Use for information about when prefixes were removed in browsers to make your decision.

Given that flexbox usage is initiated with value of the display property, when needing to support very old browsers which do not support flexbox at all, fallbacks can be created by overwriting one layout method with another. The specification defines what happens if you use other layout methods on an element which then becomes a flex item.

Floated items

β€œfloatΒ andΒ clearΒ do not create floating or clearance ofΒ flex item, and do not take it out-of-flow.” — 3. Flex Containers

In the following live example, I have floated two blocks and then set display: flex

on the container. The items are now flex items, which means they stretch to equal height. Any float behaviour does not apply.

You can test the fallback behaviour by removingΒ display: flex from the wrapper.

display: inline-block

Once an inline-block item becomes a flex item, it is blockified and so behavior of display: inline-block like preserving white space between items no longer applies.

Remove display: flex to see the fallback behavior. You’ll see white space added between the items, which is what happens when using display: inine-block as it prefers white space like other inline items.

display: table-

The CSS table display properties are potentially very useful as a fallback, due to the fact that they allow design patterns such as full height columns and vertical centering and work back as far as Internet Explorer 8.

If you use display: table-cell on an item in your HTML it takes on the styling of an HTML table cell. CSS creates anonymous boxes to represent these items so that you do not need to wrap each item in a wrapper to represent the HTML table row, and a second one to represent the table element itself, You can’t see or style these anonymous boxes; they are there purely to fix up the tree.

If you then declare display: flex on the parent item, these anonymous boxes do not get created and so your item remains a direct child and can become a flex item β€” losing any of the table display features.

β€œNote:Β Some values ofΒ displayΒ normally trigger the creation of anonymous boxes around the original box. If such a box is aΒ flex item, it is blockified first, and so anonymous box creation will not happen. For example, two contiguousΒ flex itemsΒ withΒ display: table-cellΒ will become two separateΒ display: blockΒ flex items, instead of being wrapped into a single anonymous table.” — 4. Flex Items

The vertical-align property

The live example below demonstrates use of the vertical-align property along with display: inline-block. Both display: table-cell and display: inline-block allow for the use of this property. Use of vertical-align enables vertical alignment prior to flexbox. The property is ignored by flexbox and so you can use it in conjunction with display: table-cell or display: inline-block as a fallback and then safely use box alignment properties in flexbox instead.

You can use feature queries to detect flexbox support:

@supports (display: flex) {
  // code for supporting browsers
}

Note that Internet Explorer 11 does not support feature queries yet does support flexbox.

If you decide the IE11 implementation is too buggy and you wish to serve it the fallback layout then you could use feature queries to serve flexbox rules only to those browsers with good flexbox support. Remember that if you want to include versions of browsers that had vendor-prefixed flexbox you would need to include the prefixed version in your feature query. The following feature query would include UC Browser, which supports feature queries and old flexbox syntax, prefixed:

@supports (display: flex) or (display: -webkit-box) {
  // code for supporting browsers
}

For more information about using Feature Queries see Using Feature Queries in CSS on the Mozilla Hacks blog.

While I’ve spent some time in this guide going through potential issues and fallbacks, flexbox is very much ready for you to be using in production work. This guide will help you in those cases where you do come across an issue or have the requirement to support older browsers.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ display: — ms-flex; -ms-justify-content: center; Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² IE10?



ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² IE10?

.foo {
    display: -ms-flex; 
    -ms-justify-content: center;
}

Π§Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ?

css internet-explorer-10 flexbox justify
ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ user2590633 Β  Β  17 июля 2013 Π² 09:18

2 ΠΎΡ‚Π²Π΅Ρ‚Π°


  • ie10 ΠΈ flexboxes? (ΠΊΠΎΡˆΠΌΠ°Ρ€)

    К соТалСнию, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΌΠΎΠ΅Π³ΠΎ сайта совмСстимым с Internet Explorer 10, ΠΈ Ρƒ мСня Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π΄Π°ΠΆΠ΅ послС прочтСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΈΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС Π²ΠΎΡ‚ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ css: .uberflex { display: flex; flex-direction: column; flex-wrap: wrap; justify-content: flex-start;…

  • Flexbox Π² IE10

    Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ flex box Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² IE10, Π½ΠΎ ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Safari, Chrome ΠΈ Firefox Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ IE10 Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π½Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚? сайт CodePen: http://codepen.io/anon/pen/vcEGH / display: -moz-box; /* OLD — Firefox 19- (doesn’t work very well) */ display:…



49

IE10 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Flexbox с ΠΌΠ°Ρ€Ρ‚Π° 2012 Π³ΠΎΠ΄Π° . Π­Ρ‚ΠΈ свойства ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ этим:

.foo {
    display: -ms-flexbox;
    -ms-flex-pack: center;
}

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ cimmanon Β  Β  17 июля 2013 Π² 10:11



24

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ мСстом для Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис для всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² являСтся http://the-echoplex.net/flexyboxes/

Для цСнтрирования элСмСнтов ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ: (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Chrome,FF,Opera 12.1+ ΠΈ IE 10+)

FIDDLE

<div>
  <div>A</div>
  <div>B</div>
  <div>C</div>
</div>

CSS

. flex-container {

    height: 100%;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-direction: normal;
    -moz-box-direction: normal;
    -webkit-box-orient: horizontal;
    -moz-box-orient: horizontal;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -moz-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-content: stretch;
    -ms-flex-line-pack: stretch;
    align-content: stretch;
    -webkit-box-align: center;
    -moz-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    }
.flex-item
{
    width: 100px;
    height:100px;
    background: brown;
    margin: 0 10px;
}

/*
    Legacy Firefox implementation treats all flex containers
    as inline-block elements. 
*/

@-moz-document url-prefix() {
.flex-container {
    width: 100%;
    -moz-box-sizing: border-box;
    }

}

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Danield Β  Β  17 июля 2013 Π² 10:20


ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ вопросы:


ΠŸΠΎΡ‡Π΅ΠΌΡƒ justify-content: center Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² IE?

Π£ мСня Π΅ΡΡ‚ΡŒ этот простой div с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ . justify-content: center; ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с использованиСм Firefox ΠΈ Chrome, Π½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° IE 11: #div { height: 200px; width: 50px; border:…


Chrome Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ пСрСопрСдСляСт justify-content для flex box

Π£ мСня Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Chrome 40.0.2214.93, ΠΊΠΎΠ³Π΄Π°, Ссли я ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽ justify-content для элСмСнта, я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π― создал JS Fiddle для этого здСсь:…


ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с IE10 ΠΈ flexbox — ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠ°Ρ€Ρ‚Π° 2012 Π³ΠΎΠ΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ΠΌΠ°ΠΊΠ΅Ρ‚ flexbox совмСстимым с IE10, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, насколько ΠΌΠ½Π΅ извСстно, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ flexboxes ΠΎΡ‚ ΠΌΠ°Ρ€Ρ‚Π° 2012 Π³ΠΎΠ΄Π°. Π― ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» всС Ρ‡Π΅Ρ€Ρ‚ΠΎΠ²Ρ‹ синтаксисы ΠΈ ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ, Π½ΠΎ…


ie10 ΠΈ flexboxes? (ΠΊΠΎΡˆΠΌΠ°Ρ€)

К соТалСнию, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΌΠΎΠ΅Π³ΠΎ сайта совмСстимым с Internet Explorer 10, ΠΈ Ρƒ мСня Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π΄Π°ΠΆΠ΅ послС прочтСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΈΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС Π²ΠΎΡ‚ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ css:…


Flexbox Π² IE10

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ flex box Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² IE10, Π½ΠΎ ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Safari, Chrome ΠΈ Firefox Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ IE10 Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π½Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚? сайт CodePen:…


Flex auto margin Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² IE10 / 11

Π£ мСня Π΅ΡΡ‚ΡŒ слоТный ΠΌΠ°ΠΊΠ΅Ρ‚, Π³Π΄Π΅ я Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ flexbox. Π—Π°Ρ‚Π΅ΠΌ послСдний элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ margin-right:auto; , примСняСмый для выталкивания элСмСнтов…


— ms-flexbox Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² IE8

Π’ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… я написал: display: flex; justify-content: space-between; ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» для IE11, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ я понял, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для IE8, поэтому я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΅Ρ‰Π΅ Π΄Π²Π΅ строки: display: flex;. ..


дисплСй: flex Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Explorer

Мой Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€: .back_pattern { display: flex; display: -ms-flexbox; -ms-flex-pack: center; flex-direction: column; align-content: center; justify-content: center; min-height: 100vh; width:…


justify-content: Ρ†Π΅Π½Ρ‚Ρ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° flex:100% Π² мобильном Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСтку ссылок Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3 Π½Π° 3 flexbox, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Π΅Ρ‚ΠΊΠ° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ смотрится Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² мобильной вСрсии элСмСнты Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ ΠΏΠΎ…


CSS justify-content: ΠΏΡ€ΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ IE11 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

Π’ ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρƒ мСня Π΅ΡΡ‚ΡŒ progressbar, ΠΈ ΠΎΠ½ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, ΠΊΡ€ΠΎΠΌΠ΅ IE11 (<11 я Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽ). Π’ΠΎ всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… это выглядит Ρ‚Π°ΠΊ: А Π² IE11 это выглядит Ρ‚Π°ΠΊ: я Π½Π΅ знаю,…

наглядноС Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² систСму ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ элСмСнтов Π½Π° Π²Π΅Π±-страницС

CSS Flexbox β€” это тСхнология для создания слоТных Π³ΠΈΠ±ΠΊΠΈΡ… ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π·Π° счёт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния элСмСнтов Π½Π° страницС. О самой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΈΡˆΡƒΡ‚ здСсь. ΠœΡ‹ ΠΆΠ΅ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ возмоТности CSS Flexbox с использованиСм Π³ΠΈΡ„ΠΎΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π’Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π½Π΅ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ Π½Π°ΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

1

display: flex

Π•ΡΡ‚ΡŒ страница:

На Π½Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ 4 div Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²Π½ΡƒΡ‚Ρ€ΠΈ сСрого div. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ div Π΅ΡΡ‚ΡŒ свойство display: block. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всю ΡˆΠΈΡ€ΠΈΠ½Ρƒ строки. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с CSS Flexbox, Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ. ДСлаСтся это Ρ‚Π°ΠΊ:

#container {
  display: flex;
}

Π’Π°ΠΊ Ρƒ Π±Π»ΠΎΠΊΠΎΠ² появилось свойство flex-контСкст, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² дальнСйшСм ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠΌΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ с использованиСм стандартного CSS.

2

flex-direction

Π£ flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ оси: главная ΠΈ пСрпСндикулярная Π΅ΠΉ.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ вдоль Π³Π»Π°Π²Π½ΠΎΠΉ оси β€” слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ИмСнно поэтому Π±Π»ΠΎΠΊΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡΡ‚Ρ€ΠΎΠΈΠ»ΠΈΡΡŒ Π² линию, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ display: flex. А Π²ΠΎΡ‚ flex-direction позволяСт Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ ось.

#container {
  display: flex;
  flex-direction: column;
}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ flex-direction: column Π½Π΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ оси, пСрпСндикулярной Π³Π»Π°Π²Π½ΠΎΠΉ. Главная ось сама мСняСт своё располоТСниС, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° свСрху Π²Π½ΠΈΠ·.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° свойств для flex-direction: row-reverse ΠΈ column-reverse.

3

justify-content

ΠžΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ элСмСнтов ΠΏΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ оси:

#container {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
}

Justify-content ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 5Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

  1. flex-start
  2. flex-end
  3. center
  4. space-between
  5. space-around

Space-between Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. Space-around Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Ρ‘Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ.

4

align-items

Если justify-content Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с главной осью, Ρ‚ΠΎ align-items Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с осью, пСрпСндикулярной Π³Π»Π°Π²Π½ΠΎΠΉ оси. ВСрнёмся ΠΊ flex-direction: row ΠΈ пройдёмся ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ align-items:

  1. flex-start
  2. flex-end
  3. center
  4. stretch
  5. baseline

Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для align-items: stretch высота Π±Π»ΠΎΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Π° auto. Для align-items: baseline Ρ‚Π΅Π³ΠΈ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΈΠ½Π°Ρ‡Π΅ получится Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ оси, объСдиним justify-content с align-items и посмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΒ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ для Π΄Π²ΡƒΡ… свойств flex-direction:

5

align-self

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ элСмСнты ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

#container {
  align-items: flex-start;
}
. square#one {
  align-self: center;
}
// Only this square will be centered.

Для Π΄Π²ΡƒΡ… Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ align-self, Π° для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… β€” align-items: center ΠΈ flex-direction: row.

6

flex-basis

ΠžΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнтов Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ свойствами CSS Flexbox:

flex-basis влияСт Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнтов вдоль Π³Π»Π°Π²Π½ΠΎΠΉ оси. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ случится, Ссли ΠΌΡ‹Β ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ оси:

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ высоту элСмСнтов: flex-basis ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ высоту элСмСнтов, Ρ‚Π°ΠΊ ΠΈΒ ΠΈΡ…Β ΡˆΠΈΡ€ΠΈΠ½Ρƒ в зависимости от направлСния оси.

7

flex-grow

Π­Ρ‚ΠΎ свойство Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. Для Π½Π°Ρ‡Π°Π»Π° Π·Π°Π΄Π°Π΄ΠΈΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π² 120px:

ΠŸΠΎΒ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ flex-grow Ρ€Π°Π²Π½ΠΎ 0. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠ°ΠΌ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ…. Π—Π°Π΄Π°Π΄ΠΈΠΌ flex-grow Ρ€Π°Π²Π½Ρ‹ΠΌ 1 для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±Π»ΠΎΠΊΠΈ заняли ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ мСсто Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Но Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ flex-grow: 1? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ flex-grow Ρ€Π°Π²Π½Ρ‹ΠΌ 999:

Π˜β€¦ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Β ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. Π’Π°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ flex-grow ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ значСния, Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅Β Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρƒ flex-grow, Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΎΠ½ΠΎ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ:

Π’Π½Π°Ρ‡Π°Π»Π΅ flex-grow ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Ρ€Π°Π²Π΅Π½ 1, Π² суммС получится 6. Π—Π½Π°Ρ‡ΠΈΡ‚, наш ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½ Π½Π° 6 частСй. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ 1/6 Ρ‡Π°ΡΡ‚ΡŒ доступного пространства Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Когда flex-grow Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° становится Ρ€Π°Π²Π½Ρ‹ΠΌ 2, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ дСлится Π½Π° 7 частСй: 1 + 1 + 2 + 1 + 1 + 1. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2/7 пространства, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ β€” ΠΏΠΎ 1/7. Π˜Β Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

flex-grow Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π³Π»Π°Π²Π½ΠΎΠΉ оси, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Ρ‘ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

8

flex-shrink

ΠŸΡ€ΡΠΌΠ°Ρ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ flex-grow. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚, насколько Π±Π»ΠΎΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅. flex-shrink ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° элСмСнты Π½Π΅ Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Вы опрСдСляСтС, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒΡΡ Π²Β Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ…, Π°Β ΠΊΠ°ΠΊΠΈΠ΅Β β€” Π½Π΅Ρ‚. ΠŸΠΎΒ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ flex-shrink для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Ρ€Π°Π²Π½ΠΎ 1. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ.

Π—Π°Π΄Π°Π΄ΠΈΠΌ flex-grow ΠΈ flex-shrink Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ 1:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ помСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ flex-shrink для Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π° 0. Π•ΠΌΡƒ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ»ΠΈ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ, поэтому Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π° останСтся Ρ€Π°Π²Π½ΠΎΠΉ 120px:

flex-shrink основываСтся Π½Π° пропорциях. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° flex-shrink Ρ€Π°Π²Π΅Π½ 6, Π° Ρƒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ½ Ρ€Π°Π²Π΅Π½ 2, Ρ‚ΠΎ, это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° быстрСС, Ρ‡Π΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅.

9

flex

ЗамСняСт flex-grow, flex-shrink ΠΈ flex-basis. ЗначСния ΠΏΠΎΒ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 0 (grow) 1 (shrink) auto (basis).

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° Π±Π»ΠΎΠΊΠ°:

.square#one {
  flex: 2 1 300px;
}
.square#two {
  flex: 1 2 300px;
}

Π£ ΠΎΠ±ΠΎΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ flex-basis. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ Π² 300px (ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°: 600px плюс margin ΠΈ padding). Но ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π°Ρ‡Π½Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ…, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ (с большим flex-grow) Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Π²Π° Ρ€Π°Π·Π° быстрСС, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ (с наибольшим flex-shrink) Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π² Π΄Π²Π° Ρ€Π°Π·Π° быстрСС:

Π•Ρ‰Ρ‘ большС возмоТностСй свойства Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ руководствС ΠΏΠΎ CSS flex​.

10

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ

Как с CSS Flexbox мСняСтся Ρ€Π°Π·ΠΌΠ΅Ρ€?

Когда увСличиваСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΎΠ½ Π½Π΅ становится Π² Π΄Π²Π° Ρ€Π°Π·Π° большС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ становится Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ flex-grow ΠΈ flex-shrink ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π°Β Ρ‚Π΅ΠΌΠΏ роста и сокращСния.

НСмного ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°: 640px. Π’Ρ‹Ρ‡Ρ‚Π΅ΠΌ ΠΏΠΎΒ 20px с каТдой стороны для padding, ΠΈ Ρƒ нас останСтся 600px для Π΄Π²ΡƒΡ… Π±Π»ΠΎΠΊΠΎΠ². Когда ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° становится Ρ€Π°Π²Π½ΠΎΠΉ 430px (потСря Π² 210px), ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ (flex-shrink: 1) тСряСт 70px. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ (flex-shrink: 2) тСряСт 140px. Когда ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ сТимаСтся Π΄ΠΎ 340px, ΠΌΡ‹ тСряСм 300px. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ тСряСт 100px, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” 200px. Π’ΠΎ ΠΆΠ΅ самоС происходит ΠΈ с flex-grow.

Если Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ CSS Grid, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с нашСй ΡΡ‚Π°Ρ‚ΡŒΡ‘ΠΉ, Π³Π΄Π΅ ΠΌΡ‹ рассматриваСм Flexbox ΠΈ Grid.

​

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«How Flexbox worksβ€Šβ€”β€Šexplained with big, colorful, animated gifsΒ»

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ flex, flexbox

ОписаниС flex Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

Основная идСя flex Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ flex конструкций: обСспСчив Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ прСдоставив ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… настроСк. Π”Π°Π½Π½Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ прСдоставляСтся бСсплатно ΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° сайтС cssworld.ru.

Для простоты, здСсь ΠΈ Π΄Π°Π»Π΅Π΅, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ называСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт, Π° Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты flex Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ИспользованиС

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° прСдустановлСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ЗначСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ Ρ„ΠΎΠ½ΠΎΠΌ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ самом Π½ΠΈΠ·Ρƒ, ΠΏΠΎΠ΄ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ просмотром, отобраТаСтся CSS ΠΊΠΎΠ΄ для Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… установлСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ значСния Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΈ отсутствии выдСлСния.

Для удобства, процСсс ΠΏΠΎΠ΄Π΅Π»Π΅Π½ Π½Π° Ρ‚Ρ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ составныС части, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ справочный Ρ€Π°Π·Π΄Π΅Π»: ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π‘Π»ΠΎΠΊΠΈ, Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

1. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Настройка ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° flex Π±Π»ΠΎΠΊΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· установку ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ настройки ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ элСмСнту flex Π±Π»ΠΎΠΊΠΎΠ².

2. Π‘Π»ΠΎΠΊΠΈ

Настройка flex Π±Π»ΠΎΠΊΠΎΠ². Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ количСство Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ², ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ значСния Π΄ΠΎ установлСнных ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ значСния ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния.

Для установки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ. Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ Π½Π° Π½Π΅ΠΌ. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ снимаСт Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π’ΠΎ ΠΆΠ΅ самоС Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠ° «Π“ΠΎΡ‚ΠΎΠ²ΠΎ» отобраТаСмая ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ элСмСнтС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ снимаСт Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

Π£ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ (Π΅Π³ΠΎ тСкстовоС Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для Π½Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ установлСнныС значСния.

3. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Помимо Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ CSS стилСй ΠΈ HTML, здСсь Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ряд настроСк совмСстимости Π½Π΅ Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚» ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ «ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² (прСфиксы)». Π”Π°Π½Π½ΠΎΠ΅ дСйствиС добавляСт ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ с прСфиксами -ms- (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для IE10) ΠΈ -webkit- (всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹).

HTML5 | Flexbox

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Flexbox. Flex Container

ПослСднСС обновлСниС: 18.04.2017

Flexbox — это ΠΎΠ±Ρ‰Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ для модуля Flexible Box Layout, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ имССтся Π² CSS3. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ опрСдСляСт особый Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ/вСрстки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся flex layout. Π’ этом ΠΏΠ»Π°Π½Π΅ Flexbox прСдоставляСт ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ созданию ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отличаСтся ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±Π»ΠΎΡ‡Π½ΠΎΠΉ вСрстки. Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ описаниС стандарта ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² спСцификации.

Благодаря Flexbox ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС, комплСксныС интСрфСйсы, Π³Π΄Π΅ ΠΌΡ‹ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ элСмСнтов, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ прСдставлСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Flexbox довольно прост Π² использовании. ЕдинствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, — это ΠΊΡ€ΠΎΡΡΠ±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ. НапримСр, Π² Internet Explorer ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Flexbox ΠΈ Ρ‚ΠΎ частичная появилась Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² послСднСй вСрсии — IE11. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя всС соврСмСнныС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, Π² Ρ‚ΠΎΠΌ числС Microsoft Edge, Opera, Google Chrome, Safari, Firefox, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ модуля.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ flexbox ΡΠ²Π»ΡΡŽΡ‚ΡΡ flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (flex container) ΠΈ flex-элСмСнты (flex items). Flex container прСдставляСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ элСмСнт, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ flex-элСмСнты.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ вСрстки flexbox, стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС понятия.

Одно ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… понятий прСдставляСт main axis ΠΈΠ»ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ось. Π­Ρ‚ΠΎ условная ось Π²ΠΎ flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, вдоль ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ flex-элСмСнты.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ Π² Π²ΠΈΠ΄Π΅ строки ΠΈ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ Π² Π²ΠΈΠ΄Π΅ столбца. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° располоТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ось. Если располоТСниС Π² Π²ΠΈΠ΄Π΅ строки, Ρ‚ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ось Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Если располоТСниС Π² Π²ΠΈΠ΄Π΅ столбца, Ρ‚ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ось Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ свСрху Π²Π½ΠΈΠ·.

Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ main start ΠΈ main end ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ соотвСтствСнно Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ оси, Π° расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ обозначаСтся ΠΊΠ°ΠΊ main size.

ΠšΡ€ΠΎΠΌΠ΅ основной оси сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ попСрСчная ось ΠΈΠ»ΠΈ cross axis. Она пСрпСндикулярна основной. ΠŸΡ€ΠΈ располоТСнии элСмСнтов Π² Π²ΠΈΠ΄Π΅ строки cross axis Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° свСрху Π²Π½ΠΈΠ·, Π° ΠΏΡ€ΠΈ располоТСнии Π² Π²ΠΈΠ΄Π΅ столбца ΠΎΠ½Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Начало ΠΏΠΎΠΏΠ΅Ρ€Π΅Ρ‡Π½ΠΎΠΉ оси обозначаСтся ΠΊΠ°ΠΊ cross start, Π° Π΅Π΅ ΠΊΠΎΠ½Π΅Ρ† — ΠΊΠ°ΠΊ cross end. РасстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ описываСтся Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ cross size.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли элСмСнты Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² строку, Ρ‚ΠΎ main size Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈΠ»ΠΈ элСмСнтов, Π° cross size — ΠΈΡ… высоту. Если ΠΆΠ΅ элСмСнты Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² столбик, Ρ‚ΠΎ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, main size прСдставляСт высоту ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ элСмСнтов, Π° cross size — ΠΈΡ… ΡˆΠΈΡ€ΠΈΠ½Ρƒ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Для создания flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ стилСвому свойству display ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: flex ΠΈΠ»ΠΈ inline-flex.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ Π²Π΅Π±-страницу, которая примСняСт flexbox:


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Flexbox Π² CSS3</title>
        <style>
			.flex-container {
				display: flex;
			}
			.flex-item {
				text-align:center;
				font-size: 1. 1em;
				padding: 1.5em;
				color: white;
			}
			.color1 {background-color: #675BA7;}
			.color2 {background-color: #9BC850;}
			.color3 {background-color: #A62E5C;}
        </style>
    </head>
    <body>
        <div>
			<div>Flex Item 1</div>
			<div>Flex Item 2</div>
			<div>Flex Item 3</div>
		</div>
    </body>
</html>

Для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° flex-container установлСно свойство display:flex. Π’ Π½Π΅ΠΌ располагаСтся Ρ‚Ρ€ΠΈ flex-элСмСнта.

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ flex опрСдСляСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΊΠ°ΠΊ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ элСмСнт, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ inline-flex опрСдСляСт элСмСнт ΠΊΠ°ΠΊ строчный (inline). Рассмотрим ΠΎΠ±Π° способа Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Flexbox Π² CSS3</title>
        <style>
			. flex-container {
				display: flex;
				border:2px solid #ccc;
			}
			.inline-flex-container {
				display: inline-flex;
				border:2px solid #ccc;
				margin-top:10px;
			}
			.flex-item {
				text-align:center;
				font-size: 1.1em;
				padding: 1.5em;
				color: white;
			}
			.color1 {background-color: #675BA7;}
			.color2 {background-color: #9BC850;}
			.color3 {background-color: #A62E5C;}
        </style>
    </head>
    <body>
        <div>
			<div>Flex Item 1</div>
			<div>Flex Item 2</div>
			<div>Flex Item 3</div>
		</div>
		
		<div>
			<div>Flex Item 1</div>
			<div>Flex Item 2</div>
			<div>Flex Item 3</div>
		</div>
    </body>
</html>

Π’ частности, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ растягиваСтся ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅ страницы, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ мСста, сколько Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для flex-элСмСнтов.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ Π»ΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Flexbox?

Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅
1. способСн ΡΠ³ΠΈΠ±Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΡΠ³ΠΈΠ±Π°Ρ‚ΡŒΡΡ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ для рСагирования Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈΠ»ΠΈ условия.

имя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅
1. ТСсткий, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Flexible Box, Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ flexbox, являСтся самым послСдним ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Он углубляСтся Π² основы Π±Π»ΠΎΡ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ CSS, прСдоставляя Π½Π°ΠΌ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ опрСдСляСтся Π² нашСм CSS ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, Π° Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ β€” это всСго лишь ΠΌΠ΅Π΄ΠΈΠ°-запрос. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ ΠΌΠΈΡ€Π΅, Π³Π΄Π΅ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠ΅ области ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈΠ»ΠΈ массы ΠΊΠΎΠ΄Π° для создания Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Ρ… сСток . Flexbox Π΄Π΅Π»Π°Π΅Ρ‚ всю Π³Ρ€ΡΠ·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Для нас это просто простая рСализация. ΠœΡ‹ опрСдСляСм флСкс-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΈ Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ флСкс-элСмСнты.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Flexbox?

Π’ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ flexbox, согласно MDN :

Гибкая ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ° CSS3, ΠΈΠ»ΠΈ flexbox, прСдставляСт собой Ρ€Π΅ΠΆΠΈΠΌ ΠΌΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ располоТСниС элСмСнтов Π½Π° страницС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ элСмСнты Π²Π΅Π΄ΡƒΡ‚ сСбя прСдсказуСмо, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΠΊΠ΅Ρ‚ страницы Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ экрана ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌ устройствам отобраТСния.

ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ нСсколько flex-элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ располоТСниС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго CSS. Π£ нас Π΅ΡΡ‚ΡŒ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ нашСй ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ возмоТности бСсконСчными. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

  1. flex-direction
  2. justify-content Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ 3 элСмСнта ΠΏΡ€ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ ΡˆΠΈΡ€ΠΈΠ½Π΅ 50% ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, слСдуСт Π»ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ элСмСнты слСва, справа, ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ, Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ с Ρ€Π°Π²Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠΈΡ…, наряду с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ.
  3. flex-wrap

Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ лишь нСбольшим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ возмоТностСй flexbox, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, посСтив руководство ΠΏΠΎ Flexbox ΠΏΠΎ MDN . Π― ΠΏΡ€ΠΈΠ·Ρ‹Π²Π°ΡŽ вас ΠΏΠΎΠΉΡ‚ΠΈ Π½Π° экспСримСнт ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ, Π½ΠΎ я Π½Π΅ Π±ΡƒΠ΄Ρƒ Π±ΠΎΠΌΠ±Π°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вас большС Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ flexbox развивался Π½Π° протяТСнии ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Flexbox

Flexbox Π² настоящСС врСмя становится всС Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ растущСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π΄Π½Π΅ΠΌ, Π½ΠΎ фактичСски ΠΎΠ½ сущСствуСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ с 2009 Π³ΠΎΠ΄Π°. Учитывая это, Π² наши Π΄Π½ΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ имССтся мноТСство Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… старыС вСрсии (хотя это Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΡΡ‡Π΅Π·Π°Ρ‚ΡŒ).

Π’ Π΄Π²ΡƒΡ… словах:

  • БпСцификация 2009 Π³ΠΎΠ΄Π° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π°, ΠΈ вмСстС с Π½Π΅ΠΉ ΠΏΡ€ΠΈΡˆΠ»ΠΈ всС объявлСния Ρ‚ΠΈΠΏΠ° ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ пособия ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ свойства Ρ‚ΠΈΠΏΠ° box- Π’ΠΎΡ‚ индСкс собствСнности ΠΎΡ‚ 2009 спСц .
  • Π’ 2011 Π³ΠΎΠ΄Ρƒ спСцификации Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π»ΠΎΠ²ΠΊΠΎ измСнились. Flex-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ box-*display: flexboxΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ здСсь ). Π‘Ρ‹Π»Π° Ρ‚Π°ΠΊΠΆΠ΅ функция flex () .
  • Π’ 2012 Π³ΠΎΠ΄Ρƒ спСцификация Π±Ρ‹Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ​​до Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ сСгодня. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ display: inline-flexboxdisplay: flex

ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ тСкущая вСрсия здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ, ΠΈ это ΠΎΡ‡Π΅Π½ΡŒ Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΠΉ. Π’ΠΎΡ‚ тСкущая спСцификация ΠΎΡ‚ W3C, которая содСрТит ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π΄Π΅Ρ‚Π°Π»ΡŒ.

Flexbox Π² дСйствии

Достаточно ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ flexbox, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ΠΎΡ‚ наша Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°:

 <div>
  <div>
    <h3>Item 1</h3>
  </div>
  <div>
    <h3>Item 2</h3>
  </div>
  <div>
    <h3>Item 3</h3>
  </div>
  <div>
    <h3>Item 4</h3>
  </div>
</div>

А Π²ΠΎΡ‚ CSS для запуска flexbox:

 .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}

.item {
  padding: 20px;
  width: 22%;
  background-color: rgb(255,150,100);
}

Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ элСмСнт .container.item Π’ΠΎΡ‚ дСмонстрация CodePen:

ВсС это выглядит Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ достаточно просто, Π½ΠΎ Π½Π΅ слишком Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ. Π£ нас Π΅ΡΡ‚ΡŒ нСсколько Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CSS.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Polyfills

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² высока ΠΈ растСт, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΡƒ, посмотрСв Π½Π° flexbox «МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒβ€¦Β» . Он поддСрТиваСтся Π² IE10 ΠΈ Π²Ρ‹ΡˆΠ΅ ΠΈ Π²ΠΎ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, ΠΊΡ€ΠΎΠΌΠ΅ Opera Mini. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ. Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ IE9 ΠΈ Π½ΠΈΠΆΠ΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΉΡ‚ΠΈ ΠΏΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ polyfill / fallback.

К соТалСнию, СдинствСнным доступным ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ»ΠΎΠΌ являСтся Flexie , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ модСль flexbox 2009 Π³ΠΎΠ΄Π° Π² Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. ΠŸΠΎΠ»ΠΈΡ„ΠΈΠ»ΠΎΠ² для Π½ΠΎΠ²ΠΎΠ³ΠΎ синтаксиса Π½Π΅ сущСствуСт (хотя Π ΠΈΡ‡Π°Ρ€Π΄ Π­Ρ€Ρ€Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создал ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ»Π» flexbox , Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ для ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ синтаксиса ). Π’ любом случаС, Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ сначала Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ»Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, отступлСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ простыми Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Modernizr , инструмСнт обнаруТСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, позволяСт Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ flexbox (ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ), поэтому Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ простым ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

 . container {
  display: block;
}

.flexbox .container {
  display: flex;
}

Если Modernizr Π½Π΅ ваша Π²Π΅Ρ‰ΡŒ, ΠΈ Π²Ρ‹ Π½Π΅ ΠΈΠ΄Π΅Ρ‚Π΅ ΠΏΠΎ Π΄ΠΎΡ€ΠΎΠ³Π΅ Opera, Ρ‚ΠΎ условный CSS ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ всСм, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с IE9 ΠΈ Π½ΠΈΠΆΠ΅.

ΠŸΠΎΡΡ‚Π°Π²Ρ‰ΠΈΠΊ прСфиксов

Бинтаксис flexbox, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, выглядит Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ симпатичным, Π½ΠΎ это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ я Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π°Ρ‡Π°Π» Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ прСфиксах поставщиков. Flexbox β€” это настоящий ΠΊΠΎΡˆΠΌΠ°Ρ€ с прСфиксами поставщиков, Π² основном ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ спСцификация мСнялась 3 Ρ€Π°Π·Π° Π·Π° 3 Π³ΠΎΠ΄Π°. Π‘Ρ‚Π°Ρ€Ρ‹Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ WebKit ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ свойства с прСфиксом webkit

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС эти Π±ΠΎΠ»Π΅Π΅ старыС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²Π°ΠΌ понадобится мноТСство *-box*-flexbox*-flex Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS для нашСго .container

 .container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

Π­Ρ‚ΠΎ Π½Π΅ красиво! Но Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² нашСм распоряТСнии.

Autoprefixer

Autoprefixer β€” это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ соврСмСнный инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски прСфиксируСт ваш CSS для вас. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Ρƒ Grunt, ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° измСнСниями Π² вашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ стилСй. Π­Ρ‚ΠΎ прСкрасный инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ вас ΠΎΡ‚ мноТСства Π³ΠΎΠ»ΠΎΠ²Π½Ρ‹Ρ… Π±ΠΎΠ»Π΅ΠΉ.

Бас и компас

Sass Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ сюда Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ, Ссли ΠΌΡ‹ настроим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ миксины, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ миксов Sass ΠΈ базовая рСализация, взятыС ΠΈΠ· руководства CSS-Tricks для flexbox :

 @mixin flexbox() {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

@mixin flex($values) {
  -webkit-box-flex: $values;
  -moz-box-flex:  $values;
  -webkit-flex:  $values;
  -ms-flex:  $values;
  flex:  $values;
}

@mixin order($val) {
  -webkit-box-ordinal-group: $val;  
  -moz-box-ordinal-group: $val;     
  -ms-flex-order: $val;     
  -webkit-order: $val;  
  order: $val;
}

. container {
  @include flexbox();
}

.item {
  @include flex(1 200px);
  @include order(2);
}

Compass β€” это Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ массу миксов для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Sass. Π£ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ миксин для flexbox, Π½ΠΎ, ΠΊ соТалСнию, ΠΎΠ½ для старого синтаксиса . Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Autoprefixer (упомянутый Π²Ρ‹ΡˆΠ΅) прСкрасно интСгрируСтся с Compass ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС прСфиксы для вас Π±Π΅Π· нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс. УхоТСнная.

НаконСц, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ PHP Π² качСствС прСпроцСссора CSS, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Flexbox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ нСсколько простых Π² использовании ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями flexbox.

Π˜Ρ‚Π°ΠΊ … Π“ΠΎΡ‚ΠΎΠ²Ρ‹ Π»ΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Flexbox?

ΠœΡ‹ посмотрСли Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ flexbox, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ взялся, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΎΡ‚ΠΊΠ°Ρ‚, прСфикс ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Ρ‹. Но всС ΠΆΠ΅, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ сСбя, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π»ΠΈ ΠΌΡ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ это Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Для мСня ΠΎΡ‚Π²Π΅Ρ‚ β€” ΠΎΠ³Π»ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π”Π° . Но Ρƒ этого Π³Ρ€ΠΎΠΌΠΊΠΎΠ³ΠΎ Π΄Π° Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ основной Π°ΠΊΡ†Π΅Π½Ρ‚:

  1. Π—Π½Π°ΠΉΡ‚Π΅ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ ваш Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ€Ρ‹Π½ΠΎΠΊ. Если Π²Ρ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚Π΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния HTML5, Ρ‚ΠΎΠ³Π΄Π° сдСлайтС это. Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ систСму бухгалтСрского ΡƒΡ‡Π΅Ρ‚Π° для бизнСса с использованиСм Windows 98, Π²Π°ΠΌ, вСроятно, Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ подальшС!
  2. ΠŸΠΎΠΉΠΌΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ старой вСрсии ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ, Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π±Π΅Π· Ρ‚ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² . Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ подальшС ΠΎΡ‚ полифилсов β€” Π½Π΅Ρ‚ смысла Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ ΠΈ Π±Π΅Π· Ρ‚ΠΎΠ³ΠΎ ΡΡ‚Π°Ρ€ΡƒΡŽ систСму.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ flexbox Π² ваш ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ подходящий ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ фантастичСская ΠΈ мощная функция, ΠΈ Π΅ΠΉ ΠΎΡ‡Π΅Π½ΡŒ вСсСло ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Flexbox — CSS: каскадныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй

Flexbox ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ поддСрТиваСтся соврСмСнными Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ. Π’ этом руководствС ΠΌΡ‹ рассмотрим, насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ Flexbox поддСрТиваСтся Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, рСсурсы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для создания ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Как ΠΈ всС спСцификации CSS, спСцификация Flexbox ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»Π° большоС количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ стала ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ Π² Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ нас Π΅ΡΡ‚ΡŒ сСгодня.Π’ качСствС ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° Π² Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС спСцификации, ΠΎΠ΄Π½Π°ΠΊΠΎ этого Π½Π΅ Π±Ρ‹Π»ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… итСрациях flexbox.

Flexbox Π±Ρ‹Π» ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. Π’ Ρ‚ΠΎ врСмя ΠΌΠ΅Ρ‚ΠΎΠ΄ создания ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»ΡΡ Π² использовании прСфикса поставщика. ИдСя этих прСфиксов Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ спСцификации, Π½Π΅ конфликтуя с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ рСализациями.ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π½Π΅ Π² использовании ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π² производствСнном ΠΊΠΎΠ΄Π΅. Однако Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ прСфиксы использовались Π² производствСнном ΠΊΠΎΠ΄Π΅, ΠΈ измСнСния Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ спСцификации Π²Ρ‹Π½ΡƒΠ΄ΠΈΠ»ΠΈ людСй ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ свои сайты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡ‚ΡΡ‚Π°Π²Π°Ρ‚ΡŒ.

Π’ 2009 Π³ΠΎΠ΄Ρƒ спСцификация выглядСла совсСм ΠΈΠ½Π°Ρ‡Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ display: box , ΠΈ Π±Ρ‹Π»ΠΎ нСсколько свойств box- * , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выполняли Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сСгодня ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ· flexbox.

Π‘Ρ‹Π»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ спСцификации, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΎ синтаксис Π΄ΠΎ отобраТСния : flexbox — это снова Π±Ρ‹Π»ΠΎ с прСфиксом поставщика.

Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ спСцификация Π±Ρ‹Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ display: flex ΠΊΠ°ΠΊ способ создания Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ спСцификации.

БущСствуСт нСсколько старых статСй, относящихся ΠΊ Π±ΠΎΠ»Π΅Π΅ старым вСрсиям flexbox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ довольно Π»Π΅Π³ΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° измСнСния способа создания Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Если Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, относящССся ΠΊ display: box ΠΈΠ»ΠΈ display: flexbox , это ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ информация.

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ flexbox прСвосходно, ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Π½Π΅ Π½ΡƒΠΆΠ΅Π½ прСфикс. Safari Π±Ρ‹Π» послСдним ΠΈΠ· основных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², ΡƒΠ΄Π°Π»ΡΠ²ΡˆΠΈΡ… прСфиксы, с выпуском Safari 9 Π² 2015 Π³ΠΎΠ΄Ρƒ. Π”Π²Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ для кросс-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠΉ совмСстимости:

  • Internet Explorer 10, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° вСрсия спСцификации display: flexbox с прСфиксом -ms- .
  • UC Browser, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ 2009 display: box Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с прСфиксом -webkit- .

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ Internet Explorer 11 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ display: flex , ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ ряд ошибок Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с flexbox связаны с измСнСниями Π² спСцификации ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Ρ‚Π΅ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· нас ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π² производствС. Если Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со старыми вСрсиями Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π² частности с IE10 ΠΈ 11, сайт Flexbugs ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ рСсурсом.Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· пСрСчислСнных ошибок относятся ΠΊ старым вСрсиям Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ исправлСны Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ошибки ΡƒΠΊΠ°Π·Π°Π½ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ часов Π½Π° Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ старыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ flexbox, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ прСфиксы поставщиков Π² свой CSS Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ вСрсии Π±Π΅Π· прСфиксов. БСгодня это становится всС Ρ€Π΅ΠΆΠ΅ ΠΈ Ρ€Π΅ΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСна.

  .wrapper {
  дисплСй: -webkit-box;
  дисплСй: -webkit-flex;
  дисплСй: -ms-flexbox;
  дисплСй: гибкий;
}  

Autoprefixer Online — это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ способ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ прСфиксы Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ΡΡ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π° сколько вСрсий Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΌΠΎΠ³Ρƒ Π»ΠΈ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° прСфиксы Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Учитывая, Ρ‡Ρ‚ΠΎ использованиС flexbox инициируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ свойства display , ΠΏΡ€ΠΈ нСобходимости ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΡ‡Π΅Π½ΡŒ старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ flexbox, Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΏΡƒΡ‚Π΅ΠΌ пСрСзаписи ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. БпСцификация опрСдСляСт, Ρ‡Ρ‚ΠΎ происходит, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ для элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ становится Π³ΠΈΠ±ΠΊΠΈΠΌ элСмСнтом.

ΠŸΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ

β€œfloat ΠΈ clear Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π·Π°Π·ΠΎΡ€Π° Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ элСмСнта ΠΈ Π½Π΅ выводят Π΅Π³ΠΎ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ°.”- 3. Π“ΠΈΠ±ΠΊΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΆΠΈΠ²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я размСстил Π΄Π²Π° Π±Π»ΠΎΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ установил display: flex Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ элСмСнты ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°ΡΡ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ высоты. НикакоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π½Π΅ примСняСтся.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚, ΡƒΠ΄Π°Π»ΠΈΠ² display: flex ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

display: inline-block

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнт inline-block становится Π³ΠΈΠ±ΠΊΠΈΠΌ элСмСнтом, ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ статус block , ΠΈ поэтому ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ display: inline-block , Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ сохранСниС ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами, большС Π½Π΅ примСняСтся.

Π£Π΄Π°Π»ΠΈΡ‚Π΅ display: flex , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ пустоС пространство, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ использовании display: inline-block , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ пустоС пространство, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ встроСнныС элСмСнты.

display: table-

Бвойства отобраТСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ CSS ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ столбцы Π² ΠΏΠΎΠ»Π½ΡƒΡŽ высоту ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Internet Explorer 8.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ display: table-cell для элСмСнта Π² вашСм HTML, ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ ячСйки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ HTML. CSS создаСт Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ для прСдставлСния этих элСмСнтов, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ для прСдставлСния строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ HTML ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ для прСдставлСния самого элСмСнта Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ нСльзя Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ; ΠΎΠ½ΠΈ здСсь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ.

Если Π²Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ display: flex для Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта, эти Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ поля Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ созданы, ΠΈ поэтому ваш элСмСнт останСтся прямым Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ элСмСнтом ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ элСмСнтом, потСряв Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ отобраТСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

β€œΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. НСкоторыС значСния display ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ созданиС Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π²ΠΎΠΊΡ€ΡƒΠ³ исходного Π±Π»ΠΎΠΊΠ°. Если Ρ‚Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ являСтся Π³ΠΈΠ±ΠΊΠΈΠΌ элСмСнтом, ΠΎΠ½ сначала блокируСтся, поэтому созданиС Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. НапримСр, Π΄Π²Π° смСТных Π³ΠΈΠ±ΠΊΠΈΡ… элСмСнта с display: table-cell станут двумя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ элСмСнтами display: block вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΎΠ΄Π½Ρƒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Β». — 4. Flex Items

Бвойство vertical-align

Π–ΠΈΠ²ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅ дСмонстрируСт использованиС свойства vertical-align вмСстС с display: inline-block .Оба display: table-cell ΠΈ display: inline-block ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это свойство. ИспользованиС vertical-align позволяСт Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ Π΄ΠΎ flexbox. Π­Ρ‚ΠΎ свойство игнорируСтся flexbox, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ вмСстС с display: table-cell ΠΈΠ»ΠΈ display: inline-block Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ вмСсто этого бСзопасно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойства выравнивания поля Π² flexbox.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запросы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для обнаруТСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ flexbox:

  @supports (дисплСй: гибкий) {
  // ΠΊΠΎΠ΄ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²
}  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Internet Explorer 11 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запросы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ flexbox.Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ рСализация IE11 содСрТит слишком ΠΌΠ½ΠΎΠ³ΠΎ ошибок, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² качСствС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запросы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для обслуТивания ΠΏΡ€Π°Π²ΠΈΠ» flexbox Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² с Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ flexbox. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ вСрсии Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π» установлСн flexbox с прСфиксом поставщика, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ с прСфиксом Π² свой запрос Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ UC Browser, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запросы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ старый синтаксис flexbox с прСфиксом:

  @supports (display: flex) ΠΈΠ»ΠΈ (display: -webkit-box) {
  // ΠΊΠΎΠ΄ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²
}  

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± использовании Feature Queries см. ИспользованиС Feature Queries Π² CSS Π² Π±Π»ΠΎΠ³Π΅ Mozilla Hacks.

Π₯отя я ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ этого руководства, рассматривая ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ отступлСния, flexbox ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π³ΠΎΡ‚ΠΎΠ² для использования Π² производствСнной Ρ€Π°Π±ΠΎΡ‚Π΅. Π­Ρ‚ΠΎ руководство ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈΠ»ΠΈ Π²Π°ΠΌ потрСбуСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° старых Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ².

css — Π’Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ flexbox с flex-direction: column ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ

css — Π’Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ flexbox с flex-direction: column ΠΊ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ — qaru

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ Stack Overflow , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ знаниями ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свою ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρƒ.

Бпросил

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ 611 Ρ€Π°Π·

На этот вопрос ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ :

Π—Π°ΠΊΡ€Ρ‹Ρ‚ 2 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄.

Как Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ элСмСнты ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ?

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠ°ΠΊ flex-direction: column; ΠΈ align-items: ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ; .

  .box {
Π³Ρ€Π°Π½ΠΈΡ†Π°: сплошной красный 1px;
ΡˆΠΈΡ€ΠΈΠ½Π°: 100%;
высота: 180 пиксСлСй;

дисплСй: -webkit-box;
дисплСй: -ms-flexbox;
дисплСй: гибкий;

-webkit-box-orient: Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ;
-webkit-box-direction: Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ;
-ms-flex-direction: столбСц;
flex-direction: столбСц;

-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}

.ΠΏΡƒΠ½ΠΊΡ‚{
ΡˆΠΈΡ€ΠΈΠ½Π°: 20%;
Π³Ρ€Π°Π½ΠΈΡ†Π°: сплошной Π·Π΅Π»Π΅Π½Ρ‹ΠΉ 1px;
}  
  
1
2
3
4
5

Π‘ΠΎΠ·Π΄Π°Π½ 19 ΠΌΠ°Ρ€.

ЀСликс А. Π”ΠΆ. ЀСликс А. Π”ΠΆ.

5,85222 Π·ΠΎΠ»ΠΎΡ‚Ρ‹Ρ… Π·Π½Π°ΠΊΠ°2323 сСрСбряных Π·Π½Π°ΠΊΠ°3838 Π±Ρ€ΠΎΠ½Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ²

1

НадСюсь, это сработаСт для вас!

 . ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ°{
     Π³Ρ€Π°Π½ΠΈΡ†Π°: сплошной красный 1px;
    ΡˆΠΈΡ€ΠΈΠ½Π°: 100%;
    высота: 300 пиксСлСй;
    дисплСй: -webkit-box;
    дисплСй: -ms-flexbox;
    дисплСй: гибкий;
    / * -webkit-box-orient: vertical; * /
    -webkit-box-direction: Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ;
    -ms-flex-direction: столбСц;
    flex-direction: столбСц;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    justify-content: center;

}
.ΠΏΡƒΠ½ΠΊΡ‚{
  ΡˆΠΈΡ€ΠΈΠ½Π°: 20%;
  Π³Ρ€Π°Π½ΠΈΡ†Π°: сплошной Π·Π΅Π»Π΅Π½Ρ‹ΠΉ 1px;
}  
  
1
2
3
4
5

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *