찾다
웹 프론트엔드CSS 튜토리얼CSS 스위치 케이스 조건

CSS 스위치 케이스 조건

CSS는 @Media 쿼리의 특정 특성과 CSS 사용자 정의 속성을 갖춘 깊은 속임수를 제외하고는 아직 스위치 규칙 또는 조건부가 없습니다. 우리가 왜 유용한지를 살펴보고 오늘 그것을 끌어 내기 위해 사용할 수있는 트릭을 살펴 보겠습니다.

가능성에 대한 최근의 수다쟁이

오늘날 이러한 것들 중 어느 것도 사용할 수 없지만 작년에 일반 조건부 CSS의 개념에 대해 많은 대화가있었습니다.

  • Brian Kardell은 Switch () 문과 Tab Atkins Riff를 제안했습니다.
  • Jonathan Neal은 많은 대화를 일으킨 조건부 값에 대한 미디어 쿼리 변형을 제안했습니다.
  • Lea Verou는“더 높은 수준의 사용자 정의 속성”을 제안했습니다.

그래서 그렇습니다. 조건부 CS에 대한 수요가 있습니다.

조건부 CS가 왜 유용한 지 상상해보십시오

아마도 일정량의 스크롤 후 시각적 변화 일 것입니다. 숫자 입력 후 시각적 변화는 특정 범위 내에 있습니다. 소수의 상태를 가진 구성 요소.

상태를 기반으로 UI를 구축하기위한 UI (예 : React, Vue 등)에 대한 매우 인기있는 JavaScript 라이브러리의 전체 장르가 있습니다. 분명히 이것은 개발자의 요구입니다. 우리가 그 상태 기반 스타일을 CSS로 옮길 수 있다면, 그것은 우리가 필요로 할 수있는 자바 스크립트가 적은 것입니다.

일반적인 테마

우리는 이미 CSS에 사용자 정의 속성을 가지고 있으며, 특정 값으로 변경하는 사용자 정의 속성의 부작용으로 스타일 블록을 변경하여 상태 변경 논리를 기반으로 할 수 있습니다.

스타일 블록을 변경하는 메커니즘이 이미 있다는 것은 사실입니다. 우리는 JavaScript를 통해 수업을 변경할 수 있으며 해당 수업은 CSS에서 우리가 좋아하는 것을 적용 할 수 있습니다. 그러나 이것이 CSS의 상태 기반 스타일이 유용하지 않다는 것을 의미하지는 않습니다. 우리는 항상 능력이 있거나 이에 대한 JavaScript를 작성하고 싶지는 않으며 다른 방식으로 사용자 정의 속성을 변경합니다 (예 : 미디어 쿼리, HTML 변경 등). CSS에서 수행한다는 것은 별도의 비즈니스 논리와 시각적 스타일 로직을 돕는 것을 의미합니다.

트릭! 상태에 @keyframes 사용

CSS @keyframes를 사용하여 특정 변경 사항을 전환 할 수 있습니다. 애니메이션 속성의 성능을 통해 가능성은 어떤 프레임을 표시하고 해당 프레임에서 정확하게 일시 중지하여 스위치 케이스 문 또는 상태 기반 스타일을 효과적으로 모방 할 수 있습니다.

애니메이션 지연 속성을 가지고 연주함으로써 이것을 실제로 보자.

그 펜에서 일어나는 일은 다음과 같습니다.

  • 애니메이션 지연 : 음수 지연 값은 특정 프레임 (또는 그 사이)을 강제로 발효합니다 (양수 값은 그렇게 작동하지 않습니다). 우리는이 트릭을 사용하여 상태를 강제로 사용하겠습니다.
  • 애니메이션 플레이-스테이트 : 잠시 멈춤 : 우리는 실제로 애니메이션을하지 않기 때문에 애니메이션은 일시 정지 상태를 유지합니다.
  • 애니메이션 기간 : 실제 지속 시간은 중요하지 않으며 하나만 필요하므로 다른 키 프레임을 보유 할 시간이 있습니다. 우리는 그것을 100.001과 같은 값으로 만들어서 100s를 지연 시키면 마지막 키 프레임이 여전히 작동합니다. 기간은 지연 값보다 길어야합니다.

첫 번째 범위 입력은 -100과 0 사이의 애니메이션 지연을 수정합니다.

실제 사용 사례

우리가 작업 예제로 바로 뛰어 들기 전에, 당신이 알아야 할 뉘앙스가 있기 때문에이 트릭에 대해 더 자세히 논의 할 가치가 있습니다.

우선, 트릭은 숫자 값으로 만 작동합니다. 따라서 색상 값이나 문자열은 엄격하게 수학을 수행하기 때문입니다.

둘째, 부울 속임수가 있습니다. 0과 100 사이의 숫자 값을 취할 수있는 변수 -값 : 10을 고려하십시오. 값이 5 이상인 경우 색상을 적용하고 싶습니다. 값이 5 이상인지 5 이상인지 어떻게 알 수 있습니까? 그리고 우리가 알고 있더라도, 그것이 실제로 우리를 어떻게 도울 수 있습니까?

 -IS-ABOVE-5 : 클램프 (0, var (-값) -5, 1)

Clamp ()는 더 똑똑한 calc ()과 같습니다. 왜냐하면 이상적인 값을 선언하면서 계산 된 값을 범위에 엄격히 제한 할 수 있다는 점에서. 이 범위는 부울 변수를 달성하는 데 필요한 모든 것입니다.

클램프 ()의 두 번째 매개 변수에 수학을 작성하면 0 (또는 아래) 또는 1 (또는 위)을 출력합니다. 0에서 1 사이의 숫자를 초래할 수있는 수학을 작성하지 마십시오.

