Sass less Ρ‡Ρ‚ΠΎ это

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ LESS ΠΎΡ‚ SASS

Π’Ρ‡Π΅Ρ€Π° ΠΏΠΎΠ» дня ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» Π½Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ LESS ΠΈ Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π°ΠΌΠΈ SASS/SCSS.

Бинтаксис SASS ΠΌΠ½Π΅ ΠΈΠΌΠΏΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ большС Ρ‡Π΅ΠΌ SCSS Π·Π° Π΅Π³ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΡΡ‚ΡŒ. Но большая Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ стилСй Π² SASS ΠΌΠΎΠΆΠ΅Ρ‚ быстро Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС прСимущСства Π΅Π³ΠΎ краткости. Π’ любом случаС Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ SASS ΠΈ SCSS Π½Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°. LESS оказался Π±Π»ΠΈΠΆΠ΅ ΠΊ SCSS Ρ‡Π΅ΠΌ ΠΊ SASS. И, Π² ΠΎΠ±Ρ‰Π΅ΠΌ, это Ρ‚ΠΎΠΆΠ΅ самоС. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΠ° ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ расстановку сил.

1. LESS β€” ΠΌΠΎΠΆΠ΅Ρ‚ client-side с использованиСм JS.

Π’ΠΎΡ‡Π½Π΅Π΅ ΠΎΠ½ Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚, ΠΎΠ½ Π½Π° это ΠΈ расчитан. ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования LESS-ΠΊΠΎΠ΄Π°:

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠΆΠ΅ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ компиляции Π½Π° сСрвСрС (ΠΈ Π½Π° js ΠΈ Π½Π° ruby).

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ странноС свойство. Π—Π°Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ‚ΡŒ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ссли ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ‚ΡŒ Π½Π° сСрвСрС ΠΈ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ ΡƒΠΆΠ°Ρ‚ΡƒΡŽ CSS ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ с SASS?

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° становится Π²ΠΈΠ΄Π½Π° послС изучСния Π½Π΅Π²Π·Ρ€Π°Ρ‡Π½Ρ‹Ρ… самых послСних строках Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ LESS:

Π’ΠΎΡ‚ такая малСнькая одинокая строчка Π΄Π°Π΅Ρ‚ возмоТности ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‡Ρ‚Π°Π»ΠΈ Π²Π΅Ρ€ΡΡ‚Π°Π»ΡŒΡ‰ΠΈΠΊΠΈ с Π½Π°Ρ‡Π°Π»Π° освоСния стилСй. Π’Ρ‹Π·ΠΎΠ² ΠΈΠ· CSS ява-скрипта Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΡƒΡ‡Π΅Ρ‚ фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΡ€ΠΈ создании стилСй.

Π’ΠΎΠ΅ΡΡ‚ΡŒ Ρƒ нас появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сначала Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ DOM, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ CSS прямо Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π”Π°Π»ΡŒΡˆΠ΅ сами Π΄ΡƒΠΌΠ°Π΅ΠΉΡ‚Π΅ ΠΊΠ°ΠΊΠΈΠ΅ возмоТности этот ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚.

НуТно Π»ΠΈ это Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ это вопросу Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ Ρ‡Ρ‚ΠΎ всС ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ клиСнтской нСизвСстности/нСзависимости ΠΈ вСрсткС Π² стилС Β«Π΄Π΅Π»Π°Π΅ΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Ρƒ всСх Π½Π° всСх Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ…Β». Но это Π½Π΅ ΠΏΠΎΠ²ΠΎΠ΄ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ ΠΈ с Π½Π΅ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Ρƒ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π·ΠΈΠ½ΠΎΠ²ΡƒΡŽ вСрстку.

2. LESS, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ SASS/SCSS Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ.

Π’ LESS Π½Π΅Ρ‚ if/then, for ΠΈ Ρ‚.ΠΏ. Π₯отя, учитывая Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ встраиваСтся JS Π΄ΡƒΠΌΠ°ΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ. НС ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π».

3. Π’ LESS ΠΏΡ€ΠΎΡ‰Π΅ миксинг + ΠΌΠΈΠΊΡΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ классы.

ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² LESS ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ свойства Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. БобствСнно класс ΠΈ являСтся миксином. Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Ρ‚ Π² SASS/SCSS. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² LESS ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ CSS Ρ„Π°ΠΉΠ» ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ классы для опрСдСлия своих свойств. НапримСр:

