問題は、「他の誰かがターゲットである間に何かをする」という方法で要素を実際にターゲットにすることはできないということです。
ただし、このジレンマにはいくつかの回避策があります。1 つの解決策は、常にデフォルトのコンテンツを表示し、ターゲット要素を上に表示することです。
dom で後で表示される要素は通常、先に表示されるノードの上にレンダリングされるという事実を利用できます。したがって、たとえば、負の上部マージンまたは絶対配置要素がデフォルトのコンテンツを覆う可能性があります。
HTML 構造の改善:
<div class="default" id="z">0</div>
<div id="a">1</div>
<div id="b">2</div>
<div id="c">3</div>
このCSSは機能します:
.default {
display: block;
background: #eff;
}
div + div {
margin-top: -102px;
}
div:target {
background: #eef;
display: block;
position: relative;
}
この特定のアプローチの欠点は、デフォルト コンテンツの正確なサイズを知る必要があることです。
このフィドルを参照してください: http://jsfiddle.net/Gsggy/4/