Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«HTML5 ΠΈ CSS3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сайтов для Π»ΡŽΠ±Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ устройств. 2-Π΅ ΠΈΠ·Π΄.Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 12

Автор Ѐрэйн .

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

БраузСрная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Flexbox

Π‘Ρ€Π°Π·Ρƒ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: Internet Explorer 9, 8 ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсий Flexbox Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚.

Π§Ρ‚ΠΎ ΠΆΠ΅ касаСтся всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², Ρ‡ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ (ΠΈ практичСски всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств), Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ, Ссли Π½Π΅ всСми свойствами Flexbox. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ адрСсу http://caniuse.com/.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Flexbox, Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСбольшоС, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ отступлСниС.

ΠšΠΎΠΌΡƒ-Ρ‚ΠΎ всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½Ρ‹ прСфиксы

Π― надСюсь, Ρ‡Ρ‚ΠΎ, посмотрСв Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Flexbox, Π²Ρ‹ ΠΎΡ‚Π΄Π°Π΄ΠΈΡ‚Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅ пользС ΠΎΡ‚ Π΅Π³ΠΎ примСнСния ΠΈ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π΅Π³ΠΎ использованиС. Но Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ вСсь ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Flexbox-спСцификаций, β€” Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ ΠΈΠ· Π»Π΅Π³ΠΊΠΈΡ…. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ относящихся ΠΊ Flexbox свойства ΠΈ значСния. Рассмотрим Π΅Π³ΠΎ ΠΊΠΎΠ΄:

.flex {

    display: flex;

    flex: 1;

    justify-content: space-between;

}

ИмСнно Ρ‚Π°ΠΊ свойства ΠΈ значСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² самой послСднСй вСрсии синтаксиса. Но Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ со стороны Android-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² (v4 ΠΈ Π½ΠΈΠΆΠ΅), Π° Ρ‚Π°ΠΊΠΆΠ΅ IE 10, потрСбуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

.flex {

    display: -webkit-box;

    display: -webkit-flex;

    display: -ms-flexbox;

    display: flex;

    -webkit-box-flex: 1;

    -webkit-flex: 1;

        -ms-flex: 1;

            flex: 1;

    -webkit-box-pack: justify;

    -webkit-justify-content: space-between;

       -ms-flex-pack: justify;

            justify-content: space-between;

}

ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ написания всСго этого обусловлСна Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² послСдниС нСсколько Π»Π΅Ρ‚ Π²ΠΎ всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… стали доступны ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ вСрсии Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй, Π½ΠΎ с использованиСм Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ прСфикса производитСля (vendor prefix). Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ производитСля имСлся собствСнный прСфикс. НапримСр, -ms- для Microsoft, -webkit- для WebKit, -moz- для Mozilla ΠΈ Ρ‚. Π΄. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ возмоТности это ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ написания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вСрсий ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ свойства, сначала Π² Ρ„ΠΎΡ€ΠΌΠ΅ вСрсий с прСфиксами, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ β€” Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ вСрсии консорциума W3C.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ написания Π² Π²Π΅Π±-истории являСтся ΠΊΠΎΠ΄ CSS, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π­Ρ‚ΠΎ СдинствСнный способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ ΠΊΡ€ΡƒΠ³Π΅ устройств. Π’ наши Π΄Π½ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ довольно Ρ€Π΅Π΄ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ прСфиксы, Π½ΠΎ Π² ΠΎΠ±ΠΎΠ·Ρ€ΠΈΠΌΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π½Π°ΠΌ придСтся ΠΆΠΈΡ‚ΡŒ, ΡΠΎΒ­ΠΎΠ±Ρ€Π°Π·ΡƒΡΡΡŒ с Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ сущСствования мноТСства Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… использования прСфиксов для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нас ΠΊ Flexbox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ярким ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ нСобходимости указания прСфиксов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вСрсий ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΈ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… спСцификаций Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Но ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ всСго, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для написания Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Π½Π΅ составляСт ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠΉ.

