Visualizzazione dei risultati da 1 a 8 su 8

Discussione: css expression

  1. #1

    css expression

    Buongiorno ragazzi,
    ho bisogno di una mano. Sono un paio di giorni che lavoro a sta cosa senza venirne a capo.
    Il problema è il seguente:

    ho una webapplication che usa alcune regole css assegnate in automatico dal framework e non modoficabili (almeno non da me direttamente).
    Il mio problema è che nell'uso di una di queste regole viene definito il width a 800px che va benissimo per tutte le pagine tranne che per una dove invece dovrebbe essere impostato a 900px.

    Dato che non posso fare una nuova regola ad hoc ho pensato di usare un'espressione, nello specifico ho usato questa:

    Codice PHP:
    widthexpression(document.getElementById("nomeId").innerHTML.indexOf("Testo contenuto nel div")> -900px:800px); 
    ma non funziona nulla. Quando vado a verificare la pagina con firebug non c'è traccia del width, quindi indagando ho scoperto che se scrivo solo un valore numerico senza px (ad es. width:900; ) questa viene ignorata.

    Ho provato a semplificare l'espressione in:

    Codice PHP:
    widthexpression(true 900px:800px); 
    ma non ho ottenuto alcun risultato. Altre prove effettuate sono le seguenti:
    Codice PHP:
    1. widthexpression(true "900px":"800px");
    2. widthexpression(true "900":"800") + px;
    3. widthexpression(true "900":"800") + "px";
    4. widthexpression((true "900":"800") + "px");
    5. widthexpression(true 900:800) + px;
    6. widthexpression(true 900:800) + "px"
    ma ogni volta che carico il css e vado su firebug non vedo traccia del width.
    Ho provato anche inserendo al posto del true la condizione "2>1" ma non cambia nulla.
    Sono diperato, non so più cosa provare

    Qualche suggerimento?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Forse sbaglio io, ma mi riusulta che "expression" sia sintassi proprietaria IE.

    Non puoi inserire la larghezza in un CSS inline di quella particolare pagina?
    codice:
    <body style="width: 900px;">
    . I CSS inline hanno la priorita` su quelli inseriti in un file a parte.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    no, purtroppo no.
    Posso modificare l'html solo attraverso xsl ma per farlo dovrei matchare l'elemento di cui non ho alcun riferimento .
    Posso farlo nel div più sotto ma essendo contenuto dall'altro ho come effetto che sborda...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Nei CSS normalente si fa:
    codice:
    #pippo {    /* pippo puo` essere un qualsiasi elemento di tipo block */
      width: 900px;
    }
         /* ---oppure --- */
    body#pippo {           /* purche` tu possa mettere un identificatore al body */
      width: 900px;
    }
    Nei CSS3, puoi usare anche la sintassi
    codice:
    div[id='pippo'] {   
      width: 900px;       /* e magari puoi aggiungere important, cosi` non viene sovrascritto da eventuali altre regole successive */
    }
    chiaramente al posto di pippo ci devi mettere l'id del blocco a cui ti vuoi riferire.
    E non e` obbligatorio usare id, puoi usare anche altri attributi dell'oggetto (purche` il selettore individui con sicurezza il blocco)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    so come si scrive una regola nei css.... :O

    il mio problema è un altro, forse non sono stato chiaro nell'esporre il caso.

    io ho una regola del tipo:

    codice:
    #MainContainer{
    
    	vertical-align: top;
    	width: 800px;
    	border: 1px solid #aaaaaa;
    	padding: 0px;
    	margin: 0;
    	padding-top: 5px;
    	background: #fefefe;
    	float: left;
    	clear: right;
    }
    che viene assegnata automaticamente dal framework ad alcuni div nelle pagine della webApplication:
    codice:
    <div id="MainContainer">
    Il mio problema è che una pagina specifica necessità di un width di dimensioni superiori (900px) ma non posso modificare direttamente inline perchè questo div viene creato direttamente dal framework. Non posso neanche cambiare nella regola dei css width con 'auto' o con '900px' perchè cambia la formattazione di tutte le pagine.
    Quindi ho pensato di usare all'interno della regola dei css una expression, il mio problema è che questa viene completamente ignorata e non riesco a capire il motivo.

    Speravo qualcuno potesse darmi qualche suggerimento....
    p.s. a me interessa che funzioni solo con IE7, ho usato firebug per fare analisi.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ancora mi sfuggono dei particolari.

    Non e` che in quella pagina (e solo in quella) puoi aggiungere una classe al tuo <div>?

    E sei sicuro sulla sintassi della tua expression?
    Alcune delle sintassi presentate hanno l'aria di non essere corrette.

    Comunque alla peggio puoi sempre ricorrere a JS, che e` poi quello che faresti in modo implicito con la tua expression. O anche JS e` fuori dalla tua possibilita` di gestione?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    che intendi con aggiungere una classe al div?
    Comunque qualunque intervento inline direttamente sul div mi risulta impossibile...

    per quando riguarda la expression ho provato a semplificarla al massimo con:

    codice:
    width: expression(2>1 ? "900px":"800px");
    ma purtroppo non ho alcun effetto.

    Non ho ancora provato direttamente con il js, faccio un tentativo e vi faccio sapere.

  8. #8
    Grazie a tutti, ho risolto con un JS anche se continuo a non capire perchè l'expression nel css non funziona.

    Buona giornata

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.