그것이 어떻게 작동하는지는 다음과 같습니다.

입력 범위의 유일한 작업은 -value, --min 및 - -max에 대한 값을 정의한 다음 OnInput 이벤트를 사용하여 -value를 수정하여 값을 "방송"하는 것입니다. 그것은 CSS에서 상태와 같은 행동을 얻을 수있는 가장 최소한의 일입니다. 자바 스크립트가 필요하지 않습니다.

CSS 수학 기능을 사용하면 동일한 변수에서 진행률 표시 줄의 "완료된"비율을 유추 할 수 있습니다.

 -완성 : calc ((var (-value)-var (-min)) / (var (-max)-var (-min)) * 100);

이제 우리는 값이 특정 비율 이상인지 알 수 있으며, 우리는 주별로 변경할 수있는 또 다른 방법을 제공합니다.

 -30 : 클램프 (0, var (-완성) -30, 1);
-70 : 클램프 (0, var (-완성) -70, 1);
/ * ... 그리고 ... */

좋아, 훌륭하지만,이를 어떻게 사용하여 특정 키 프레임을 선택할 수 있습니까? max () 함수를 사용하여 :

 -프레임 : Max ( 
    calc (1- var (-30)), 
    var (-30 세 이상) * 2, 
    var (-70 이상) * 3, 
    var (-IS-100) * 4 
);

CSS Booleans의 것은 특정 목표를 달성하기 위해 그것들을 사용하는 방법이 많이 있으며 창의력을 발휘하여 짧고 읽을 수있는 공식을 찾아야한다는 것입니다.

위의 공식에서 부울은 부울의 값이 1 인 경우 프레임 번호를 "토글"합니다. 최대 기능을 사용하기 때문에 가장 큰 토글 프레임 번호는 -프레임의 계산 값입니다.

색상 변화에는 약간의 전환이 있습니다. 우리는 배경으로 이것을 할 수있었습니다 : currentColor; 부모의 색상을 물려받는 채우기 영역에서는 CSS Houdini를 사용하여 유형을 선언하여 CSS 변수에 전환을 할당하는 힘을 설명했습니다.

심하게 사용되는 CSS 부울 트릭 의 예는 아래 펜에서 볼 수 있으며, 이는 광범위한 사용자 정의를 허용하는 많은 변수를 가진 CSS 전용 구성 요소입니다.

나는이 작은 속임수에 대한 다른 많은 사용 사례가 있다고 확신하며 커뮤니티의 창의성에 의해 달성 될 수있는 것을 보게되어 기쁩니다.

위 내용은 CSS 스위치 케이스 조건의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
GraphQL 캐싱 작업GraphQL 캐싱 작업Mar 19, 2025 am 09:36 AM

최근에 GraphQL 작업을 시작했거나 장단점을 검토 한 경우 "GraphQL이 캐싱을 지원하지 않음"또는

고급스럽고 멋진 커스텀 CSS 스크롤 바 : 쇼케이스고급스럽고 멋진 커스텀 CSS 스크롤 바 : 쇼케이스Mar 10, 2025 am 11:37 AM

이 기사에서 우리는 스크롤 바의 세계로 뛰어들 것입니다. 너무 화려하게 들리지는 않지만 잘 설계된 페이지가 손을 잡고 있습니다.

첫 번째 맞춤형 전환을 만듭니다첫 번째 맞춤형 전환을 만듭니다Mar 15, 2025 am 11:08 AM

Svelte Transition API는 맞춤형 전환을 포함하여 문서를 입력하거나 떠날 때 구성 요소를 애니메이션하는 방법을 제공합니다.

쇼, 말하지 마십시오쇼, 말하지 마십시오Mar 16, 2025 am 11:49 AM

웹 사이트의 컨텐츠 프레젠테이션을 설계하는 데 얼마나 많은 시간을 소비합니까? 새 블로그 게시물을 작성하거나 새 페이지를 만들 때

Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축Mar 28, 2025 am 09:18 AM

최근 Bitcoin의 가격이 20k 달러가 넘는 USD가 최근에 등반되면서 최근 30k를 끊었으므로 Ethereum을 만드는 데 깊이 다이빙을 할 가치가 있다고 생각했습니다.

NPM 명령은 무엇입니까?NPM 명령은 무엇입니까?Mar 15, 2025 am 11:36 AM

NPM 명령은 서버 시작 또는 컴파일 코드와 같은 것들에 대한 일회성 또는 지속적으로 실행되는 프로세스로 다양한 작업을 실행합니다.

특이성에 대해 이야기하기 위해 (X, X, X, X)를 사용해 보겠습니다.특이성에 대해 이야기하기 위해 (X, X, X, X)를 사용해 보겠습니다.Mar 24, 2025 am 10:37 AM

나는 다른 날에 Eric Meyer와 대화를 나누고 있었고 나는 내 형성 시절부터 Eric Meyer 이야기를 기억했습니다. CSS 특이성에 대한 블로그 게시물을 썼습니다

CSS를 사용하여 텍스트 그림자 및 그라디언트와 같은 텍스트 효과를 만드는 방법은 무엇입니까?CSS를 사용하여 텍스트 그림자 및 그라디언트와 같은 텍스트 효과를 만드는 방법은 무엇입니까?Mar 14, 2025 am 11:10 AM

이 기사에서는 그림자 및 그라디언트와 같은 텍스트 효과에 CSS를 사용하여 성능을 최적화하고 사용자 경험을 향상시킵니다. 초보자를위한 리소스도 나열됩니다. (159 자)

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전