HTML의 hidden 속성은 해당 속성이 지정된 요소가 더 이상 문서와 관련이 없으므로 사용자에게 표시되어서는 안 된다는 것을 브라우저에 알려주는 역할을 합니다. hidden 속성이 적용된 요소는 화면에서 완전히 사라지며, CSS의 display: none;과 유사한 효과를 냅니다.
hidden 속성의 기본 문법
<element hidden></element>
hidden 속성은 불리언(Boolean) 속성으로, 단순히 태그에 hidden만 작성하면 해당 요소가 숨겨집니다. 또한 JavaScript를 사용해 element.hidden = true 또는 element.hidden = false 형태로 동적으로 제어할 수도 있습니다.
예제: 권한 수준에 따라 다른 메뉴 보여주기
아래 예제는 입력 필드에 입력한 권한 수준(admin, user 등)에 따라 서로 다른 선택 목록을 보여주거나 숨기는 방식으로 hidden 속성을 활용한 코드입니다.
<!DOCTYPE html>
<html>
<head>
<title>HTML hidden attribute</title>
<style>
form {
width:70%;
margin: 0 auto;
text-align: center;
}
* {
padding: 2px;
margin:5px;
}
input[type="button"] {
border-radius: 10px;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>HTML-hidden-attribute</legend>
<input type="text" id="textSelect" placeholder="Your Authorization Level">
<select id="selection1" hidden>
<option>Add user</option>
<option>Delete user</option>
<option>Modify user</option>
</select>
<select id="selection2" hidden>
<option>Mail admin</option>
<option>Call admin</option>
</select>
<input type="button" value="go" onclick="displaySelection()">
<div id="divDisplay">Hello</div>
</fieldset>
</form>
<script>
var textSelect = document.getElementById("textSelect");
var divDisplay = document.getElementById("divDisplay");
var selection1 = document.getElementById("selection1");
var selection2 = document.getElementById("selection2");
function displaySelection() {
if(textSelect.value === 'admin'){
selection1.hidden = false;
selection2.hidden = true;
divDisplay.textContent = 'Welcome Admin';
} else if(textSelect.value === 'user'){
selection2.hidden = false;
selection1.hidden = true;
divDisplay.textContent = 'Welcome User';
} else{
selection2.hidden = true;
selection1.hidden = true;
divDisplay.textContent = 'Your input does not match any authorization';
}
}
</script>
</body>
</html>실행 결과 살펴보기
1) 'user' 입력 후 Go 버튼 클릭 시
사용자 권한 수준(user)을 입력하고 Go 버튼을 누르면, 관리자용 목록(selection1)은 숨겨지고 일반 사용자용 목록(selection2)만 화면에 나타납니다.

2) 'admin' 입력 후 Go 버튼 클릭 시
관리자 권한 수준(admin)을 입력하면 반대로 관리자용 목록(사용자 추가, 삭제, 수정)이 표시되고, 일반 사용자용 목록은 숨겨집니다.

3) 잘못된 값 입력 후 Go 버튼 클릭 시
권한 수준에 해당하지 않는 값을 입력하면 두 목록 모두 숨겨지고, 입력값이 어떤 권한과도 일치하지 않는다는 안내 메시지만 출력됩니다.

정리
hidden 속성은 별도의 CSS 없이 간단하게 요소를 숨길 수 있는 편리한 HTML 기능입니다. 특히 JavaScript와 함께 사용하면 위 예제처럼 사용자의 입력값이나 상태에 따라 화면 콘텐츠를 동적으로 제어하는 인터랙티브한 웹 페이지를 손쉽게 구현할 수 있습니다.