14

このフィドルを確認してください - http://jsfiddle.net/vfMsS/。「アクティブな」要素の後の要素とその前の要素を選択するセレクターを記述する必要があります。「前」の部分は機能していないようです。の前の要素を選択する方法はa.active

4

5 に答える 5

7

BoltClock が言ったように、現在のブラウザーでこれを行う方法はありません。ただし、CSSで可能だと思います。

CSS セレクター レベル 4構文 (具体的にはthisE! + Fを参照) は、 「要素 F に先行する要素 E」の構文を使用します。

したがって、あなたの場合、構文はa! + a.active「タグ a とクラスがアクティブな要素の前にタグ a を持つ要素」を意味します。現在のところ、これはどのレイアウト エンジンにもまだ実装されていません。

于 2013-03-16T13:31:52.787 に答える
5

隣接する兄弟セレクターは前方のみを参照し、後方は参照しません。-以前の隣接する兄弟のコンビネータはありません。

同じ親にないものを単に選択する必要があり.active、ブラウザのサポートがわずかに減少しても構わない場合は、:not()代わりに使用できます。の後に続くものに別のスタイルを指定する必要がある場合は.active、オーバーライドする必要があります。

a:not(.active) { background:red }
a.active + a { background:yellow }

繰り返しますが、これは常に同じ親を共有していると仮定しています。

jsFiddle プレビュー

于 2013-03-16T13:10:14.267 に答える
1

.activeリンクの背後にある要素をターゲットにする同じソリューションを探していました

要素の前の要素にデフォルトのスタイルを設定し、.activeその後は兄弟セレクターですべて選択しました。

a.active { background: #ccc;} a.active ~ * { background: yellow } a { background: red }

デモ: https://codepen.io/ramiro-ruiz/pen/gBOPQL

それは私のために働いた、それが役立つことを願っています。

于 2018-09-27T22:47:48.837 に答える
0

兄弟コンビネータを使ってみませんか?

a.active ~ a { background:red }

http://jsfiddle.net/VixedS/6x7d9vm7/

于 2016-03-02T10:47:01.120 に答える