>웹 프론트엔드 >CSS 튜토리얼 >범위가 지정된 CSS 사용자 정의 속성이 때때로 계산에 대해 올바르게 계단식으로 배열되지 않는 이유는 무엇입니까?

범위가 지정된 CSS 사용자 정의 속성이 때때로 계산에 대해 올바르게 계단식으로 배열되지 않는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-19 07:56:10340검색

Why Do Scoped CSS Custom Properties Sometimes Fail to Cascade Correctly for Calculations?

CSS에서 범위가 지정된 사용자 정의 속성 상속

CSS에서 사용자 정의 속성을 정의할 때 범위 지정은 상속 및 사용에서 중요한 역할을 합니다. 그러나 외부 범위에서 변수를 계산하는 데 사용될 때 범위가 지정된 사용자 정의 속성이 무시되는 상황이 발생할 수 있습니다. 이는 하위 요소 내에서 사용자 정의 속성이 재정의되어 예기치 않은 결과가 발생할 때 발생할 수 있습니다.

범위 지정 설명

사용자 정의 속성은 -- 접두사 및 :root 또는 :host 키워드를 사용하여 특정 요소나 하위 트리로 범위를 지정할 수 있습니다. 범위가 지정된 속성은 요소 또는 해당 하위 항목 내에서만 액세스할 수 있으므로 캡슐화 및 제어된 상속이 가능합니다.

범위가 지정된 속성 및 계산 관련 문제

귀하의 예에서는 다음을 정의했습니다. --size-1, --size-2 및 --size-3의 값을 계산하려면 :root 선택기의 범위가 지정된 사용자 정의 속성 --scale을 사용합니다. 그러나 하위 요소(.scale-1x, .scale-2x 및 .scale-3x) 내에서는 --scale을 다시 정의했습니다. CSS는 위에서 아래로 사용자 정의 속성을 평가하기 때문에 문제가 발생합니다. 사용자 정의 속성이 특정 수준에서 평가되면 중첩된 요소에서 재정의하거나 변경할 수 없습니다.

컴포저블 크기 조정을 위한 CSS 사용자 정의 속성 기술

원하는 목표를 달성하려면 결합 없이 다양한 수준에서 목록을 확장하면 다음 기술을 사용할 수 있습니다.

:root {
  --size-1: calc(1rem * var(--scale, 1));
  --size-2: calc(2rem * var(--scale, 1));
  --size-3: calc(3rem * var(--scale, 1));
}

.size-1, .size-2, .size-3 {
  font-size: var(--scale, 1rem);
}

.scale-1x {
  --scale: 1;
}
.scale-2x {
  --scale: 2;
}
.scale-3x {
  --scale: 3;
}

이 접근 방식에서는 --scale 속성의 범위는 :root 수준으로 유지됩니다. 그러나 글꼴 크기를 계산하는 데 직접 사용하는 대신 .size-1, .size-2 및 .size-3 클래스 내의 var() 함수 내에서 사용합니다. 이를 통해 글꼴 크기가 외부 범위에 설정된 경우 --scale 값을 상속할 수 있습니다. --scale이 제공되지 않으면 기본값인 1rem으로 돌아갑니다.

이 기술을 사용하면 요소를 결합하지 않고도 스케일링 효과를 구성할 수 있습니다. .scale-1x, .scale-2x 및 .scale-3x 클래스를 다양한 목록 요소 또는 그룹에 적용하여 원하는 배율 변형을 얻을 수 있습니다.

위 내용은 범위가 지정된 CSS 사용자 정의 속성이 때때로 계산에 대해 올바르게 계단식으로 배열되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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