<div id="sample01">
[ダミーテキスト1]ポイントカードを発行し、商品の購入者に対し、次回以降の買い物の際に支払いの
一部に充当できるポイントを提供する場合は、景品ではなく値引。
</div>
<a href="#sample01">続きを表示</a>
<a href="#sample02">続きを隠す</a>
<span id="sample02"> </span>
#sample01 {
width:800px;
margin:0 auto;
padding:8px 10px 10px;
text-align:left;
border:1px solid #bbf;
color:#666;
}
#sample01 ~ a {
display:none;
}
#sample01 + a {
display:inline;
}
#sample01:target::after {
content:"取引通念上妥当と認められる基準に従い、取引の相手方に対し、支払うべき対価を減額する
こと又は割り戻すことは、値引と認められる経済上の利益に該当し、景品表示法上の景品類には該当
しません。";
color:green;
}
#sample01:target ~ a {
display:inline;
}
#sample01:target + a {
color:#aaa;
pointer-events: none;
}
「id="sample01"」のdiv要素に弟要素であるa要素を2つ続けています。CSSの9行目から14行目で、隣接セレクタと間接セレクタを使い、2つの弟a要素を非表示に、続いて最初のa要素のみを表示させています。 最初のa要素である「続きを表示」をクリックすると、ページ内リンクで、「id="sample01"」のdiv要素に飛びます。すると、:target疑似クラスと:after擬似要素により、続きのテキストを表示(確認用に緑色文字にしています)します。15行目から20行目。 同時に、21行目以降で、:target疑似クラスと隣接セレクタと間接セレクタを使い、9行目からの2つのa要素のスタイルを逆にしています。このとき、2つのa要素を表示させ、最初のa要素のみを非表示にさせようとしましたが、なぜか引きずられて2つとも非表示になってしまいます。そこで、最初のa要素のみを薄消し状態の色で表示したままにしています。 続きのテキストを表示した状態で、「続きを隠す」をクリックすると、「id="sample02"」へ移動するため、:target疑似クラスが聴かなくなり、スタイルが元に戻ります。