Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [CSS] - filtrare tutti gli IE inferiori al 6

    Ciao a tutti.
    Ho intenzione di implementare il seguente "scenario":
    - un foglio di stile (cssperloschermo.css) che va "servito" a tutti i browser "moderni" (FF, O9, IE6 e IE7) ma non a IE5, IE5.5 e qualsiasi IE per MAC.
    - Due fogli specifici, contenenti rispettivamente le "correzioni" per IE6 e IE7

    Ho pensato ad una cosa del genere:

    <style type="text/css">
    /* escludo IE MAC \*/
    @import"cssperloschermo.css"screen;
    /**/
    </style>


    <!--[if gte IE 6]>
    <link rel="stylesheet" type="text/CSS" href="cssperloschermo.css" media="screen">
    <![endif]-->

    <!--[if IE 6]>
    <link rel="stylesheet" type="text/CSS" href="cssperloschermoIE6.css" media="screen">
    <![endif]-->


    <!--[if gte IE 7]>
    <link rel="stylesheet" type="text/CSS" href="cssperloschermoIE7.css" media="screen">
    <![endif]-->
    Vi convince? Secondo voi esistono sistemi più veloci?

    Un saluto e grazie a tutti
    "This is the end, Clark... for both of us"

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non mi convince completamente.
    Vedi questa alternativa:
    codice:
    <link type="text/css" rel="stylesheet" media="screen" src="generale.css" />
    
    <!--[if IE]>
      <link type="text/css" rel="stylesheet" media="screen" src="correzioniIE.css" />
    <![endif]-->
    <!--[if lte IE 6]>
      <link type="text/css" rel="stylesheet" media="screen" src="correzioniIE6e5.css" />
    <![endif]-->
    In pratica prima metti il CSS per tutti i browser: sara` ritagliato in particolare sui CSS2 e testato su FF e simili.
    POI correggi per IE, cioe` inserisci solo i selettori che vanno corretti con solo gli attributi che assumono valori diversi.
    La prima correzione per il browser IE7, che e` abbastanza simile ai brwoser standard; la seconda correzione per i browser IE5 e 6.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Forse non mi sono spiegato abbastanza bene: io desidero escludere completamente IE5, IE5.5 e IE MAC.

    Già che ci siamo,vorrei un parere anche su questo, se possibile: fino a che punto conviene inserire tutte le correzioni per IE6 in un foglio separato, piuttosto che utilizzare il vecchio star hack (a meno che non si tratti di roba che invalida il foglio di stile, ovviamente). Qualche parere in proposito?
    "This is the end, Clark... for both of us"

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Opps scusa. Non avevo afferrato.

    Non credo sia possibile escludere TUTTI gli IE.
    Anzitutto i commenti condizionali funzionano da IE5 in poi. Quindi in teoria dovresti poter escludere IE5.0, IE5.5 e IE5.2 (mac), ma sicuramente non IE4.
    Poi ho applicatoi CommCond in modo da escludere IE, ma occorre controllare che la cosa venga recepita correttamente.

    Quindi potresti pensare di fare:
    codice:
    <!--[if gte IE 6]-->
      <link type="text/css" rel="stylesheet" media="screen" src="generale.css" />
    <!--[endif]-->  
    
    <!--[if gte IE 6]>
      <link type="text/css" rel="stylesheet" media="screen" src="correzioniIE.css" />
    <![endif]-->
    <!--[if IE 6]>
      <link type="text/css" rel="stylesheet" media="screen" src="correzioniIE6.css" />
    <![endif]-->
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Anzitutto i commenti condizionali funzionano da IE5 in poi. Quindi in teoria dovresti poter escludere IE5.0, IE5.5 e IE5.2 (mac), ma sicuramente non IE4.
    Benissimo. Siccome i commenti condizionali funzionano solo da IE5 in poi, e non funzionano (da quel che so) su IE MAC, significa che IE4 WIN, IE5.x WIN e IE5.x MAC vedono tutto quello che c'è dentro come un commento, e quindi lo ignorano bellamente (Anche naturalmente FF e O9).
    Ora, non per citarmi, ma riprendo quello che ho scritto all'inizio:

    <style type="text/css">
    /* escludo IE MAC \*/
    @import"cssperloschermo.css"screen;
    /**/
    </style>
    Con questo sistema impedisco a tutti gli IE di vedere il foglio di stile standard.
    A questo punto però devo inserire qualcosa che lo faccia vedere almeno da IE6 in su.Ed è qui che entra il primo commento:
    <!--[if gte IE 6]>
    <link rel="stylesheet" type="text/CSS" href="cssperloschermo.css" media="screen">
    <![endif]-->
    Ti risparmio gli altri due, che ovviamente conterranno solo le correzioni specifiche per i singoli browser IE6 e IE7.

    Mi chiedevo (e mi chiedo tuttora) se esiste un sistema più "elegante" per fare la stessa cosa, visto che non mi soddisfa molto il fatto di dover dichiarare 2 volte lo stesso foglio di stile.
    "This is the end, Clark... for both of us"

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La cosa inizia a farsi complessa...
    Non puoi, tramite commenti condizionali, far vedere qualcosa a FF e sim e non a IE4. A quel punto devi usare i vecchi hack, che pero` non sono a prova di futuro (nel senso che potrebbe uscire domani un nuovo browser che si comporta di fronte all'hack come non vuoi).

    Per quanto riguarda gli IE 5.x , ti consiglio di fare una ricerca nel forum (bottone in alto): se ne e` parlato in passato, e qualcuno aveva le idee chiare (non ricordo le conclusioni).

    Pero` direi che con la cosa che vuoi fare tu, ci starebbe bene un browser-sniffer.
    In fondo, se ho capito bene, i tuoi problemi vengono solo con le varie versioni di IE.
    Quindi potresti sistemare il tuo sniffer in modo da far passare tutti gli altri browser e trattare in modo opportuno gli IE.
    Un browser-sniffer puo` essere realilzzato preferibilmente lato server (ASP o PHP o sim), in alternativa si fa anche lato client tramite JS.
    Per le singole tecniche ti rimando ai rispettivi forum.

    Per concludere, un accenno al fatto "estetico" di includere due volte lo stesso file (per due tipi di browser diversi): non mi pare tanto brutto, vista la specificita` dei tuoi CSS. Mi spiego meglio: dato che devi fare una cosa molto particolare, non mi formalizzerei sul fatto di scrivere due volte la stessa cosa (ma che viene comunque usata una volta sola in ciascun caso: i vari commenti impediscono che lo stesso file venga ricaricato piu` di una volta).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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 © 2025 vBulletin Solutions, Inc. All rights reserved.