Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Existe un selector para seleccionar el anterior "hermano" de un elemento?

30 de noviembre de 2011

En CSS existe el selector + que selecciona el siguiente elemento hermano, pero me gustaría saber si puedo elegir el anterior elemento.

Si mi código HTML es el siguiente:

<p> ... </p>
<table ... </table>

Puedo seleccionar el elemento <table> a partir del elemento <p>:

p + table { ... }

Pero lo que yo quiero es seleccionar el elemento <p> a partir del elemento <table>, es decir, el anterior elemento hermano de un elemento dado.

Estás leyendo una traducción autorizada de la pregunta Is there a previous sibling selector? planteada por Jourkey en StackOverflow.

Respuestas

#1

La respuesta es sencilla: no existe ninguna forma de hacer esto con CSS2 o CSS3.

En CSS3 tienes un selector medio relacionado con esto, que es ~ y que permite seleccionar el hermano de un elemento, sin que se obligatorio que el hermano sea el siguiente elemento en la jerarquía de elementos HTML.

En CSS4, que todavía no lo soporta ningún navegador, sí que puedes seleccionar el hermano anterior mediante la notación !, que indica el elemento que se está seleccionando:

/* código CSS4 que no funciona todavía en ningún navegador */
!p + table { ... }

@librosweb

6 octubre 2014, 22:27