cssのセレクタの「隣接セレクタ」「擬似クラス 」「擬似要素 」などを使用する事で、今までjQuery等を使わないと出来なかった事がcssのみで出来るようになります。
:not
notを使う事で指定した要素以外の要素を選択する事が出来る
<div>
<h1>Lorem ipsum dolor sit.</h1>
<h2>Lorem ipsum dolor sit.</h2>
<p>Lorem ipsum dolor sit.</p>
</div>
css
div :not(p){
color: red;
}
フィルタリングの考え方
- フィルタリングをかけたい要素に「data-category」属性を設定(複数可の場合は内容の“一部”が一致する指定がcssで必要)しておく
- ラジオボタンのidに各カテゴリー名を設定する
- 各カテゴリーのラジオボタンがcheckedになったら、対応している「data-category」属性を持った要素以外を非表示にさせる
- 全てボタンを押したら、全ての要素が表示に
[id="all"]:checked ~ .targets>.target-box{
display: block;
}
[id="カテゴリー名"]:checked ~ .targets>.target-box:not([data-category*="カテゴリー名"]){
display: none;
}
webliker.info