我所擁有的是一個表單,其中一個fieldset包含其他幾個fieldset。對於每個字段集,用戶可以選中圖例旁邊的框並展開該字段集(理論上至少)。我認爲嘗試使用純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;
}
,但沒有運氣。我確認了一個簡單得多的測試,我正在使用的兩個瀏覽器(Chrome,FF 3.5)可以做input:checked + ul
,如果它只是一個輸入後跟一個ul。如果我有兩個規則(在簡化版本中),它會切換顏色。
但我不知道是否有方法可以參考UL,如果檢查的元素是在圖例標記中,而不是UL的直接兄弟。有沒有辦法說「傳奇的兄弟姐妹包含被檢查的輸入......」?
感謝您的幫助。
使用複選框切換面板的視圖是非常規的。樹形箭頭(向下或側向)更常見,或者 - 如果圖例看起來是可點擊的 - 只需單擊圖例即可切換查看。 – 2009-08-12 20:43:19