НС знаю, ΠΊΠ°ΠΊ Π²Ρ‹, Π° я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ своС врСмя Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ занятия, Ρ‡Π΅ΠΌ всякий Ρ€Π°Π· Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ вСсь этот объСм ΠΊΠΎΠ΄Π°! ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ свои Π½Π΅Ρ€Π²Ρ‹ Π½Π° использованиС Flexbox, ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΡŒΡ‚Π΅ врСмя Π½Π° настройку Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для автоматичСской расстановки прСфиксов.

Π’Ρ‹Π±ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ расстановки прСфиксов

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Π΅Ρ€Π΅Ρ‡ΡŒ Π½Π΅Ρ€Π²Ρ‹ ΠΈ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ, Π±Π΅Π· особых усилий Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ CSS прСфиксы ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для автоматичСской расстановки прСфиксов. Π›ΠΈΡ‡Π½ΠΎ я Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдством Autoprefixer (https://github.com/postcss/autoprefixer). Оно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ довольно быстро, Π»Π΅Π³ΠΊΠΎ настраиваСтся ΠΈ отличаСтся высокой Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ вСрсии Autoprefixer для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° настроСк, ΠΈ Π²Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдством создания Π½Π° основС использования ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Gulp ΠΈΠ»ΠΈ Grunt). К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдством Sublime Text, Ρ‚ΠΎ сущСствуСт вСрсия, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСпосрСдствСнно ΠΈΠ· Π΅Π³ΠΎ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄: https://github.com/sindresorhus/sublime-autoprefixer. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ вСрсии Autoprefixer для Atom, Brackets ΠΈ Visual Studio.

Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Ссли Π½Π΅ понадобится конкрСтная ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ, прСфиксы ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.

РазбираСмся с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ динамичСского измСнСния

Π£ Flexbox ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основныС характСристики: Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ (direction), Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ (alignment), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ порядка (ordering) ΠΈ динамичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (flexibility). ΠœΡ‹ рассмотрим всС эти характСристики ΠΈ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

Π­Ρ‚ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ простыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ простого пСрСмСщСния Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΠΈΡ… содСрТимого ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Flexbox.

ВСкст, Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΠΎ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ

Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Flexbox ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° example_03-03.

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<div class="CenterMe">

    Hello, I'm centered with Flexbox!

</div>

А Π²ΠΎΡ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ CSS-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠ΄Π°ΡŽΡ‰Π΅Π΅ ΡΡ‚ΠΈΠ»ΡŒ этой Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅:

.CenterMe {

    background-color: indigo;

    color: #ebebeb;

    font-family: 'Oswald', sans-serif;

    font-size: 2rem;

    text-transform: uppercase;

    height: 200px;

    display: flex;

    align-items: center;

    justify-content: center;

}

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠ°Ρ€ «свойство β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π² этом ΠΏΡ€Π°Π²ΠΈΠ»Π΅ просто ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°. Нам интСрСсны лишь Ρ‚Ρ€ΠΈ свойства:

.CenterMe {

    /* Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свойства */

    display: flex;

    align-items: center;

    justify-content: center;

}

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ пользовались Flexbox ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ свойствами ΠΈΠ· родствСнной спСцификации Box Alignment Specification (http://www.w3.org/TR/css3-align/), эти свойства, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, покаТутся Π²Π°ΠΌ нСсколько странными. Рассмотрим, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ….

β€’ display: flex β€” это Ρ…Π»Π΅Π± с маслом Flexbox. А ΠΈΠΌΠ΅Π½Π½ΠΎ, простая настройка элСмСнта Π½Π° Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ Flexbox (Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Π»ΠΎΠΊΡƒ-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ, Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ ΠΈ Ρ‚. Π΄.).

β€’ align-items β€” это свойство ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΡŽ элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ Flexbox ΠΏΠΎ ΠΏΠΎΠΏΠ΅Ρ€Π΅Ρ‡Π½ΠΎΠΉ оси (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ тСкст выравниваСтся ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ).

β€’ justify-content β€” это свойство Π·Π°Π΄Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ содСрТимого ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ Π³Π»Π°Π²Π½ΠΎΠΉ оси. Π§Ρ‚ΠΎ касаСтся строки Flexbox, Ρ‚ΠΎ ΠΎΠ± этом свойствС ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π² тСкстовом процСссорС, Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ тСкст ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ ΠΈΠ»ΠΈ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ (хотя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния justify-content, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ вскорС Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны).

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ свойств Flexbox, рассмотрим Π΅Ρ‰Π΅ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

совСт

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использовался ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ Ρƒ Google ΡˆΡ€ΠΈΡ„Ρ‚ Oswald (с ΠΎΡ‚ΠΊΠ°Ρ‚ΠΎΠΌ ΠΊ ΡˆΡ€ΠΈΡ„Ρ‚Ρƒ sans-serif). Π’ Π³Π»Π°Π²Π΅ 5 ΠΌΡ‹ рассмотрим способы использования ΠΏΡ€Π°Π²ΠΈΠ»Π° @font-face, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для привязки ΠΊ Π·Π°ΠΊΠ°Π·Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнтов

А ΠΊΠ°ΠΊ Π²Π°ΠΌ понравится простой список элСмСнтов ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих элСмСнтов смСщСн Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону?

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит.

Π’ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°:

<div class="MenuWrap">

    <a href="#" class="ListItem">Home</a>

    <a href="#" class="ListItem">About Us</a>

    <a href="#" class="ListItem">Products</a>

    <a href="#" class="ListItem">Policy</a>

    <a href="#" class="LastItem">Contact Us</a>

</div>

А Π²ΠΎΡ‚ ΠΊΠΎΠ΄ CSS:

.MenuWrap {

    background-color: indigo;

    font-family: 'Oswald', sans-serif;

    font-size: 1rem;

    min-height: 2.75rem;

    display: flex;

    align-items: center;

    padding: 0 1rem;

}

.ListItem,

.LastItem {

    color: #ebebeb;

    text-decoration: none;

}

.ListItem {

    margin-right: 1rem;

}

.LastItem {

    margin-left: auto;

}

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятыС ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠ΅ элСмСнты, Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΈΠ»ΠΈ ячСйки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (table-cell)! ΠŸΡ€ΠΈ настройкС display: flex;, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ элСмСнта-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты становятся подстраива­Смыми, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π·Π°Ρ‚Π΅ΠΌ с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ динамичСски измСняСмой Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. ВсС Π²ΠΎΠ»ΡˆΠ΅Π±ΡΡ‚Π²ΠΎ здСсь Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² свойствС margin-left: auto, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ заставляСт этот элСмСнт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ мСсто, доступноС Π² Π΄Π°Π½Π½ΠΎΠΉ сторонС.

ИзмСнСниС порядка слСдования элСмСнтов

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок слСдования элСмСнтов Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ?

МоТно просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ элСмСнту-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ свойство flex-direction: row-reverse;, Π° для смСщСнного элСмСнта вмСсто margin-left: auto Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ margin-right: auto:

.MenuWrap {

    background-color: indigo;

    font-family: 'Oswald', sans-serif;

    font-size: 1rem;

    min-height: 2.75rem;

    display: flex;

    flex-direction: row-reverse;

    align-items: center;

    padding: 0 1rem;

}

.ListItem,

.LastItem {

    color: #ebebeb;

    text-decoration: none;

}

.ListItem {

    margin-right: 1rem;

}

.LastItem {

    margin-right: auto;

}

А Ρ‡Ρ‚ΠΎ Ссли Π½Π°ΠΌ захочСтся Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ элСмСнты Π½Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ, Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ?

Π”Π° запросто. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свойство элСмСнта-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° flex-direction: column; ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ установку ΠΏΠΎΠ»Π΅ΠΉ: