처음 언급 한 부분을 잊어 버렸지 만 for=
속성이 설정 되어있는 한 실제로 다른 곳에 컨테이너에 레이블을 포함시킬 수 있습니다 . SO에 대한 샘플을 확인하십시오.
* {
padding: 0;
margin: 0;
background-color: #262626;
color: white;
}
.radio-button {
display: none;
}
#filter {
display: flex;
justify-content: center;
}
.filter-label {
display: inline-block;
border: 4px solid green;
padding: 10px 20px;
font-size: 1.4em;
text-align: center;
cursor: pointer;
}
main {
clear: left;
}
.content {
padding: 3% 10%;
display: none;
}
h1 {
font-size: 2em;
}
.date {
padding: 5px 30px;
font-style: italic;
}
.filter-label:hover {
background-color: #505050;
}
#featured-radio:checked~#filter .featured,
#personal-radio:checked~#filter .personal,
#tech-radio:checked~#filter .tech {
background-color: green;
}
#featured-radio:checked~main .featured {
display: block;
}
#personal-radio:checked~main .personal {
display: block;
}
#tech-radio:checked~main .tech {
display: block;
}
<input type="radio" id="featured-radio" class="radio-button" name="content-filter" checked="checked">
<input type="radio" id="personal-radio" class="radio-button" name="content-filter" value="Personal">
<input type="radio" id="tech-radio" class="radio-button" name="content-filter" value="Tech">
<header id="filter">
<label for="featured-radio" class="filter-label featured" id="feature-label">Featured</label>
<label for="personal-radio" class="filter-label personal" id="personal-label">Personal</label>
<label for="tech-radio" class="filter-label tech" id="tech-label">Tech</label>
</header>
<main>
<article class="content featured tech">
<header>
<h1>Cool Stuff</h1>
<h3 class="date">Today</h3>
</header>
<p>
I'm showing cool stuff in this article!
</p>
</article>
<article class="content personal">
<header>
<h1>Not As Cool</h1>
<h3 class="date">Tuesday</h3>
</header>
<p>
This stuff isn't nearly as cool for some reason :(;
</p>
</article>
<article class="content tech">
<header>
<h1>Cool Tech Article</h1>
<h3 class="date">Last Monday</h3>
</header>
<p>
This article has awesome stuff all over it!
</p>
</article>
<article class="content featured personal">
<header>
<h1>Cool Personal Article</h1>
<h3 class="date">Two Fridays Ago</h3>
</header>
<p>
This article talks about how I got a job at a cool startup because I rock!
</p>
</article>
</main>
아휴. 그것은 "샘플"에 대한 것이 많았지 만 실제로 효과와 포인트를 이끌어 낸다고 생각합니다. 형제가 아닌 체크 된 입력 컨트롤의 레이블을 확실히 선택할 수 있습니다. 의 비밀 거짓말 을 지키는 input
그들이해야 것만으로 태그를 아이를 (이 경우 - 단지 body
요소) .
때문에 label
요소가 실제로 사용하지 않는 :checked
의사 선택을, 레이블이 저장되는 중요하지 않습니다 header
. 그것은 header
형제 요소 이기 때문에 ~
일반 형제 선택기를 사용하여 input[type=radio]:checked
DOM 요소에서 header
컨테이너 로 이동 한 다음 자손 / 자식 선택기를 사용하여 label
s 자체 에 액세스 할 수 있으므로 추가 할 때 스타일 을 지정할 수 있다는 이점이 있습니다. 해당 라디오 상자 / 확인란이 선택 됩니다.
레이블의 스타일을 지정할 수있을뿐만 아니라 모든 input
s 에 대해 형제 컨테이너의 자손 일 수있는 다른 컨텐츠의 스타일도 지정할 수 있습니다 . 그리고 지금 당신이 기다리고있는 순간, JSFIDDLE ! 그곳에 가서 함께 놀아보세요. 효과가있는 이유를 찾아 내십시오.
다행스럽게도 모든 것이 말이되고 질문에 완전히 대답하고 가능한 모든 후속 조치가 이루어지기를 바랍니다.
<label for="rad1">Radio 1</label><input id="rad1" type="radio" name="rad">