> 웹 프론트엔드 > CSS 튜토리얼 > DOM 요소의 `display` 속성에 어떻게 정확하게 액세스할 수 있나요?

DOM 요소의 `display` 속성에 어떻게 정확하게 액세스할 수 있나요?

Patricia Arquette
풀어 주다: 2024-12-26 03:44:09
원래의
651명이 탐색했습니다.

How Can I Accurately Access the `display` Property of DOM Elements?

DOM 요소의 표시 속성에 정확하게 액세스

DOM 요소의 표시 속성을 검색하는 것은 간단해 보이지만 예상치 못한 결과가 발생할 수 있습니다. 다음 예를 고려하십시오.

var a = (document.getElementById('a')).style;
alert(a.display);
로그인 후 복사

이 경고는 예상되는 "없음" 값 대신 빈 문자열을 표시할 수 있습니다. 왜 이런 일이 발생하는 걸까요?

CSS 속성 값과 적용된 스타일의 차이가 문제입니다.

CSS 속성 값과 적용된 스타일

.display를 포함한 .style.* 속성은 적용된 스타일이 아닌 CSS 속성 값에 매핑됩니다. 적용된 스타일은 CSS 계단식 결과를 반영하며 속성 값과 다를 수 있습니다.

주어진 예에서 요소 "a"의 표시 속성은 CSS 속성 스타일에서 "none"으로 설정됩니다.

a {
  display: none;
}
로그인 후 복사

단, 외부 스타일시트나 동적 특성에 따라 적용되는 스타일이 다를 수 있습니다.

getCompulatedStyle 사용

적용된 스타일을 올바르게 검색하려면 getCompulatedStyle() 메서드를 사용하세요. 요소를 인수로 사용하고 계산된 CSS 스타일이 포함된 CSSStyleDeclaration 개체를 반환합니다.

var a = (document.getElementById('a'));
alert(getComputedStyle(a).display);  // Displays "none" as expected
로그인 후 복사

대체 접근 방식: 클래스 토글

대안으로 다음을 사용하는 것을 고려하세요. 요소의 가시성을 전환하는 CSS 클래스입니다. 이 접근 방식은 프레젠테이션을 로직에서 분리하고 CSS 속성을 직접 조작할 필요를 방지합니다.

.hidden {
  display: none;
}
로그인 후 복사
var p = document.getElementById('p');
p.classList.toggle('hidden'); // Toggles the display property
로그인 후 복사

getCompulatedStyle 또는 클래스 토글을 사용하면 DOM 요소의 표시 속성에 정확하게 액세스하고 제어할 수 있습니다.

위 내용은 DOM 요소의 `display` 속성에 어떻게 정확하게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