CSS에 if() 인라인 조건문 추가 예정
(lea.verou.me)- 지난 주, CSS WG는 인라인
if()
를 CSS에 추가하기로 결정했음 - 과거 여러 번 거절된 제안이지만, 이번에는 스타일 쿼리와
media()
및supports()
문법을 참조하여 수용됨 - 개발자들의 반응이 매우 긍정적이었음. 브라우저가 이 기능을 우선순위로 두고 로드맵에 추가하기를 희망
if()
의 용도는? 스타일 쿼리를 대체하는가?
- 스타일 쿼리를 보완하는 역할을 함. 스타일 쿼리가 가능한 경우 스타일 쿼리를 사용하는 것이 더 좋음
- 하지만 스타일 쿼리로 할 수 없는 것들이 있음. 예를 들어
--variant
커스텀 프로퍼티를 사용하여 배경색, 테두리 색, 텍스트 색, 아이콘 등을 설정하는 경우 - 스타일 쿼리는 하위 요소에만 적용되므로, 요소 자체에 선언을 설정할 수 없음.
- 프레젠테이션 속성은 유연성, 간결성, 일관성 등의 문제가 있음.
-
if()
를 사용하면 요소 자체에 선언을 설정할 수 있음. - 미디어 쿼리와 지원 조건도
if()
의 조건 구문에 포함시킬 수 있음.
현재 브라우저에 적용되어 있는가?
- 아직 브라우저에 적용되지 않았음
- 낙관적으로 봐도 구현까지는 최소 2년 정도 걸릴 것으로 예상됨
- 현재는 기능에 대한 합의가 이루어졌을 뿐, 구현 단계는 아님
CSS에서 조건부 문법이 처음인가?
- CSS에는 처음부터 조건부 문법이 있었음. 모든 선택자가 조건부 문법의 일종임
-
@media
,@supports
규칙도 조건부 문법임.
이것이 CSS를 명령형 언어로 만드는가?
- 명령형과 선언형의 차이는 논리가 아닌 추상화 수준에 있음
- 조건부 논리가 추가되더라도 CSS는 여전히 선언형 언어임
이것이 CSS를 프로그래밍 언어로 만드는가?
- CSS는 이미 오랜 기간 동안 프로그래밍 언어로 간주될 수 있었음
- CSS를 프로그래밍 언어로 보는 기준은 중요하지 않음
- "중요한 것은 CSS에 대한 전문성을 인정받는 것임"
"여러 유명 프로그래밍 언어와 CSS를 아는 사람이라면 누구나 알 수 있듯이, CSS는 마스터하기가 훨씬 더 어려움"
한줄요약:
- CSS 의
if
문이 인라인이라고 했죠? 그냥 CSS에 삼항연산자 생긴다고 보면 됩니다. - 그리고 여러분이 생각하시는 그 if 문 문법은 당연하겠지만 여러분 원하시는 대로 반발 때문에 도입 예정 없으니 걱정 마시길.