CSSだけで特別な人に特別なページを見せる方法。
某G社のミスのせい*1でアクセスが増えてる間、リンクたどられてアイタタタな感じだったので、僕以外の人にはサイドバー見れないように一時的にちょっと隠してた。落ち着いたので、ちょっと整理してみる。
やりたいこと
方法
自分だけが訪問済みになってるリンクを使ってCSSでいろいろやればいんじゃね?
HTML
<a class="ownerlink" href="http://d.hatena.ne.jp/kou21058/designdetail"></a> <!-- ↑自分だけなリンク --> <div class="owneronly"> <!-- この中が他の人は非表示になる -->
CSS
.owneronly { display: none; } a.ownerlink:visited + .owneronly { display: block; }
使い方
自分だけのリンクを踏むだけで、自分だけの世界へ。
ログインしてなくても、アドレスバーに直接URL入力すればOK!
踏んでみる? → http://d.hatena.ne.jp/kou21058/designdetail
おまけ
逆バージョン。注意書きいらね。
<a class="ownerlink" href="http://d.hatena.ne.jp/kou21058/designdetail"></a> <div class="headercomment ownerhidden"> <h2>注意書きのようなもの。</h2>
a.ownerlink:visited + .ownerhidden { display: none; }
注意点とか
履歴を消すと他の人扱い。
http://d.hatena.ne.jp/…/editの方がいいかな。どっちでも同じか。
CSS解釈しないブラウザとかだと普通に見えると思う。
IE7だとどーなんだろ。隣接セレクタ解釈する*2って話だけど。[そのうち試す]
はてぶが嫌いな人は、
<a class="viplink" href="http://b.hatena.ne.jp/hotentry"></a> <img class="viponly" src="グロ画像">
ってやってみるといいかもしれない。
この方法でGoogleの広告消しても大丈夫かなぁ。どうせ僕が見ても、クリックできないんだし。
ってか、そもそも、
- 隠しテキストや隠しリンクを使用しない。
これに引っかかりそうな気がしないでもない。
参考
5.7 隣接セレクタ(Adjacent sibling selectors)
class = cdata-list [CS]
この属性は、ある要素に1つのクラス名を割り当てるか、または複数のクラス名を設定する。 幾つの要素に対してでも、同じクラス名あるいはクラス名群が割り当てできる。複数のクラス名については、空白文字によって区切らねばならない。