РСзюмС

Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ 1-Π³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° Ρ€Π°Π·Π½ΠΈΡ†Π° Π½Π΅ Π²Π΅Π»ΠΈΠΊΠ° ΠΈ Π²Ρ‹Π±ΠΎΡ€ большСна Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Ρ.

Π›ΠΈΡ‡Π½ΠΎ для мСня LESS выглядит Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ·-Π·Π° своСй простоты. Π¦ΠΈΠΊΠ»Ρ‹ ΠΈ условия Π² стилях ΠΌΠ½Π΅ Π΅Ρ‰Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° Β«box-shadow, linear-gradient, darken’ Π² LESS Π΅ΡΡ‚ΡŒ.

Π”Π°, ΠΏΠΎΠ΄ SASS написано ΡƒΠΆΠ΅ мноТСство Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (compass, bourbone ΠΈ достаточно ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ сообщСство), Π½ΠΎ ΠΏΠΎΠ΄ LESS Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Twitter Bootstrap ΠΈ этого Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ достаточно.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

SASS ΠΏΡ€ΠΎΡ‚ΠΈΠ² LESS

«Какой прСпроцСссорный язык стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для CSS?Β» являСтся ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ вопросом Π² послСднСС врСмя. НСсколько Ρ€Π°Π· мСня ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ ΠΎΠ± этом Π»ΠΈΡ‡Π½ΠΎ, ΠΈ казалось Π±Ρ‹, ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ ΠΏΠ°Ρ€Ρƒ Π΄Π½Π΅ΠΉ этот вопрос поднимался Π² сСти. ΠžΡ‡Π΅Π½ΡŒ приятно Ρ‡Ρ‚ΠΎ бСсСда ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π° ΠΈΠ· Ρ‚Π΅ΠΌΡ‹ ΠΎ ΠΏΠ»ΡŽΡΠ°Ρ… ΠΈ минусах прСпроцСссинга ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ язык являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ. Π—Π° Π΄Π΅Π»ΠΎ!

Если Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ: SASS.

НСмного Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚: SASS Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎ всСм ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ, Π½ΠΎ Ссли Π²Ρ‹ ΡƒΠΆΠ΅ счастливы с LESS β€” это ΠΊΡ€ΡƒΡ‚ΠΎ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π²Ρ‹ ΡƒΠΆΠ΅ упростили сСбС Тизнь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ прСпроцСссинг.

Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚: Π½ΠΈΠΆΠ΅

Π“Ρ€Π°Ρ„ΠΈΠΊ обучСния с Ruby ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой

ЕдинствСнным ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ являСтся синтаксис. Для компиляции созданных Π²Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ CodeKit. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ основы Ruby ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. НавСрноС Π²Π°ΠΌ стоит это Π·Π½Π°Ρ‚ΡŒ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ большой Ρ€ΠΎΠ»ΠΈ.

Π’ ΠΏΠΎΠΌΠΎΡ‰ΡŒ CSS3

Π‘ Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· языков Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС примСси для упрощСния ΠΆΠΈΠ·Π½ΠΈ с прСфиксами. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ здСсь Π½Π΅Ρ‚ побСдитСля. Но Π·Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ эти прСфиксы Π²ΠΎ своих своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…? (НСт, Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅). Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΌ, скорСй всСго, Π½Π΅ придСтся ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ваш собствСнный Ρ„Π°ΠΉΠ» с примСсями. SASS позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Compass, благодаря автообновлСниям ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… с прСфиксами. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΈ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ это Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π° ΠΈ Π½Π΅ стоит Π½Π° этом Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ всС это сводится ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ: Ρƒ SASS Π΅ΡΡ‚ΡŒ Compass, Π° Ρƒ LESS Π΅Π³ΠΎ Π½Π΅Ρ‚. На самом Π΄Π΅Π»Π΅ всС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Π΅ΠΉ. ВсС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Compass для LESS ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ LESS Π½Π΅ являСтся достаточно ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ языком, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. НСмного ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅.

