非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

CSSだけでクリックイベントを発生させる方法

   

HTML/CSSでクリックやホバーイベントで自分自身のスタイルを変える事例はわんさかありますが、他の要素(例えばaリンク)をクリックして別の要素(例えばdiv)のスタイルをCSSだけで変える事例をあまり見かけません。一般的にはJavascriptを使うケースが多いのですがCSSのみでも実現できます。今回以下のような動きをするHTML/CSSの事例を書き留めておきます。

まずはHTMLから。クリックイベントを発生させるためには、input要素のchangedプロパティを利用しますが、aリンクと連動ができません。aリンクの代わりにlabel要素を使ってfor属性でinput要素と連動させます。“`for=”link-btn”“` で “`id=”link-btn”“` と連動させることができます。

<label id="label1" for="link-btn">クリック</label>
<input type="checkbox" id="link-btn">
<div id="label1-div">
<p>DIV要素</p>
</div>
 

 

次にCSSですが、input要素()のcheckedプロパティでスタイルを変更することができます。

#label1{
    cursor: pointer;
}
#label1:hover{
    color: blue;
}
#link-btn{
    display: none;
}
#link-btn+#label1-div{
    background: lightgray;
}
#link-btn:checked+#label1-div{
    background: lightgreen;
}
#label1-div{
    width: 300px;
    height: 300px;
    background: gray;
}
 

 

 

スポンサーリンク

 - HTML/JavaScript