내가 가진 것은 하나의 필드 세트가 다른 여러 필드 세트를 포함하는 양식입니다. 각 필드 세트에 대해 사용자는 범례 옆에있는 상자를 선택하고 해당 필드 세트를 확장 할 수 있습니다 (이론적으로는 최소한). 효과를 위해 순수한 CSS를 사용하는 것은 멋지다고 생각했지만, DOM에서 두 요소의 위치를 기반으로 규칙을 작성하는 방법이 궁금합니다. 다음은 HTML의 : 먼저 생각에서DOM의 속성 + 형제에 대한 CSS 규칙
<fieldset id="areasofinterest">
<legend>Areas of Interest Survey</legend>
<p>Please Check The Areas Applicable to you and Answer the Coorepsonding Questions.</p>
<!--Area 1 Checkbox and Questions -->
<fieldset class="area">
<legend>
<input type="checkbox" value="area1" id="area1" />
<label for="area1"> Area 1 :</label>
</legend>
<ul>
<li>
<label for="area1_q1">Q1</label>
<input type="text" name="area1_q1" id="area1_q1" />
</li>
<li>
<label for="area1_q2">Q2</label>
<input type="text" name="area1_q2" id="area1_q2" />
</li>
</ul>
</fieldset>
<!--Area 2 Checkbox and Questions -->
<fieldset class="area">
<legend>
<input type="checkbox" value="area2" id="area2" />
<label for="other"> Area 2 :</label>
</legend>
<ul>
<li>
<label for="area2_q1">Q1</label>
<input type="text" name="area2_q1" id="area2_q1" />
</li>
<li>
<label for="area2_q2">Q2</label>
<input type="text" name="area2_q2" id="area2_q2" />
</li>
</ul>
</fieldset>
</fieldset>
나에게 조금 해킹 틱 듯하지만은 W3C 유효성 검사기를 통해 실행하고,이 전설에 내장 된 입력을 통과 yipiee. 그래서 나는 내가 javascript/jquery를 사용하여 얻은 것을 얻을 수 있다고 확신하지만, 구 브라우저가 그것을 지원하지 않을지라도 적어도 CSS를 사용하여 개념을 증명할 것을 싫어한다.
.area ul {
color: red;
}
.area input:checked + ul {
color: blue;
}
하지만 운 :
나는이 규칙을 시도했다. 훨씬 간단한 테스트를 통해 내가 함께 작업하고있는 두 브라우저 (FF3.5)는 입력이 단순히 ul 인 경우input:checked + ul
을 수행 할 수 있음을 확인했습니다. 그리고 두 규칙이 모두있는 경우 색상을 전환합니다 (단순화 된 버전에서).
하지만 체크 된 요소가 범례 태그에 whithin이고 따라서 UL의 직접적인 형제가 아닌 경우 UL을 참조 할 방법이 있는지 확실하지 않습니다. "입력 사항을 포함하는 전설의 형제 자매"라고 말할 수있는 방법이 있습니까?
도움 주셔서 감사합니다.
패널의보기를 전환하는 확인란을 사용하는 것은 비 통상적입니다. 트리 모양의 화살표 (아래쪽 또는 옆쪽)를 사용하는 것이 더 일반적입니다. 또는 - 범례를 클릭 할 수있게 만들면 범례를 클릭하여보기를 전환 할 수 있습니다. –