Pregunta sobre css, regex – lookahead positivo en css

9

Sé que en Perl regex la noción de lookahead positivo es decirq(?=u) coincide con una q seguida de una u, sin formar la parte u de la coincidencia. Estoy buscando algo similar en css: quiero unir undiv, seguido de un hermanodiv.specialClass.

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

He jugado con + pero eso coincide condiv.specialClass, mientras que quiero lo anteriordiv.

Así que quieres hacer coincidir algo como lo siguiente:<div><div class="specialClass">? user672118
@dusnmoreb lo siento, la estructura debe ser:<div>..</div><div class="specialClass">..</div> actualizaré la pregunta. dr jerry

Tu respuesta

1   la respuesta
10

mpre es el último elemento del selector en CSS, hasta que obtengamos el poder de moverlo, probablemente utilizando el$ o! sintaxis.

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

En el futuro, podrá hacer que el primer div sea el tema, probablemente con la siguiente sintaxis:

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

Tu únicosolución en el ínterin es utilizar JavaScript. Una herramienta como jQuery haría esto muy trivial:

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

Que ahora es una referencia para todos.div elementos inmediatamente anteriores a cualquierdiv.specialClass.

Manifestación:http://jsfiddle.net/jonathansampson/HLfCr/
Fuente:http://dev.w3.org/csswg/selectors4/#subject

@Jonathan Sampson voy a descansar mi caso. Darle un segundo pensamiento $ como selector / operador de enfoque es probablemente más intuitivo. dr jerry
@drjerry Puedes decir lo que piensas al W3C, estoy seguro, pero creo que es más probable que vayan con$ ya que eso es lo que parece ser el estándar en los borradores de trabajo actuales de los selectores de nivel 4. Sampson
@drjerry el$ aún no está escrito en piedra. También hay!, que seguiría el tema. No estoy seguro de lo que será definitivo. Sampson
Genial, ¿hay un RFC para esto? Paulpro
@Jonathan Sampson Gracias por la respuesta. ¿Todavía hay una posibilidad de votar / proponer para la sintaxis de expresiones regulares: `div? = Div.specialClass? (Me encanta regex) dr jerry

Preguntas relacionadas