💡 퀵 접속: htm.kr/fieldset
Fieldset 태그는 HTML 문서에서 관련된 폼 요소들을 그룹화하는 데 사용되는 태그입니다. `legend` 태그와 함께 사용하여 그룹의 제목을 지정할 수 있으며, 폼의 구조를 명확하게 하고 접근성을 향상시키는 역할을 합니다.
<form class="user-form">
<fieldset>
<legend>개인 정보</legend>
<div class="form-group">
<label for="name">이름</label>
<input type="text" id="name" name="name">
</div>
<div class="form-group">
<label for="email">이메일</label>
<input type="email" id="email" name="email">
</div>
</fieldset>
<fieldset>
<legend>선호 사항</legend>
<div class="form-group">
<label>관심 분야</label>
<div class="checkbox-group">
<label>
<input type="checkbox" name="interests" value="web">
웹 개발
</label>
<label>
<input type="checkbox" name="interests" value="mobile">
모바일 개발
</label>
</div>
</div>
</fieldset>
</form>
| 속성 | 설명 | 예시 |
|---|---|---|
| disabled | 필드셋 비활성화 | <fieldset disabled> |
| form | 연결할 폼 ID | <fieldset form="myForm"> |
| name | 필드셋 이름 | <fieldset name="personal"> |
<form class="registration-form">
<fieldset class="personal-info">
<legend>개인 정보</legend>
<div class="form-group">
<label for="name" class="required">이름</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email" class="required">이메일</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="phone">전화번호</label>
<input type="tel" id="phone" name="phone">
</div>
</fieldset>
<fieldset class="preferences">
<legend>선호 사항</legend>
<div class="form-group">
<label>관심 분야</label>
<div class="checkbox-group">
<label>
<input type="checkbox" name="interests" value="web">
웹 개발
</label>
<label>
<input type="checkbox" name="interests" value="mobile">
모바일 개발
</label>
<label>
<input type="checkbox" name="interests" value="design">
디자인
</label>
</div>
</div>
<div class="form-group">
<label for="experience">경력</label>
<select id="experience" name="experience">
<option value="">선택하세요</option>
<option value="junior">주니어 (1-3년)</option>
<option value="mid">미드레벨 (3-5년)</option>
<option value="senior">시니어 (5년 이상)</option>
</select>
</div>
</fieldset>
<fieldset class="agreement">
<legend>약관 동의</legend>
<div class="form-group">
<label>
<input type="checkbox" name="terms" required>
이용약관에 동의합니다
</label>
</div>
<div class="form-group">
<label>
<input type="checkbox" name="privacy" required>
개인정보 수집 및 이용에 동의합니다
</label>
</div>
</fieldset>
</form>
<style>
/* 필드셋 기본 스타일 */
fieldset {
border: 1px solid #ddd;
border-radius: 4px;
padding: 20px;
margin-bottom: 20px;
}
/* 범례 스타일 */
legend {
font-weight: 600;
color: #333;
padding: 0 10px;
}
/* 폼 그룹 스타일 */
.form-group {
margin-bottom: 15px;
}
/* 레이블 스타일 */
label {
display: block;
margin-bottom: 8px;
font-weight: 500;
color: #333;
}
label.required::after {
content: " *";
color: #dc3545;
}
/* 입력 필드 스타일 */
input[type="text"],
input[type="email"],
input[type="tel"],
select {
width: 100%;
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
}
/* 체크박스 그룹 스타일 */
.checkbox-group {
display: flex;
flex-direction: column;
gap: 10px;
}
.checkbox-group label {
display: flex;
align-items: center;
gap: 8px;
font-weight: normal;
cursor: pointer;
}
/* 호버 및 포커스 스타일 */
input:focus,
select:focus {
outline: none;
border-color: #007bff;
box-shadow: 0 0 0 2px rgba(0,123,255,0.25);
}
/* 비활성화 스타일 */
fieldset:disabled {
opacity: 0.6;
cursor: not-allowed;
}
/* 반응형 스타일 */
@media (max-width: 768px) {
fieldset {
padding: 15px;
}
.checkbox-group {
gap: 12px;
}
input[type="text"],
input[type="email"],
input[type="tel"],
select {
font-size: 16px;
}
}
</style>
fieldset 태그가 올바르게 사용되었는지 확인하는 방법: