• User Attivo

    Esiste un comando per nascondere/mostrare regole CSS solo a IE?

    Ciao a tutti,
    mi chiedevo se esistesse una stringa per nascondere o mostrare determinate regole del CSS ad una determinata versione di un browser.

    Per esempio a me servirebbe un qualcosa che mostrasse una determinata regola solo ad Internet Explorer 6..
    ..qualcuno può aiutarmi?

    Ciao e grazie,
    Rammo.


  • User Attivo

    Ciao Rammo,
    si, esiste. Ti consiglio di guardare le nostre FAQ alla voce **Come posso collegare un foglio di stile valido solo per IE?

    **Ti segnalo anche questo post che contiene un esempio.
    Buon lavoro,
    Meryk


  • User Attivo

    Ciao Meryk,
    grazie per la risposta.

    Ero già a conoscenza di come includere un altro CSS valido solamente per IE; mi chiedevo invece se ci fosse un modo per "far vedere" solamente a IE una determinata regola dentro allo stesso CSS.

    Scusami, forse mi sono espresso male nel precedente post... in poche parole vorrei includere un solo CSS e dentro a questo inserire una regola che però venga interpretata solamente da IE. Pensi sia possibile una cosa del genere?

    Ciao e grazie,
    Rammo.


  • User Attivo

    Ciao Ranmo,
    ne esistono una serie. Su PositionIsEverything puoi farti una cultura cercando tra gli hacks.

    Uno fra tutti è l'asterisco:

    [html]regola {
    width: 100px; /* tutti */
    width: 90px; / IE */
    }[/html]

    È importante l'ordine delle dichiarazioni. Ora non ho la documentazione sotto mano ma mi sembra che sia valido solo per IE6 (non sono sicuro della versione 7).

    :ciauz:


  • User Attivo

    Ora che mi viene in mente, mi faccio un po di autopromozione a fin di bene. C'è anche questo:
    http://www.laburno.net/2007/08/16/ie-end-of-line-comment-bug/

    Ricordati però che usare questi trucchi, spesso e volentieri non ti fa passare la validazione del w3c (nel caso ci tenessi)


  • User Attivo

    Ottimo, grazie a tutti.
    Avevo già trovato qualcosa del genere in rete, ma non avevano dato i risultati sperati. Ora mi leggo per bene le pagine segnalate 😉

    L'uso di questi hacks può causare altri problemi oltre alla "non" validazione del CSS?

    Aggiornamento: Il sito segnalato (PositionIsEverything) non risulta essere operativo 😞


  • User Attivo

    @Rammo said:

    Ottimo, grazie a tutti.
    Avevo già trovato qualcosa del genere in rete, ma non avevano dato i risultati sperati. Ora mi leggo per bene le pagine segnalate 😉

    L'uso di questi hacks può causare altri problemi oltre alla "non" validazione del CSS?

    Aggiornamento: Il sito segnalato (PositionIsEverything) non risulta essere operativo 😞

    Ho cannato il dominio, è .net:
    http://www.positioniseverything.net/

    I problemi che possono nascere dall'uso di questi hack riguardano solo la compatibilità futura.
    Se ad esempio, a partire da IExplorer8, gli hack venissero trattati come fanno gli altri browser ci ritroveremmo con pagine "sporcate" da codice obsoleto e inutile.

    In genere è sempre consigliato sfruttare la cascata dei fogli di stile con i commenti condizionali.

    :ciauz:


  • User Attivo

    @Laburno said:

    Se ad esempio, a partire da IExplorer8, gli hack venissero trattati come fanno gli altri browser ci ritroveremmo con pagine "sporcate" da codice obsoleto e inutile.
    E' verosimile tanto quanto:
    Babbonatale, la fatina dei denti, il "liscioeffettoseta" per i miei capelli 🙂


  • User

    Salve a tutti 🙂
    vi propongo un approccio leggermente diverso: invece di fare discriminazioni lato client, perche' non farle lato server?
    Semplicemente facendo puntare il meta link ad uno script attivo lato server che si occupera' della generazione del codice css ad-hoc.
    La richiesta HTTP fatta dal client porta negli headers l'identificativo del client chiamante, a questo punto si puo' discriminare su quello ed includere o escludere parti di css

    Altra soluzione (stavolta lato client) e' l'utilizzo di ajax/javascript.
    Si definiscono entita' simili che poi verranno applicate topicamente all'oggetto/browser target.

    ciaps
    lucio


  • User

    @Laburno said:

    Se ad esempio, a partire da IExplorer8, gli hack venissero trattati come fanno gli altri browser ci ritroveremmo con pagine "sporcate" da codice obsoleto e inutile.

    1. gia' IE7 toglie un bel po' di porcherie tipiche di IE6
    2. considerando quanto c'hanno messo a fare il 7 direi che l'8 lo vedranno i nostri nipoti (forse). Dal momento che e' consigliabile fare un buon refactoring del codice ogni annetto (anche meno o piu', dipende dal sito in oggetto) direi che il problema non sussite 🙂
      da qua ad IE8 uno il css l'ha riscritto un centinaio di volte 🙂

    Considerando le tempistiche prob con IE8 arriveranno i CSS12 😉


  • User Attivo

    @unlucio said:

    Salve a tutti 🙂
    vi propongo un approccio leggermente diverso: invece di fare discriminazioni lato client, perche' non farle lato server?
    Semplicemente facendo puntare il meta link ad uno script attivo lato server che si occupera' della generazione del codice css ad-hoc.
    La richiesta HTTP fatta dal client porta negli headers l'identificativo del client chiamante, a questo punto si puo' discriminare su quello ed includere o escludere parti di css

    Altra soluzione (stavolta lato client) e' l'utilizzo di ajax/javascript.
    Si definiscono entita' simili che poi verranno applicate topicamente all'oggetto/browser target.

    ciaps
    lucio

    Ciao Lucio,
    Esistono dei metodi per la generazione dinamica lato server dei css.
    Sono tecniche abbastanza semplici che in genere non comportano grandi artifici per essere messe in atto. Di solito se ne è parlato per introdurre nei fogli di stile il concetto di variabile.

    L'idea che proponi tu, cioè in pratica di far debuggare in automatico il css, non è affatto una brutta pensata. Un semplice match per identificare il browser e via. Il problema è nella natura dei bug, perché un conto è debuggarli a mano dopo averli trovati uno a uno, potendo scegliere tra le soluzioni che meglio si adattano al tuo caso. Un altro è scrivere uno script universale e che sappia scegliere la soluzione ottimale. Forse, facendoci due conti, rischiamo di ottenere risultati migliori andando a mano.

    L'alternativa lato client la trovo invece inapplicabile. In questo modo si discrimina i navigatori che hanno js disabilitato o utilizzano protezioni antivirus avanzate. Sono pochi, ma esistono.

    :ciauz:


  • User

    mmmmmmm mi sa che hai frainteso 🙂
    nulla in me pensava al suggerire un sistema che si preoccupasse in automatico di risolvere gli scoordini dei vari browser, ma semplicemente decidere quale linea intrudurre e quale no 🙂
    del tipo:

    a) scrivo il sito
    b) provo il sito
    c) trovo scoordini
    d) modifico il css per questo e quel browser
    e) unifico i css in uno script che eroga le parti opportune secondo lo user agent (ma gli dico io che erogare eh ;D)

    Lo script che fa quello che dici e' piu' facile di quello che sembra da fare 🙂

    Si', so benissimo che ci sono i manici che chiudono tutto, ma a quelli si fa in modo di erogare un sito minimalista (io soltiamente uso quello che erogo per i portatori di handicap) e si gustino la cosa in versione vintage fino a che non decidono di rimettersi al passo con i tempi 😃
    Finalmente grazie ad ajax ci stiamo liberando di flash (e delle varie limitazioni del web), poi chi collabora ne gode i frutti, chi non collabora... bhe... fatti suoi 🙂


  • User Attivo

    Ah ok 🙂 mi capita spesso di fraintendere.

    Beh allora non vedo allora l'utilità visto che gli "scordinii" ce li ha praticamente solo Internet Explorer, e bastano i commenti condizionali per addomesticarlo in modo indolore.


  • User

    perche' "sporcare il codice" non e' una soluzione elegate per far andare le cose , non trovi? 🙂

    gia' il mondo e' pieno di capre che fanno cose fuori standard (magari pure in html 4.* e con strutture tabellari... a dir poco vintage oltre che barbara come cosa...), se poi si inizia anche ad erogare del codice sporco e/o strutturato male o in modo poco elegante finiremo come l'impero romano: distrutti dalla mollezza dei notri costumi 🙂

    hihihihihihihi 😄

    aparte gli scherzi, sono un po' rigido su alcuni aspetti 🙂