• User Attivo •

    [Risolto] Condizione in un css

    Importo un rss con delle immagini. Per mettere un bordino decente a tutte le imamgini ho inserito il testo importato in un div chiamato rssnews e poi nel css dico:
    .rssnews img{
    border: 1px solid #000000;
    }

    Fin qui tutto bene, il problema è che all'interno dell'rss ci sono delle immagini di un pixel, credo messe per tenere traccia delle importazioni. E' possibile inserire un'istruzione condizionale nel css del tipo:
    .rssnews img{
    if(larghezza dell' immagine>1) border: 1px solid;
    }


  • Super User •

    Ciao Scar81 🙂

    No aimè Css non è un linguaggio logico-matematico dato da condizioni come può essere php,javascript,java o chi per essi.

    Non so come è strutturato il tuo rss però se hai la possibilità di inserire una **classe **per queste immagini puoi magari attribuire solo ad essere i tuoi bordi ed evitare che vengano impostati su quelle dovute alla tracciabilità.

    Altrimenti puoi sfruttare javascript:
    Il funzionamento è semplice, basta far calcolare la larghezza e altezza di ogni immagine tramite uno script e per quelle che "superano" ad esempio 100px aggiungergli nel tag "img" una (esempio) class="imgBordo".
    A sua volta il tuo css riconoscerebbe queste immagini con tale classe e inserirebbe per ognuna di essere ciò che vuoi dimenticandosi del resto.

    Spero di essermi spiegato.
    Ciao!


  • User Attivo •

    Vi do un aiutino. Ho trovato come mettere una condizione, però non come riferirmi all'oggetto che ha quella classe, cioè non so cosa mettere al posto di "GRANDEZZA DELL'IMMAGINE";

    .rssnews img{
    border:expression(GRANDEZZA DELL'IMMAGINE > 1? "1px solid #000000" : "0px" );
    }


  • User Attivo •

    Sì karedas, anche il sistema del javascript funziona, però con expression puoi usare condizioni.


  • Super User •

    Si scusami scar81 sono stato un pò troppo precipitoso. Solo che l'expression è veramente poco usato nell'ambito dei css.

    Non vorrei dire eresie ma mi pare fosse "un'invenzione" della microsoft e che appunto funzionasse solo su internet explorer (dalla v4 credo) quindi inutilizzabile in ambito cross-browser.
    Mi informo meglio e ti dico!


  • Super User •

    Si è un'espressione valida solo per un ambiente IE.
    Ma è sconsigliatissimo usarla proprio perchè non è una sintassi regolare - approvata ne idonea!

    Ti cito una valutazione del caso pervenuta da questo blog:
    www.robertnyman.com/2007/11/13/stop-using-poor-performance-css-expressions-use-javascript-instead/


  • User Attivo •

    Vabè in questo caso l'utilizzo me lo concedo, al massimo chi ha un browser non compatibile vedrà un puntino. Però ho notato che Firefox lo supporta.

    A proposito, per chi gli servisse, la soluzione è
    .rssnews img{
    border:expression(this.width > 1? "1px solid #000000" : "0px" );
    }