Бпособности языка: Π»ΠΎΠ³ΠΈΠΊΠ°/Ρ†ΠΈΠΊΠ»Ρ‹

LESS позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Β«Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ примСси». Π­Ρ‚ΠΈ примСси вступят Π² силу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС Ссли условиС Π²Π΅Ρ€Π½ΠΎ. Допустим Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚Π° тСкста. Если Ρ†Π²Π΅Ρ‚ тСкста «достаточно свСтлый» Π²Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ Ρ„ΠΎΠ½. Если ΠΆΠ΅ ΠΎΠ½ «достаточно Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉΒ» β€” Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ свСтлый Ρ„ΠΎΠ½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρƒ вас получится ΠΏΡ€ΠΈΠΌΠ΅ΡΡŒ, разбитая Π½Π° Π΄Π²Π΅ части с этими Β«Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈΠΊΠ°ΠΌΠΈΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ исполнСн.

ПослС использования Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ подходящий Ρ„ΠΎΠ½:

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто, Π½ΠΎ ΡΡƒΡ‚ΡŒ, надСюсь, понятна. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΊΡ€ΡƒΡ‡Π΅ этого. LESS Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΡΡ‹Π»Π°ΡŽΡ‰Π΅ΠΉΡΡ Π½Π° сСбя рСкурсии, примСси ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ самих сСбя с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями.

На этом Π»ΠΎΠ³ΠΈΠΊΠ°/Ρ†ΠΈΠΊΠ»Ρ‹ Π² LESS ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. SASS ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ логичСскими ΠΈ цикличСскими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. if/then/else, Ρ†ΠΈΠΊΠ» for, Ρ†ΠΈΠΊΠ» while ΠΈ Ρ†ΠΈΠΊΠ» each. Π‘Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ Ρ‚Ρ€ΡŽΠΊΠΎΠ², настоящСС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. SASS являСтся достаточно Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ языком, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ использованиС Compass.

Π›Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ кусок ΠΊΠΎΠ΄Π°:

ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ΡΡ этот ΠΊΠΎΠ΄ Π² монстра Π½ΠΈΠΆΠ΅ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊ соТалСнию, Π½ΡƒΠΆΠ΅Π½ Π² цСлях кроссбраузСрности):

Π‘Π°ΠΉΡ‚Ρ‹

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

@Β­extend концСпция

Допустим Π²Ρ‹ создали класс с Π½Π΅ΠΊΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ стилСй. Π—Π°Ρ‚Π΅ΠΌ Π²Π°ΠΌ понадобится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, Π½ΠΎ с Π½Π΅ΠΊΠΈΠΌΠΈ дополнСниями. LESS позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‚Π°ΠΊ:

Π’Ρ‹ это Π²ΠΈΠ΄ΠΈΡ‚Π΅? SASS пСрСопрСдСляСт сСлСкторы, ΠΈ это Π±ΠΎΠ»Π΅Π΅ эффСктивный ΠΏΡƒΡ‚ΡŒ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

SASS ΠΈΠΌΠ΅Π΅Ρ‚ странноС свойство β€” Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Β«Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽΒ» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ «локальной», глобальная пСрСмСнная ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НСмного странно.

Π­Ρ‚ΠΎ Ρ‚Ρ€ΡŽΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, Π½ΠΎ ΠΎΠ½ совсСм Π½Π΅ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π΅Π½, особСнно Ссли Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° Javascript.

ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ: Π½Π°Π΄ΠΎ Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΌΠΎΠ½Π΅Ρ‚ΠΊΡƒ πŸ™‚

Π Π°Π±ΠΎΡ‚Π° с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ media

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SASS ΠΈΠ»ΠΈ LESS Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ эти стили ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ влоТСния.

Β«respond-toΒ» β€” довольно Ρ‚Π°ΠΊΠΈ крутая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° SASS (ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ Chris Eppstein, Ben Schwarz, ΠΈ Jeff Croft).

Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ:

ΠœΠ΅Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°

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

SASS позволяСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с «нСизвСстными» Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ обновлСния. LESS этого Π½Π΅ позволяСт. Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ странныС отличия, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ SASS ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ числа с Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния, Π½ΠΎ ΠΎΠ± этом Π½Π΅ сСгодня.

ΠŸΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ: SASS (с натяТкой)

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

