• 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" );
    }