- Home
- Categorie
- Coding e Sistemistica
- HTML e CSS
- [Risolto] Condizione in un css
-
[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;
}
-
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!
-
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" );
}
-
Sì karedas, anche il sistema del javascript funziona, però con expression puoi usare condizioni.
-
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!
-
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/
-
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" );
}