hidden 속성
hidden 불리언 속성으로 요소의 표시 여부를 전환합니다.
hidden 속성은(는) CoddyKit의 무료 HTML Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 HTML Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. HTML Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
hidden이란 무엇인가요?
hidden 속성은 요소를 보이지 않게 만들고 접근성 트리에서 제거합니다:
<p hidden>This paragraph is hidden.</p>
<!-- Equivalent to: display: none in CSS -->
<!-- The element is in the DOM but not rendered -->
<!-- Screen readers do not announce hidden elements -->hidden은 불리언 속성입니다
불리언 속성은 존재하면 참이고 없으면 거짓이며, 값이 필요하지 않습니다:
<!-- All of these are equivalent: -->
<div hidden>Content</div>
<div hidden="">Content</div>
<div hidden="hidden">Content</div>
<!-- Remove with JavaScript: -->
element.removeAttribute('hidden');
<!-- Or set: -->
element.setAttribute('hidden', '');hidden, display:none, visibility:hidden 비교
요소를 숨기는 세 가지 방법입니다:
/* hidden attribute = display:none */
/* Element is removed from flow, invisible to AT */
/* visibility: hidden */
/* Element occupies space but is invisible */
/* Still read by some screen readers */
/* opacity: 0 */
/* Element occupies space, invisible, still interactive */
/* Still read by screen readers */
/* Hidden attribute is the simplest for fully hiding content */JavaScript로 가시성 전환하기
hidden 속성을 추가하거나 제거하여 가시성을 제어합니다:
const modal = document.getElementById('modal');
// Show:
modal.removeAttribute('hidden');
// or:
modal.hidden = false;
// Hide:
modal.setAttribute('hidden', '');
// or:
modal.hidden = true;
// Toggle:
modal.toggleAttribute('hidden');CSS는 hidden을 재정의할 수 있습니다
CSS의 display가 hidden 속성을 재정의할 수 있으므로 주의해야 합니다:
/* This makes hidden elements visible again: */
[hidden] {
display: block !important;
}
/* Do not do this unless you have a very specific reason */
/* The hidden attribute should be trusted as the source of truth for visibility */hidden과 aria-hidden 비교
숨김에는 서로 다른 두 가지 유형이 있습니다:
hidden— 시각적으로 숨겨지고 AND 접근성 트리에서도 제거됩니다aria-hidden="true"— 접근성 트리에서만 숨겨지고 시각적으로는 계속 렌더링됩니다
<!-- hidden: nothing sees it -->
<div hidden>Completely hidden</div>
<!-- aria-hidden: visual users see it, screen readers skip it -->
<span aria-hidden="true">★★★★☆</span>
<span class="sr-only">4 out of 5 stars</span>표시 및 숨기기 패턴
hidden을 사용한 일반적인 표시 및 숨기기 전환입니다:
<button
aria-expanded="false"
aria-controls="menu"
id="menu-btn"
>Menu</button>
<ul id="menu" hidden>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
</ul>
<script>
document.getElementById('menu-btn').addEventListener('click', function() {
const menu = document.getElementById('menu');
const expanded = this.getAttribute('aria-expanded') === 'true';
menu.hidden = expanded;
this.setAttribute('aria-expanded', !expanded);
});
</script>until-found 값(새 기능)
HTML 5.1 이상에서는 검색할 수 있지만 접힌 콘텐츠를 위해 hidden="until-found"를 도입했습니다:
<details>
<summary>Read More</summary>
<div hidden="until-found" id="more-content">
<p>This content is collapsed but findable by Ctrl+F.</p>
</div>
</details>
<!-- hidden="until-found" hides visually but allows browser Ctrl+F to find and reveal it -->
<!-- Only supported in Chromium-based browsers currently -->화면 낭독기 동작
hidden 속성은 콘텐츠를 보조 기술에서 완전히 숨깁니다:
- 화면 낭독기는 숨겨진 요소를 건너뜁니다
- Tab 포커스가 숨겨진 요소 안으로 들어가지 않습니다
- 숨겨졌을 때 탐색되지 않아야 하는 모달, 오프캔버스 메뉴, 조건부 패널에 적합합니다
일반적인 사용 사례
hidden 속성을 사용하는 경우입니다:
- 열기 전의 모달 대화 상자
- 탭 패널 콘텐츠(활성 탭의 패널은 표시하고 나머지는 숨김)
- 단계별 마법사(현재 단계 표시)
- 점진적 공개(클릭하면 추가 정보 표시)
- 로드 상태(로드 스피너를 콘텐츠로 교체)
숨김 상태 유지하기
페이지를 다시 불러와도 가시성 상태를 유지하려면 localStorage를 사용합니다:
const panel = document.getElementById('info-panel');
const key = 'info-panel-visible';
// Restore state:
if (localStorage.getItem(key) === 'false') {
panel.hidden = true;
}
// On toggle:
document.getElementById('toggle-btn').addEventListener('click', () => {
panel.hidden = !panel.hidden;
localStorage.setItem(key, !panel.hidden);
});빠른 확인
hidden 속성과 aria-hidden의 차이점은 무엇인가요?
복습: hidden 속성
hidden 속성의 핵심 내용입니다:
hidden—display: none과 동일합니다- 불리언 속성: 존재하면 숨겨지고, 없으면 표시됩니다
- 접근성 트리에서 제거됩니다(
visibility: hidden과 다름) element.hidden = true/false로 전환합니다aria-hidden="true"는 AT에서만 숨기고 시각적 렌더링은 유지합니다
자주 묻는 질문
“hidden 속성” 강의는 무료인가요?
네 — “hidden 속성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 HTML Academy 강의 전체를 잠금 해제할 수 있습니다. HTML Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“hidden 속성”에서 뭘 배우나요?
hidden 불리언 속성으로 요소의 표시 여부를 전환합니다. 브라우저에서 직접 실행하는 실습 코드로 HTML Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
HTML Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 HTML Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“hidden 속성” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 HTML Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 HTML Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.