CSS에서 @apply는 무엇입니까?


93

우선 CSS 태그를 언급하고 있습니다.

나는 봤다 @apply 했지만 그 의미를 제대로 설명 할 수있는 것을 찾을 수 없었다.

그러한 태그의 사용법은 무엇입니까?


3
tabatkins.github.io/specs/css-apply-rule 아마도 몇 가지 유용한 읽기
CollinD

1
그것을 어디서 만났습니까?
j08691

2
:이 링크를 가로 질러 온 github.com/y0ssar1an/CSS3
GameCoder

50
왜 그렇게 많은 사람들이 이것을 반대 했습니까? 이것은 완벽하게 유효한 질문이며, 많은 사람들이 분명히 알지 못하는 CSS의 고급 기능을 다룹니다. Tailwind@apply지시문 을 많이 사용 합니다. 사람들의 질문을 너무 빨리 무시하지 마십시오. 여기에서 너무 많은 일이 벌어지고 있습니다. 또한 OP가 더 이상 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;
}

이렇게하면 다시 쓸 필요없이 여러 곳에서 사용할 수 있습니다. DRY

이제 변수 부분은이 예제로 설명 할 수 있습니다.

: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;
}

믹스 인에는 변수가 전송되고 색상이 변경됩니다.

이것은 기능의 한계가 아닙니다. 훨씬 더 많이 사용할 수 있습니다. 이 블로그 게시물 을 읽도록 제안한 후 SASS의 mixin 및 변수에 대해 더 많은 사용 방법을 읽을 수 있습니다.

지금 내가 당신을 흥분시킨 후, 나쁜 소식을위한 시간입니다. 그것은 아직 브라우저에서 구현되지 않았습니다. 크롬 , 그것이 다가오고 있다는 것을 아는 것이 여전히 가치가 있으며 아마도 당신이 준비하고 싶다면 SASS로 시작하십시오.


var 함수는 javascript와 SASS에서 동일한 용도로 사용됩니까? 죄송합니다. SASS를 모릅니다.
GameCoder

변수는 어떻게 든 다시 작성하는 대신 한 위치에서 모두 동일한 컨트롤입니다. 함수는 약간 다르지만 동일한 일반적인 아이디어를 제공합니다. 지금은 어차피 사용할 수 없습니다. 그래서이 기능 체크 말대꾸 (루비) 이하 (Node.js를)에 대한 호기심을 느낀다면, 그 그들은 아이디어를 내놓았다 곳
oqx

2
사양 작성자의 블로그 게시물 "내가 @apply를 포기한 이유"는이 기능이 향후 브라우저에 적용 되지 않을 것이라고 제안 합니다. 내가 찾은 사양 -tabatkins.github.io/specs/css-apply-rule/#intro 철회 -xanthir.com/b4o00


8

@apply꽤 멋지다. 기본적으로 CSS 블록을 복사하지 않고 선택기를 수정할 필요없이 재사용 할 수 있습니다.

CSS 프레임 워크를 더 쉽게 사용하고 동시에 시맨틱 클래스 이름을 유지할 수 있습니다.

이 기사 가이 기능에 대한 좋은 설명이 된다는 것을 알았습니다 .

불행히도 현재 브라우저 지원은 기본적으로 존재하지 않습니다 . PostCSS 와 같은 CSS 전처리 기와 함께 사용할 수 있습니다 .

잘 이해하면 미래도 불확실합니다. 이 기능의 주된 지지자 는 지원을 중단했습니다 .


ikr! .NET에서 Tailwind CSS의 이러한 클래스를 사용할 수있는 방법이 마음에 듭니다 @apply. 이는 쉽게 분류 할 수있는 재사용 가능한 브릭을 사용하는 스타일 시트로 작업하는 매우 새로운 방법을 소개합니다. 실제로 정렬 할 수 있으며 (Tailwind CSS 문서의 ToC에서 나와 같은 참조를 사용할 수 있습니다) 더 이상 스타일 시트를 스캔하는 속성이 아닙니다. 효율적으로! pin모두가 아닌 간단한 샷 핸드를 작성하는 것과 같은 많은 가능성이 있습니다 top/bottom/left/right: 0.
vintproykt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.