Що таке @apply в CSS?


93

Перш за все, я маю на увазі тег CSS.

Я погуглив, @applyале не зміг знайти нічого, що могло б пояснити його значення для мене належним чином.

Яке використання такого тегу?



1
Де ти натрапив на це?
j08691

2
Я натрапив на це за цим посиланням: github.com/y0ssar1an/CSS3
GameCoder

50
Чому так багато людей проголосували за це? Це цілком слушне запитання і стосується вдосконаленої функції CSS, про яку багато людей явно нічого не знають. Tailwind активно використовує @applyдирективу. Не поспішайте відкидати питання людей. Занадто багато цього відбувається тут. Крім того, я помічаю, що ОП більше не є членом stackoverflow, чи він пішов через це? Це жалюгідно.
stephenmurdoch

Відповіді:


32

простий спосіб пояснити це; введення змінних у css (що є особливістю препроцесорів, таких як sass), та mixin, які є функціональними, як поведінка (також у препроцесорах).

уявіть, що --header-themeце функція (міксин)

:root {
  --header-theme: {
    color: red;
    font-family: cursive;
    font-weight: 600;
  };
}

h1 {
  @apply --header-theme;
}


h2 {
  @apply --header-theme;
}

таким чином, ви можете використовувати його в багатьох різних місцях, не переписуючи знову СУХО

тепер змінна частина може пояснити на цьому прикладі

:root {
  --brand-color: red;/*   default value*/
  --header-theme: {
    color: var(--brand-color);
    font-family: cursive;
    font-weight: 600;
  };
}

h1 {
  @apply --header-theme;
}


h2 {
  --brand-color: green; 
  @apply --header-theme;
}

мікшину буде надіслана змінна і змінить колір

це не обмеження функції, ви можете використовувати її набагато більше, ви можете прочитати більше про mixin та змінні в SASS для інших способів її використання, після того, як я пропоную вам прочитати цю публікацію в блозі

тепер після того, як я вас схвилював, час поганих новин, це ще не застосовано у браузерах, chrome , все-таки варто знати, що воно приходить, і, можливо, якщо ви хочете підготуватися, починайте з SASS


чи функція var виконує ті самі цілі в SASS, що і в javascript? Вибачте, я не знаю жодного SASS.
GameCoder

змінна якось однаково керує всім з одного місця, а не переписує, функція трохи інша, але вона служить тій самій загальній ідеї, що я намагаюся сказати; наразі ти все одно не зможеш ним користуватися; тож якщо вам цікаво щодо функції перевірити sass (ruby) або менше (node.js), що там, де вони придумали
oqx

2
Повідомлення автора у блозі під назвою "Чому я покинув @apply" свідчить про те, що ця функція НЕ проникатиме у майбутні браузери. Специфікація, як я її знайшов - tabatkins.github.io/specs/css-apply-rule/#intro Відступ закінчено на - xanthir.com/b4o00


8

@applyдосить класно. В основному це дозволяє повторно використовувати блоки CSS, не копіюючи їх і не змінюючи їх селектори.

Це полегшить використання фреймворків CSS та одночасне збереження семантичних назв класів.

Я знайшов цю статтю гарним втручанням у цю функцію.

На жаль, на даний момент підтримка браузера в основному відсутня . Його можна використовувати з попереднім процесором CSS, таким як PostCSS .

Це майбутнє також непевне, якщо я добре розумію. Головний захисник цієї функції перестав її підтримувати .


ikr! Мені подобається те, як я можу використовувати ці класи з CSS Tailwind @apply. Це вводить виключно новий спосіб роботи з таблицею стилів, що залишає у вас цегли багаторазового використання, які також легко класифікуються - ви насправді можете їх сортувати (для цього ви можете використовувати посилання на це, як я з ToC of Tailwind CSS), а не властивості більше для сканування таблиць стилів ефективно! Є багато можливостей, таких як написання простих pinрукописних зображень замість усіх top/bottom/left/right: 0.
vintproykt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.