Feda /dev/

s4suk3

una duda tonta...
cómo puedo seleccionar con css un div que contenga X clase?

<div id="hola">
<div class="container">
<div class="pepe>

#hola .pepe{bg:red;} //modifica el bg de pepe
lo que quiero es que si tiene a pepe de hijo se modifique #hola

4 respuestas
vincen

#7051

#hola .container .pepe {
  color: blue;
}

Esto? No se si te he entendido bien.

https://jsfiddle.net/qeqyj5sf/

1 respuesta
s4suk3

#7052 necesito ponerle un BG a #hola sabiendo que tiene el elemento .pepe

1 respuesta
m0rG

#7051

Con CSS únicamente no se puede. A eso le llaman "parent selector" y por lo que sé, ha sido propuesto varias veces pero nunca implementado. Échale un vistazo a:

http://stackoverflow.com/questions/21252551/apply-style-to-parent-if-it-has-child-with-css
http://stackoverflow.com/questions/2000582/css-selector-for-foo-that-contains-bar
http://stackoverflow.com/questions/2326499/apply-css-styles-to-an-element-depending-on-its-child-elements

1 1 respuesta
eXtreM3

#7051 no puedes. Con js lo haces en una línea.

1 respuesta
s4suk3

#7054 gracias has confirmado mis sospechas
#7055 cómo puedo hacerlo sin jquery?

2 respuestas
vincen

#7053 No eso no se puede, pero con js o jquery le puedes añadir la clase que quieras si cumple lo que tu dices..

$('div:has(div.CLASS)').addClass('CLASE2');

O incluso por backend, todo depende como tengas el codigo.

eXtreM3

#7056 sin jquery.... meh

Tendrás que hacer algo como getElementById("pepe").parentNode, o alguna mierda de esas.

N

Como ya te han dicho los selectores en CSS solo hacen nesting hacia dentro y hacia los lados.

O tiras de vanilla o tiras de JQuery, no hay más. No se si trabajas sobre algún otro framework JS, pero todos los frameworks modernos tienen bindeo de clases condicionales in line.

1 respuesta
s4suk3

#7059 el problema es que es un componente de react, tener que modificar todos los padres para cambiar una clase me parece un lío, y meter jquery por esa tontería también

Traber

#7056 Para hacerlo sin JQuery usa querySelector

https://developer.mozilla.org/es/docs/Web/API/Document/querySelector

MisKo

Angular 4 is out!
http://angularjs.blogspot.com.es/2017/03/angular-400-now-available.html

1
babri

Angular 4 ya?? pero no salió el 2 hace poco? XDDD

1 1 respuesta
Scottie

#7063 Te sorprende? Si cada día salen 3 frameworks nuevos de JS, mucho ha tardado este en aparecer para no quedarse obsoleto... Es más, ha tardado tanto que han tenido que llamarlo directamente 4, en vez de 3... :psyduck:

1 1 respuesta
babri

#7064 como la versión 2 fue como una revolución y tal pensé que las siguiente lo serían xD

Saphyel

A mi la version 3 me parecio la ostia, fueron los mejores 2 dias para JS, esperando me hayo a la version 5 que saldra este finde.

4
Troyer

#7051

Actualmente existe el pseudo-selector :has pero no ha sido implementado en ningún navegador así que habrá que esperar.

The :has() CSS pseudo-class represents an element if any of the selectors, relative to the:scope of the given element, passed as parameters, matches at least one element. The :has() pseudo-class takes a selector list as an argument.

Info: https://drafts.csswg.org/selectors-4/#relational || https://developer.mozilla.org/en-US/docs/Web/CSS/:has

Aquí se puede comprobar si se ha implementado:

http://caniuse.com/#search=%3Ahas

eXtreM3

Normal que haya salido directamente la versión 4. La versión 2 fue tal mierda que han decidido incluso saltarse la 3.

Fyn4r

Pero xd
Y a alguno aún le sorprenderá que nos tomemos javascript como una broma de mal gusto

gohrum

mira que utilizo angular 1 para algunos proyectos, pero es que no sabia ni que estaban desarrollando el 4.

1 respuesta
babri

#7070 la 2 supongo que si lo sabrías xD

1 respuesta
Kaiserlau

Pues yo he empezado a chatarrear con Vue :/ y de lo malo malo es lo menos malo a primera vista q hay en js.

Opiniones:

1 respuesta
gohrum

#7071 si hombre xD
#7072 yo estaba pensando en portar mis proyectos de angular a vue, pero tengo dudas sobre si sería un movimiento inteligente.

HeXaN

Ya de por sí usar JS no es inteligente.

4
MisKo

Que exagerados sois xDD

Básicamente, a partir de ahora han comentado que no hay 'Angular 2, Angular 3, etc..' simplemente Angular ( a la version 1 de angular se la conocerá como AngularJS ), y el 4 es simplemente la versión por la que van actualmente.

El pasar directamente a la versión 4 es porque había un componente interno (angular/router), que estaba en la versión 3, mientras que el resto de componentes estaban en la versión 2. Pasandolo a la 4, ya ponen todas las versiones iguales y continúan a partir de ahí.

http://angularjs.blogspot.com.es/2016/12/ok-let-me-explain-its-going-to-be.html

A partir de ahora usarán el esquema SEMVER

1
Troyer

Hacen overengined hasta las patch notes.

1 respuesta
babri

meeeh, todos a hacer big data hombre ya

gohrum

#7076 Remembering Overenginyeritis xDD

1
eXtreM3

Pero es que desde la versión 1 (AngularJS) a la versión 2 (Angular 2.x) hay un salto en el engine bastante gordo. Son FW practicamente diferentes.

Vamos, estuve cacharreando en su día con AngularJS para hacer una SPA y el aprendizaje fue bastante sencillo. Después intenté lo mismo en Angular2 y no hubo cojones con el routing y las directivas, tampoco le dediqué mucho tiempo la verdad, no tenía ningún interés en aprender el 2.

babri

yo odio cuando usan el 2.X para X dar la versión final como en este caso que en verdad en Angular 2.4 pero se llama Angular 4 D:

1 respuesta
Tema cerrado