Π—Π° врСмя написания ΡΡ‚Π°Ρ‚ΡŒΠΈβ€¦

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π·Π° послСдний мСсяц LESS: 11
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π·Π° послСдний мСсяц SASS: 35

Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π²Π΅Ρ€Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ являСтся Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ, Π½ΠΎ, каТСтся, Ρ†ΠΈΡ„Ρ€Π°ΠΌ большС нравится SASS. Насколько я понял, Π³Π»Π°Π²Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Π΅ΠΈΡ… языков, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ этими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Π½ΠΈΡ… появляСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ свободного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ…, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Less ΠΈ Sass?

ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ 1 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Sass less Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Sass less Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Sass less Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Sass less Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Sass less Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании, LESS ΠΈ S(A|C)SS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄, ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ стилСй.

Из минусов:
0. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. НСльзя просто Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ стили, ΠΈΡ… придСтся ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ.
1. Π’ΠΈΠ΄Π΅Π» ΠΌΠ½ΠΎΠ³ΠΎ излишнС слоТных «ΡΡ‚ΠΈΠ»Π΅Π²Ρ‹Ρ…» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². НС понимаю, ΠΊΠ°ΠΊ элСмСнтарныС Π²Π΅Ρ‰ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ сильно ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ πŸ™‚
2. ΠŸΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ΡΡ трСбования ΠΊ front-end Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ, ΠΈ, ΠΊΠ°ΠΊ слСдствиС, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚. Школьника для Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΠΆΠ΅ Π½Π°Π½ΡΡ‚ΡŒ Π½Π΅ получится.

Π§Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. Π’ ΠΎΠ΄ΠΈΠ½ прСкрасный ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ‚Π°ΠΌ рубисты ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ SCSS (ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π»ΡŽΠ±ΡΡ‚ всС Ρ‡Ρ‚ΠΎ Π½Π΅ Π² стилС ruby Π² ΠΏΠ»Π°Π½Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΠ° ΠΈ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ). Π—Π°Ρ‚Π΅ΠΌ Ρ‡ΡƒΠ²Π°ΠΊΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΈ сказали, SCSS это ΠΊΡ€ΡƒΡ‚ΠΎ Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ синтаксис Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Ruby Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π° Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ для CSS конструкции. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ LESS, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π΅Π³ΠΎ ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π° javascript, Ρ‡Ρ‚ΠΎ с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ node.js ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ это всС Π΄ΠΎΠ±Ρ€ΠΎ Π΅Ρ‰Π΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ эту ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Ρ‚Π°ΠΊ ΠΏΠ»ΠΎΠ΄ΠΈΠ»ΠΈ прСпроцСссоры ΠΎΠ½ΠΎ ΡƒΠ΄Π°Ρ‡Π½ΠΎ вписалось.

Π”Π°Π»Π΅Π΅ ΡƒΠΆΠ΅ шли ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ дальнСйшиС, Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Stylus, Π³Π΄Π΅ синтаксис упростили просто Π΄ΠΎ нСльзя.

Π›ΠΈΡ‡Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅. На сСгодняшний дСнь я Π½Π΅ Π²ΠΈΠΆΡƒ смысла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ чистый CSS Ρ…ΠΎΡ‚ΡŒ Π½Π° ΠΌΠ°Π»Ρ‹Ρ… Ρ…ΠΎΡ‚ΡŒ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Π’ΠΎΡ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

CSS-прСпроцСссоры ΠΈ прСимущСство ΠΈΡ… использования

December 05, 2013

Π‘Ρ‚Π°Ρ‚ΡŒΡ Π½Π° NetTuts+, написанная Johnathan Croom Π² 2012 Π³ΠΎΠ΄Ρƒ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ мноТСство прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ привносят прСпроцСссоры Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй CSS ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…, ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстныС, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ°Π»ΠΎ распространСнныС. Π”Π°Π²Π°ΠΉΡ‚Π΅ приступим ΠΊ ΠΎΠ±Π·ΠΎΡ€Ρƒ.

Бинтаксис

НаиболСС Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π² любом прСпроцСссорС CSS являСтся Π΅Π³ΠΎ синтаксис. Π’ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ для нас, синтаксис всСх Ρ‚Ρ€Π΅Ρ… прСпроцСссоров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΈΠΌΠ΅ΡŽΡ‚ CSS-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²ΠΈΠ΄.

