このフィドルを確認してください - http://jsfiddle.net/vfMsS/。「アクティブな」要素の後の要素とその前の要素を選択するセレクターを記述する必要があります。「前」の部分は機能していないようです。の前の要素を選択する方法はa.active
?
5 に答える
BoltClock が言ったように、現在のブラウザーでこれを行う方法はありません。ただし、CSSで可能だと思います。
CSS セレクター レベル 4構文 (具体的にはthisE! + F
を参照) は、 「要素 F に先行する要素 E」の構文を使用します。
したがって、あなたの場合、構文はa! + a.active
「タグ a とクラスがアクティブな要素の前にタグ a を持つ要素」を意味します。現在のところ、これはどのレイアウト エンジンにもまだ実装されていません。
隣接する兄弟セレクターは前方のみを参照し、後方は参照しません。-
以前の隣接する兄弟のコンビネータはありません。
同じ親にないものを単に選択する必要があり.active
、ブラウザのサポートがわずかに減少しても構わない場合は、:not()
代わりに使用できます。の後に続くものに別のスタイルを指定する必要がある場合は.active
、オーバーライドする必要があります。
a:not(.active) { background:red }
a.active + a { background:yellow }
繰り返しますが、これは常に同じ親を共有していると仮定しています。
.active
リンクの背後にある要素をターゲットにする同じソリューションを探していました
要素の前の要素にデフォルトのスタイルを設定し、.active
その後は兄弟セレクターですべて選択しました。
a.active { background: #ccc;}
a.active ~ * { background: yellow }
a { background: red }
デモ: https://codepen.io/ramiro-ruiz/pen/gBOPQL
それは私のために働いた、それが役立つことを願っています。