Вопрос по regex, css – позитивный взгляд в css

9

Я знаю в Perl регулярное выражение понятия положительного взгляда, то естьq(?=u) соответствует q, за которым следует u, не делая u частью совпадения. Я ищу что-то подобное в CSS: я хочу, чтобы соответствоватьdiv, за которым следует родной братdiv.specialClass.

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

Я играл с +, но это совпадает сdiv.specialClass, тогда как я хочу предыдущийdiv.

Итак, вы хотите сопоставить что-то вроде следующего:<div><div class="specialClass">? user672118
@dusnmoreb извините, структура должна быть:<div>..</div><div class="specialClass">..</div> обновлю вопрос. dr jerry

Ваш Ответ

1   ответ
10

какая часть селектора является предметом. Субъект всегда является последним элементом селектора в CSS, пока мы не получим возможность его перемещать, вероятно, используя$ или же! синтаксис.

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

В будущем вы сможете сделать первый div субъектом, вероятно, со следующим синтаксисом:

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

Твой единственныйworkaround тем временем стоит использовать JavaScript. Такой инструмент, как jQuery, сделал бы это очень тривиальным:

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

Который сейчас является ссылкой на всеdiv элементы, непосредственно предшествующие любомуdiv.specialClass.

Демо-версия:http://jsfiddle.net/jonathansampson/HLfCr/
Источник:http://dev.w3.org/csswg/selectors4/#subject

Круто, есть RFC для этого?
@ Джонатан Сэмпсон: Я успокоюсь. Подумайте еще раз: $ как селектор / оператор фокуса, возможно, более интуитивно понятно. dr jerry
@drjerry The$ еще не установлен в камне. Там также!, который следовал бы за предметом. Я не уверен, что будет окончательным.
@ drjerry Вы можете высказывать свое мнение W3C, я уверен, однако я думаю, что скорее всего, они пойдут с$ так как это то, что представляется стандартом в текущих рабочих проектах селекторов уровня 4.
@ Джонатан Сэмпсон Спасибо за ответ. Есть ли еще шанс проголосовать / предложить синтаксис регулярного выражения: `div? = Div.specialClass? (Я люблю регулярные выражения) dr jerry

Похожие вопросы