Frage an css, regex – Positiver Ausblick in CSS

9

Ich kenne in Perl Regex den Begriff des positiven Lookahead dhq(?=u) Stimmt mit einem q überein, auf das ein u folgt, ohne dass das u Teil der Übereinstimmung ist. Ich bin auf der Suche nach etwas ähnlichem in CSS: Ich möchte eine Übereinstimmung findendivgefolgt von einem Geschwisterdiv.specialClass.

<div>..</div>  <!-- div to match -->
<div class="specialClass">..</div>

Ich habe mit + rumgespielt, aber das passt dazudiv.specialClass, während ich das vorhergehende willdiv.

@ Dusnmoreb Entschuldigung, die Struktur sollte sein:<div>..</div><div class="specialClass">..</div> wird die Frage aktualisieren. dr jerry
Sie möchten also eine Übereinstimmung wie die folgende erzielen:<div><div class="specialClass">? user672118

Deine Antwort

1   die antwort
10

Sie können noch nicht deklarieren, welcher Teil des Selektors das Thema ist. Das Thema ist immer das letzte Element des Selektors in CSS, bis wir die Kraft haben, dies zu verschieben, wahrscheinlich mit dem$ oder! Syntax.

// Always selects the .specialClass div which follows another div
div + div.specialClass {
    color: red;
}

In Zukunft können Sie das erste div zum Thema machen, wahrscheinlich mit der folgenden Syntax:

// Selects any `div` preceding any `div.specialClass`
$div + div.specialClass { // or maybe div! + div.specialClass
    color: red;
}

Dein einzigerProblemumgehung in der Zwischenzeit soll JavaScript verwendet werden. Ein Tool wie jQuery würde dies sehr trivial machen:

$("div + div.specialClass").prev();

Welches ist jetzt ein Hinweis auf allediv unmittelbar vorhergehenden Elementendiv.specialClass.

Demo:http://jsfiddle.net/jonathansampson/HLfCr/
Quelle:http://dev.w3.org/csswg/selectors4/#subject

@drjerry Sie können Ihre Meinung zum W3C sagen, aber ich denke, es ist wahrscheinlicher, dass sie mitgehen werden$ denn das scheint der Standard in aktuellen Arbeitsentwürfen von Level 4-Selektoren zu sein. Sampson
@drjerry Die$ ist noch nicht in Stein gemeißelt. Es gibt auch!, die dem Thema folgen würde. Ich bin nicht sicher, was endgültig sein wird. Sampson
@ Jonathan Sampson Danke für die Antwort. Gibt es noch eine Chance, für die Regex-Syntax abzustimmen / vorzuschlagen: `div? = Div.specialClass? (Ich liebe Regex) dr jerry
@ Jonathan Sampson Ich werde meinen Fall ruhen. Es ist wahrscheinlich intuitiver, sich als Fokuswähler / -operator Gedanken zu machen. dr jerry
Cool, gibt es einen RFC dafür? Paulpro

Verwandte Fragen