Sass & LESS

Π’ΠΈΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² синтаксисС Sass ΠΈΠ»ΠΈ LESS прСдставлСн Π½ΠΈΠΆΠ΅:

Π₯ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ синтаксис CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСкрасно конвСртируСтся Π² Sass (SCSS) ΠΈΠ»ΠΈ LESS.

Π’Π°ΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Sass (SCSS) Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ синтаксиса Sass, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ синтаксис всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΎΠ½ являСтся ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΈ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

Бинтаксис Sass (старая вСрсия) выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Stylus

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ синтаксиса Stylus:

ВсС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ синтаксиса, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции получаСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ CSS-ΠΊΠΎΠ΄. НапримСр, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ скомпилируСтся Π² стандартный CSS Π±Π΅Π· ошибок:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π’ прСпроцСссорах ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² стилСй CSS. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, допустимоС Π² CSS (Ρ†Π²Π΅Ρ‚, число ΠΈΠ»ΠΈ тСкст) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΈΠ· любого мСста CSS-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² LESS Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Sass, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ставится символ @ :

Stylus

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π½Π΅ выполняСтся такая опСрация:

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· прСдставлСнных Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² компилируСтся Π² Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ CSS-ΠΊΠΎΠ΄. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, насколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Благодаря ΠΈΠΌ ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ Ρ€Π°Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² CSS-ΠΊΠΎΠ΄Π΅. Или ΠΆΠ΅ поставлСна Π·Π°Π΄Π°Ρ‡Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ сайта ΠΈ для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ β€œΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Ρ‚ΡŒβ€ ΠΊΠΎΠ΄ Π² поисках этой Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹.

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: здСсь Π°Π²Ρ‚ΠΎΡ€ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² любом Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° имССтся функция поиска.

НиТС прСдставлСн CSS-ΠΊΠΎΠ΄ послС выполнСния компиляции:

Π’Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ (nesting)

ВмСсто этого, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ возмоТности прСпроцСссора, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ сСлСкторы Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок элСмСнта-родитСля. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, символ & являСтся ссылкой (сокращСниСм) Π½Π° сСлСктор элСмСнта-родитСля.

Sass, LESS & Stylus

ВсС Ρ‚Ρ€ΠΈ прСпроцСссора ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ синтаксис для Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… сСлСкторов:

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

ПодмСшивания (mixins)

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

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ подмСшиваний особСнно ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚ сСбя ΠΏΡ€ΠΈ создании спСцифичных стилСй для элСмСнтов ΠΈΠ»ΠΈ простановкС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… прСфиксов. Когда миксин вызываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ CSS-сСлСктора, происходит распознаваниС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² этого миксина, Π·Π°Ρ‚Π΅ΠΌ Π΅Π³ΠΎ стили ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ сСлСктору, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Π³ΠΎ Π²Ρ‹Π·Π²Π°Π».

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² синтаксисС объявлСния ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° миксина Π²Π½ΡƒΡ‚Ρ€ΠΈ CSS-сСлСктора для всСх Ρ‚Ρ€Π΅Ρ… прСпроцСссоров.

Style

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ компиляции ΠΈΠ· всСх Ρ‚Ρ€Π΅Ρ… прСпроцСссоров Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ CSS-ΠΊΠΎΠ΄:

НаслСдованиС (inheritance)

ΠŸΡ€ΠΈ написании CSS стилСй β€œΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌβ€ способом, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ свойства ΠΊ нСскольким элСмСнтам Π² HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, Π½Π°ΠΌ слСдовало Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прСкрасно. Но Ссли потрСбуСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ стили ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для любого ΠΈΠ· этих сСлСкторов, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…. И сразу ΠΆΠ΅ ΠΊΠΎΠ΄ Ρ‚Π°Π±Π»ΠΈΡ† стилСй ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π½Π΅Ρ€ΡΡˆΠ»ΠΈΠ²Ρ‹ΠΌ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ.

