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
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
#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.
#7056 sin jquery.... meh
Tendrás que hacer algo como getElementById("pepe").parentNode, o alguna mierda de esas.
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.
#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
#7056 Para hacerlo sin JQuery usa querySelector
https://developer.mozilla.org/es/docs/Web/API/Document/querySelector
#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...
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.
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:
Normal que haya salido directamente la versión 4. La versión 2 fue tal mierda que han decidido incluso saltarse la 3.
mira que utilizo angular 1 para algunos proyectos, pero es que no sabia ni que estaban desarrollando el 4.
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:
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
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.