Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    10

    Selettore per elemento padre quando un elemento figlio ha certe proprietà

    Premetto che me ne intendo poco, magari la soluzione è banale... ma non la trovo.

    Facendo uso delle pseudo-classi e combinando i selettori, è possibile creare un selettore che identifichi un elemento _padre_ se uno dei suoi figli, ad esempio l'ultimo (pseudo-classe :last-child), ha un attributo con un certo valore (che ad esempio viene cambiato dinamicamente con del codice javascript)?

    Ad esempio creare un selettore per un div per cambiarne il colore del bordo se l'ultimo dei div in esso contenuti ha un certo attributo uguale a "true".

    Ho fatto qualche prova ma non riesco a fare funzionare niente, sembra che tutto funzioni solo in modo "discendente" cioè è facile riferirsi agli elementi figlio partendo da un elemento "contenitore", ma non riesco a fare il contrario, è possibile?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Risposta: NO
    O, meglio, non che io sappia.

    La tua analisi e` perfetta, ma non mi risulta esistere un selettore "padre" (o in qualche modo ancestore), mentre ci sono vari modi di definire i discendenti ed anche qualche modo di definire i "fratelli".

    La cosa si puo` fare mediante JS, sia in maniera "statica" (una volta sola al caricamento della pagina) che dinamica (in seguito ad un determinato evento).
    Oppure, meglio, la puoi ottenere tramite linguaggio lato server (PHP, ASP, ...) dando una particolare classe al padre se all'interno c'e` un determinato figlio.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Beh ma se la proprietà dell'elemento figlio cambia dinamicamente, e devi cambiare dinamicamente anche quella del padre (se ho capito bene), devi per forza usare javascript, di sicuro non un lato server. Ma se ci sei riuscito con il figlio, non vedo che problemi avresti per applicare JS anche al padre...
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    10
    Il problema è che gli script non li ho fatti io e quindi dovrò mettere le mani dove avrei evitato volentieri (anche per evitare discussioni con altre persone ;-)).
    La modifica della sola parte css sarebbe stata una sciocchezza usando la pseudo-classe :last-child.
    Con JS andrà modificato il codice perché gli elementi figli sono aggiunti dinamicamente ed in numero variabile; l'attributo che cerco, se c'è, è posseduto solo da uno di questi e non è detto che sia l'ultimo (condizione per la quale mi serviva di cambiare le proprietà dell'elemento genitore).
    Niente di trascendentale ma sicuramente una seccatura in più.

    Grazie per le risposte anche a Mich_.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da hama
    Il problema è che gli script non li ho fatti io e quindi dovrò mettere le mani dove avrei evitato volentieri (anche per evitare discussioni con altre persone ;-)).
    Capisco. Allora klascia fermo il lato server e fallo tramite JS.

    La modifica della sola parte css sarebbe stata una sciocchezza usando la pseudo-classe :last-child.
    Con JS andrà modificato il codice perché gli elementi figli sono aggiunti dinamicamente ed in numero variabile;
    Il JS e` in grado di andare a "curiosare" cosa c'e` dentro un determinato oggetto (riesce a trovare tutti gli elementi figli di un elemento): qualcosa del tipo:
    var oggettinterni = document.getElementById['PADRE'].getElementsByTagName['div'];
    Poi analizzi gli elementi del vettore oggettinterni e vedi se possiedono l'attributo che cerchi (se almeno uno possiede l'attributo) o vedi se l'ultimo possiede tale attributo.

    Se ti interessa proseguire in questa direzione, sposto la discussione in JS, dove ti sanno dare la sintassi corretta (io non la uso, e non la ricordo mai)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Allora perchè la discussione è ancora in sezione CSS?
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    10
    Non è necessario spostare la discussione. Ho dato un'occhiata al codice ed è pienamente fattibile anche da uno scarso come me. :-)
    Rimane la domanda di base se è possibile individuare con selettori e pseudo-classi elementi in senso "ascendente" nella gerarchia, ma la risposta sembra oramai chiara.
    Grazie ancora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.