Sass & Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ LESS Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ наслСдованиС Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Sass ΠΈΠ»ΠΈ Stylus. ВмСсто добавлСния мноТСствСнных сСлСкторов Π² ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ€ свойств, наслСдованиС трактуСтся ΠΊΠ°ΠΊ миксин Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π˜ΠΌΠΏΠΎΡ€Ρ‚ стилСй выполняСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСлСктора. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ стороной Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся постоянноС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ строк со свойствами Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ CSS-стилС.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ LESS-ΠΊΠΎΠ΄ с наслСдованиСм:

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π’ CSS-сообщСствС ΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ стилСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ @import сущСствуСт стойкоС Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ мноТСствСнныС HTTP-запросы ΠΊ сСрвСру, Ρ‡Ρ‚ΠΎ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ сам сСрвСр. Однако, Π² прСпроцСссорах тСхнология импортирования Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ½Π°Ρ‡Π΅.

Π’ любом ΠΈΠ· Ρ‚Ρ€Π΅Ρ… прСпроцСссоров ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ фактичСски ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ вставкС ΠΊΠΎΠ΄Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈ компиляции, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ получаСтся ΠΎΠ΄ΠΈΠ½ CSS-Ρ„Π°ΠΉΠ».

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π² прСпроцСссорах ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для компиляции ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…. Π’ стандартном CSS ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ подстановкС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° со стандартным ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ @import «file.css» Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ компиляции послСднСго Π½Π΅ происходит. А Π²ΠΎΡ‚ миксины ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² стилСвом Ρ„Π°ΠΉΠ»Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ. ВСхнология импортирования ΠΎΡ‡Π΅Π½ΡŒ удобная, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мноТСство ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ

β€œΠ¦Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅β€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ созданы для трансформации Ρ†Π²Π΅Ρ‚Π° ΠΏΡ€ΠΈ компиляции. Π’Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΏΡ€ΠΈ создании Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², затСмнСния Ρ†Π²Π΅Ρ‚Π° ΠΏΡ€ΠΈ hover ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ являСтся всСго лишь ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ списком Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π² Sass. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список всСх доступных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ располоТСн ΠΏΠΎ адрСсу Sass Documentation.

Бписок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСпроцСссора LESS находится Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LESS Documentation.

НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ β€œΡ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅β€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² LESS:

Stylus

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ прСпроцСссора Stylus прСдставлСн Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Stylus Documentation.

И ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования β€œΡ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉβ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Stylus:

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Благодаря прСпроцСссорам Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ CSS-ΠΊΠΎΠ΄Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ осущСствляСтся просто ΠΈ Π»Π΅Π³ΠΊΠΎ. Вакая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ.

Sass, LESS & Stylus

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

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

Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅ прСфиксы

Одним ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ярких ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² прСимущСства использования прСпроцСссоров являСтся написаниС с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΌΠΈ прСфиксами. Один Ρ€Π°Π· создав миксин с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… прСфиксов, ΠΌΡ‹ избавляСм сСбя ΠΎΡ‚ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

НапримСр, создадим для всСх Ρ‚Ρ€Π΅Ρ… прСпроцСссоров миксин скруглСния ΡƒΠ³Π»ΠΎΠ² Π±Π»ΠΎΠΊΠ°:

Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Π’Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ тСкст

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ эффСкта трСхмСрности для тСкста с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS-свойства text-shadow являСтся прСкрасной ΠΈΠ΄Π΅Π΅ΠΉ. ЕдинствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ, которая достаточно трудная ΠΈ ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ миксины ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹ΠΉ тСкст ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚ Π½Π° Π»Π΅Ρ‚Ρƒ:

Stylus

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для Stylus я Π²Ρ‹Π±Ρ€Π°Π» Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания свойства text-shadow Π² ΠΎΠ΄Π½Ρƒ строку, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ здСсь я опустил Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Колонки

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡˆΠ»Π° ΠΌΠ½Π΅ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ, ΠΊΠΎΠ³Π΄Π° я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π» Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с возмоТностями CSS-прСпроцСссоров. ОбъявлСниС ΡˆΠΈΡ€ΠΈΠ½Ρ‹ для ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ измСнСния этой ΡˆΠΈΡ€ΠΈΠ½Ρ‹ (ΠΏΡ€ΠΈ нСобходимости) простой ΠΈ быстрой:

Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

