疑似クラスと疑似要素を使用して要素のスタイルを設定しようとしています。 はhover::before
完璧に機能しているのに、:visited::before
は機能しません。
:visited::before
リンクにアクセスしたが機能していない場合は、「閲覧済み」と表示したい。
*, *:before, *:after {
box-sizing: border-box;
}
body {
background-color: #eee;
font-size: 23px;
padding: 50px;
font-family: 'Ubuntu Condensed', sans-serif;
}
.style-3 {
margin: 20px;
float: left;
padding: 20px 80px 20px 20px;
border: 1px solid #ccc;
background-color: #fff;
position: relative;
text-decoration: none;
}
.style-3 {
color: green;
}
.style-3:visited {
color: red;
}
.style-3:hover::before {
content: "Hover";
position: absolute;
right: 20px;
color: yellow;
}
.style-3:visited::before {
content: "Seen";
position: absolute;
right: 20px;
color: blue;
}
<a href="#1" class="style-3">Seen Effects</a>
<a href="#2" class="style-3">Seen Effects</a>
<a href="#3" class="style-3">Seen Effects</a>
ベストアンサー1
それは可能かもしれないが、当然のことと考えてはいけない。スペック、
注意: スタイルシートの作成者は、:link および :visited 疑似クラスを悪用して、ユーザーの同意なしにユーザーがどのサイトにアクセスしたかを判断する可能性があります。
したがって、UA はすべてのリンクを未訪問リンクとして扱うか、訪問済みリンクと未訪問リンクを別々にレンダリングしながらユーザーのプライバシーを保護するための他の手段を実装することができます。
コンテンツを挿入すると要素のサイズが変わることがあるため、これを検出してユーザーが何らかのサイトにアクセスしたかどうかを知るのは簡単です。そのため、ほとんどのブラウザではこれを許可しません。