CSS Click Event
最近剛好在做一個東西,迫使我要想想如何使用單純使用 CSS 來控制網頁上的可視元素,並且不使用 JS 來做。說實在話,目前要使用純 CSS 來控制網頁上的元素,實在是有困難,畢竟 CSS 並沒有提供像是 JS 那樣多的 Event 可以用。
問題
這個效果就是,要 click 網頁上的一個元素之後,讓網頁上其他的 block 可以 hidden 或者 visible。
使用 JS
如果使用 JS,這真的很簡單,譬如使用 JQuery 來做的話
1 | (function($){ |
使用 CSS
因為無法針對某個元素的 click 來控制是否可視,所以就要繞比較大一圈了
html
1 | <label for="block1"> show block 1</label> |
css
1 | <style> |
原理
其實重點是在 css selector 的部分,主要是判斷 input Radio 有沒有被 checked 而已。有被 checked ,就把當前 radio 的下一個 div.block 顯示出來,如果沒有,就把當前 radio 的下一個 div.block 隱藏起來;而 radio 的 click 則是透過 label 這個 tag 來觸發。