Оскільки CSS не є мовою програмування, натомість файл конфігурації містить змінні дані для вашої програми.
В даний час CSS настільки потужний, що ви можете насправді запрограмувати в ньому, але це крім суті. По суті це все ще мова таблиці стилів .
Давайте зробимо крок назад. Уявіть, у нас є мова програмування, яка може малювати на екрані. Уявіть, що ми хочемо запрограмувати його, щоб намалювати веб-сторінку.
Спочатку ми вводимо в наш код тонни магічних чисел. Ширина поля, висота тексту, відступи тощо тощо.
jump(100) // The margin
drawTable(500, 500)
writeText("Hello World", 12)
Отже, ми витягуємо магічні числа і ставимо їх поверх нашого файлу.
int margin = 100
int table = 500
int text_size = 12
jump(margin) // The margin
drawTable(table, table)
writeText("Hello World", text_size)
Зараз це трохи некрасиво. Ми швидше читаємо наші змінні номери з файлу конфігурації.
margin 100
table 500
text size 12
Гм, це трохи незрозуміло ... Що означають ці цифри? Що означають ці імена? Давайте трохи її формалізуємо.
margin_left 10em
table_width 500px
table_height 500px
font_size 12px
Але ви знаєте, ми хочемо трохи розширити нашу програму. Ми також хочемо, щоб він малював сторінки з кількома таблицями, сторінки без таблиць, сторінки з абзацами або кнопками і багато іншого. Додамо до нашого конфігураційного файла селектори, щоб ми могли вказати, який абзац повинен мати більший шрифт або інший колір тексту, можливо, ми можемо підтримувати вкладені елементи, можливо, ми можемо використовувати загальне властивість у нашому конфігураційному файлі, а потім замінити його конкретним один з кількох вкладених елементів.
Ви відчуваєте, куди це йде, врешті-решт потрапляєте як CSS. (І браузер, щоб надати його.)
Чи повинні ми тоді додавати можливості до нашого конфігураційного файла, щоб ми могли знову уникати магічних чисел? Додати змінні? Додати файл конфігурації для нашого CSS-файлу? Здається трохи безглуздо, якщо ви пам’ятаєте, що наш CSS-файл - це той самий файл конфігурації.
Але це звичайно не вірно; ваш CSS-файл зростає і збільшується, і з часом ви стикаєтеся з тими ж проблемами, що і з оригінальними магічними числами, однакове число, що повторюється всюди, іноді з невеликими перетвореннями тощо.
Однак сучасний CSS дозволяє багатьом способам уникнути цього повторення. Ви можете використовувати класи, які застосовуються до багатьох елементів, ви можете встановити стиль для всіх div
s, але потім конкретно замінити один, а CSS 3 навіть дозволяє використовувати певне використання змінних.
Це не означає, що вам потрібно починати використовувати змінну CSS у кожному можливому місці. Використовуйте його там, де це має сенс, і використовуйте його там, де ви уникаєте дублювання, або коли інші доступні методи також не вистачають.
Зрештою, ви також не хочете занадто багато магічних чисел у своєму конфігураційному файлі :-)