НСкоторыС ΡƒΠ»ΠΎΠ²ΠΊΠΈ прСпроцСссоров

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

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

CSS-прСпроцСссоры ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ достаточно просто. Π’ этом случаС прСпроцСссор сам сообщаСт Π²Π°ΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ мСстС CSS-ΠΊΠΎΠ΄Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ошибка (ΠΈ всС счастливы).

Если вас заинтСрСсовала подобная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ всСх Ρ‚Ρ€Π΅Ρ… прСпроцСссорах, Ρ‚ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ настройку.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π’ CSS-прСпроцСссорС ΠΏΡ€ΠΈ компиляции ΠΈΠ· ΠΊΠΎΠ΄Π° ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅Ρˆβ€™Π° ( // это ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ). Но, Π² Ρ‚ΠΎΠΆΠ΅ врСмя, Π±Π»ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ( /* это ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ */ ) ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

На Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ: ΠΏΡ€ΠΈ компиляции Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ CSS-Ρ„Π°ΠΉΠ»Π° ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… рассмотрСнный Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ CSS-прСпроцСссоров (Sass, LESS ΠΈ Stylus) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ своим собствСнным, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ способом Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π² Ρ€ΡƒΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π°, ΠΊΠ°ΠΊΠΈΠΌ способом Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ всС прСпроцСссоры ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π΅Ρ€Π° с ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ сохранСниСм кросс-браузСрности ΠΈ чистоты ΠΊΠΎΠ΄Π°.

Π― ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ всС извСстныС прСпроцСссоры, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ для сСбя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Если ΠΆΠ΅ Π΄ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ писали ΠΊΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° чистом CSS, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ хотя Π±Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· прСпроцСссоров.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Russian (Pусский) translation by Liliya (you can also view the original English article)

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ прСимущСства использования Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… прСпроцСссоров: Sass, LESS ΠΈ Stylus.

ВступлСниС

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….

Бинтаксих

НаиболСС Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ написания ΠΊΠΎΠ΄Π° Π² прСпроцСссорС CSS являСтся ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ синтаксиса. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ для нас, синтаксис (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ рСгулярному CSS для всСх Ρ‚Ρ€Π΅Ρ… прСпроцСссоров.

Sass & LESS

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, это просто ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ компилируСтся ΠΊΠ°ΠΊ Π² Sass, Ρ‚Π°ΠΊ ΠΈ Π² LESS.

Stylus

ИспользованиС Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ стилСй Ρ‚Π°ΠΊΠΆΠ΅ являСтся допустимым, поэтому ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ошибок.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π²ΠΎ всСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ стилСй. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ CSS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ, числами [Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ] ΠΈΠ»ΠΈ тСкстом.), ΠΈ Π½Π° Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π²Π΅Π·Π΄Π΅ Π² нашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ стилСй.

LESS ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Sass, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ символом @

Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ скомпилирован с Ρ‚Π΅ΠΌ ΠΆΠ΅ CSS. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ своС Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, насколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Нам большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ†Π²Π΅Ρ‚ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ Ρ€Π°Π·, ΠΈΠ»ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ нашСго сайта ΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π΅Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ. Π’ΠΎΡ‚ CSS послС компиляции:

Nesting

Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° нСсколько элСмСнтов с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ источником Π² нашСм CSS, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ снова ΠΈ снова.

ВмСсто этого, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ прСпроцСссор, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ сСлСкторы Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок родитСля. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, символ & ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ сСлСктор.

Sass, LESS, ΠΈ Stylus

ВсС Ρ‚Ρ€ΠΈ прСпроцСссора ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ синтаксис для сСлСкторов влоТСнности.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Π­Ρ‚ΠΎ скомпилированный CSS ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ!

Mixins

Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

ВсС прСпроцСссоры ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄:

ΠΠ°ΡΠ»Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΈ написании CSS старомодным способом ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ примСнСния ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ стилСй ΠΊ нСскольким элСмСнтам:

Sass & Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS (Sass & Stylus)

LESS Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ наслСдуСт стили Sass ΠΈ Stylus. ВмСсто добавлСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСлСкторов ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ свойств ΠΎΠ½ рассматриваСт наслСдованиС ΠΊΠ°ΠΊ mixin Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ стили Π² свои собствСнныС сСлСкторы. НСдостатком этого являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ свойства ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ Π² вашСй скомпилированной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ стилСй. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹ Π΅Π³ΠΎ настроили:

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS (LESS)

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ

Sass, LESS, ΠΈ Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Π¦Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ возмоТности

Π¦Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ встроСны Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Ρ†Π²Π΅Ρ‚ ΠΏΡ€ΠΈ компиляции. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для создания Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π±ΠΎΠ»Π΅Π΅ Ρ‚Π΅ΠΌΠ½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π­Ρ‚ΠΎ всСго лишь ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ список доступных Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Sass, ΠΏΠΎΠ»Π½Ρ‹ΠΉ список доступных Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Sass ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Sass.

Π¦Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² любом мСстС, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π²Π΅Ρ‚. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Бписок всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ LESS ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² LESS Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² LESS:

Stylus

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ†Π²Π΅Ρ‚Π° Stylus ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Stylus.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Stylus:

Эксплуатация

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π² CSS ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ просто, ΠΈ Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

Sass, LESS, ΠΈ Stylus

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΡΡ‚Π°Π²ΠΊΠ° поставщиков

Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

3D-тСкст

Stylus

Π― Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тСкстовыС Ρ‚Π΅Π½ΠΈ Stylus Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я опустил Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Sass less Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Sass less Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Sass less Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Sass less Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ Sass less Ρ‡Ρ‚ΠΎ это

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†

Stylus

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CSS

Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Ρ‹

БущСствуСт нСсколько ΠΏΡ€ΠΈΠΊΠΎΠ»ΠΎΠ² ΠΊ использованию прСпроцСссора CSS. Π― ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Ρ‹, Π½ΠΎ Ссли Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ всС, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ, Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅, просто Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСпроцСссор Π² Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

Если Π²Ρ‹ написали CSS Π·Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠ΅ врСмя, я ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ достигли Ρ‚ΠΎΡ‡ΠΊΠΈ, Π³Π΄Π΅ Π²Ρ‹ Π³Π΄Π΅-Ρ‚ΠΎ ошиблись, ΠΈ просто Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π΅Π΅ Π½Π°ΠΉΡ‚ΠΈ. Если Π²Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° мСня, Π²Ρ‹, вСроятно, ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ дСнь, дСргая свои волосы ΠΈ коммСнтируя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ CSS ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. ВсС просто. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ с вашим ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ½ сообщаСт Π²Π°ΠΌ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ошибка, ΠΈ Ссли Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ: ΠΏΠΎΡ‡Π΅ΠΌΡƒ. Π’Π°Ρˆ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° этом постС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π»Π΅Π²ΡƒΡŽ сторону, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ввСсти Π΅Π³ΠΎ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠŸΡ€ΠΈ компиляции с прСпроцСссором CSS любой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ удаляСтся (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, // ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ) ΠΈ сохраняСтся любой ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /* comment */ ). ΠŸΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π° Π½Π΅ скомпилированной сторонС, ΠΈ слэш-Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ послС компиляции.

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ссли Π²Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ minified, всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ прСпроцСссор CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ рассмотрСли (Sass, LESS ΠΈ Stylus), ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ выполнСния Ρ‚ΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, прСдоставляя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, сохраняя ΠΏΡ€ΠΈ этом ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ чистоту ΠΊΠΎΠ΄Π°.

Π₯отя это Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, прСпроцСссоры ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π― ΠΏΡ€ΠΈΠ·Ρ‹Π²Π°ΡŽ всСх вас ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС прСпроцСссоров, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ эффСктивно Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ„Π°Π²ΠΎΡ€ΠΈΡ‚Π° ΠΈ Π·Π½Π°Ρ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСпроцСссор для написания CSS, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.

Π£ вас Π΅ΡΡ‚ΡŒ любимая функция прСпроцСссора CSS, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я Π½Π΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»? Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅? Π”Π°ΠΉΡ‚Π΅ Π½Π°ΠΌ Π·Π½Π°Ρ‚ΡŒ Π² коммСнтариях Π½ΠΈΠΆΠ΅!

Особая Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Karissa Smith, супСр-Ρ‚Π°Π»Π°Π½Ρ‚Π»ΠΈΠ²ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³Ρƒ, которая создала ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Ρƒ для этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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