Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2015
    residenza
    Putignano
    Messaggi
    19

    Superare un css inline con unico selettore disponibile title

    Ciao,
    mi chiamo Ivan e sono un autodidatta in queste argomentazioni.
    vi pongo una questione che non riesco a risolvere. magari per voi è una cavolata!
    mi ritrovo in una situazione di questo genere:
    codice:
    <body>
    <div title="cor" style="color:red!important">Provolone</div>
    
    
    </body>
    in pratica nella situazione reale è un iframe creato automaticamente con un id nuovo che cambia ad ogni chiamata e il title che posso usare come selettore. Non è possibile mettere le mani sul codice poichè è creato automaticamente da uno script a cui non posso accedere.
    il problema è che: il sistema assegna css in un foglio di style inline, così come nell'esempio.
    io vorrei modificare uno di questi css.
    per l'effetto cascata non riesco mai a superare il css inline, anche con questa sintassi di chiamata da un file esterno:
    codice:
    <script type="text/javascript">
    
    
        function loadCSS(filename){ 
    
    
           var file = document.createElement("link");
           file.setAttribute("rel", "stylesheet");
           file.setAttribute("type", "text/css");
           file.setAttribute("href", filename);
           document.head.appendChild(file);
    
    
        }
    
    
    
    
       //just call a function to load your CSS
       //this path should be relative your HTML location
       loadCSS("test.css");
    
    
    </script>
    inserendolo successivamente al div



    con il testo seguente nel foglio test.css:
    codice:
    div[title~=cor] {
     color:yellow!important;
    }
    spero sia chiaro e già ringrazio
    Ultima modifica di KillerWorm; 27-02-2020 a 17:33 Motivo: tag code

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Ciao Ivan, nella situazione specifica direi che non è una cosa così semplice.

    Ci sono due principali punti da considerare:

    - il primo punto è l'effetto cascata da te menzionato o, meglio, il valore della "specificità" delle regole in gioco, il quale determina la priorità di applicazione. Il CSS in linea ha già un valore di priorità maggiore di quello definito nel CSS incluso; questo valore potrebbe essere sovrascritto attraverso l'uso della clausola !important applicandola alle proprietà del CSS incluso, ma in questo specifico caso tale clausola è applicata già an CSS in linea per cui non vedo molte soluzioni possibili via CSS.

    - il secondo punto è il fatto che tu stai cercando di modificare il contenuto di un iframe. La tua descrizione del contesto non è molto chiara ma se il contenuto di quell'iframe non risiede nello stesso dominio, di norma non è permesso modificarlo, per questioni di sicurezza.

    Chiarisci meglio quest'ultimo punto, se la risorsa caricata nell'iframe risiede nello stesso dominio della pagina principale, si potrebbe anche pensare a qualche soluzione via JavaScript, diversamente la vedo abbastanza nera.


    [Mod]
    Quando posti del codice nel forum ti invito ad usare gli appositi tag di formattazione (vedi regolamento di sezione). Grazie.
    Per il momento ho corretto io.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2015
    residenza
    Putignano
    Messaggi
    19
    Ciao caro,
    innanzitutto grazie, anche della conversione dei testi.
    il frame viene creato nel mio html da uno script js.
    è una chat e devo evitare che venga mostrata in una pagina in particolare.
    invece viene inserita ovunque.
    so che non potrei incidere in nessuna maniera nell'html del frame, ma io voglio che il frame stesso non venga visto.
    non so se mi sono spiegato..

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    non so se mi sono spiegato..
    humm... hai aggiunto delle indicazioni in contrasto con ciò che hai indicato inizialmente.

    Se devi "nascondere" l'intero frame/iframe, puoi tranquillamente applicargli display:none anche con una regola esterna. A parte l'id random, potresti comunque usare un selettore "costruito ad hoc" per poter identificare quel determinato elemento in quella specifica pagina.

    Puoi postare il link della pagina in questione?... giusto per capire meglio se e come si può intervenire.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2015
    residenza
    Putignano
    Messaggi
    19
    non vedo il contrasto.
    il frame è creato automaticamente da uno script che viene inserito in tutte le pagine dal programma che uso.
    il frame id è creato solo quando si fa la richiesta.
    non è nella pagina quando modifico il codice.
    nio store . it è il sito.
    la chat è quella tawk.to

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    In linea di massima per "nascondere" un qualsiasi elemento, che sia già presente o che venga creato successivamente, ti basta applicargli
    in qualche modo quel display:none, come già indicato. Eventualmente bisogna capire come puoi selezionare quell'elemento attraverso CSS. Se poi c'è qualche impostazione che impedisce la sovrascrittura di tale regola sull'elemento specifico (tipo la clausola !important) puoi tentare di nascondere l'elemento padre.

    Il tuo primo esempio mi sembra fuorviante perché non rappresenta la situazione reale, per cui non si possono fare ragionamenti se non andando per ipotesi. Se non si può vedere la pagina in questione, sarebbe più utile e semplice se tu postassi l'esatto codice (magari rimuovendo gli opportuni contenuti) in modo da avere chiara la struttura HTML e il CSS definito per tali elementi, diversamente diventa difficile poterti aiutare.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.