CSS3 selector: not + checked + preceded
CSS3 的 Selector 其實多了不少功能,以前需要用 javascript 才可以做出來的功能現在有時候只要用 CSS3 selector 就可以了,例如說:你有個 checkbox,如果按下這個 checkbox 後下面的 panel 才要顯示。一般來說我們可以用 javascript 對這個 panel 新增 class 來達到這個效果,不過用 CSS3 就又更簡單了。
你的 HTML 大概會長這樣:
1 2 3 4 5 | <input id="toggle" type="checkbox"> <label for="toggle">Show Panel</label> <div id="panel"> Panel </div> |
而 CSS 只要這樣寫就可以控制 panel 顯示/隱藏了。下面 CSS 的意思是如果沒有 (:not) 選取 (:checked) 的時候,跟他同層 (~) 的 #panel 元素就隱藏起來。如果是緊鄰的元素也可以用 + 取代 ~。
1 2 3 | #toggle:not(:checked) ~ #panel { display: none; } |
你也可以在 jsFiddle 上面玩玩(點下面的 result)。