Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170

    Condizionale if, non funziona

    Correggetemi se sbaglio per richiamare un determinato File CSS a seconda del browser utilizzato, questa riportata qui sotto è la sintassi giusta? Ovvero chi ha il IE dal 5.5 in su utilizzerà il foglioIE.css mentre tutti gli altri browser utilizzeranno il foglioALTRI.CSS?

    codice:
    <head id="Head1" runat="server">
        <title>velvetband.it</title>
    <!--[if gte IE 5.5]>
    <link rel="stylesheet" type="text/CSS" href="foglioIE.CSS">
    
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="foglioALTRI.css" >
    </head>
    Se la risposta è si, perchè se elimino <link rel="stylesheet" type="text/css" href="foglioALTRI.css" > mi legge il foglio giusto (e FF e Opera leggono solo i testi senza formattazione), mentre se la lascio IE mi legge questo foglio di stile (lo fanno anche Opera e FF).
    Il mio IE è il n.6.

    Sto diventando matta help!

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    (a parte l'id all'head che non serve così come il runat=server :master: )

    i file inclusi nell'header vengono letti dai browser nell'ordine in cui li scrivi, ovvero dall'alto verso il basso quindi il tuo codice

    codice:
    <head>
        <title>velvetband.it</title>
         <!--[if gte IE 5.5]>
           <link rel="stylesheet" type="text/CSS" href="foglioIE.CSS">
         <![endif]-->
    
         <link rel="stylesheet" type="text/css" href="foglioALTRI.css" >
    </head>
    si comporterà così: su Explorer 5.5 e superiori verranno letti entrambi i fogli di stile, ovvero il primo e anche il secondo (ed eventuali regole del secondo possono quindi ridefinire quelle del primo). Su tutti gli altri browser invece solo il secondo.

    Di norma l'ordine va invertito, ovvero prima carichi il css che va bene per tutti e poi con i commenti condizionali aggiungi i css specifici
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Dunque, per prima cosa inizia a seguire questo schema per i link condizionali:
    • : verifica se il browser è Internet Explorer, indipendentemente dalla versione.
    • : verifica se il browser è Internet Explorer solo versione 5;
    • : verifica se il browser è Internet Explorer, versione superiore alla 5;
    • : verifica se il browser è Internet Explorer versione 5 o superiore;
    • : verifica se il browser è Internet Explorer versione inferiore alla 6;
    • : verifica se il browser è Internet Explorer versione 6 o inferiore;
    • : verifica se il browser è Internet Explorer versione diversa dalla 5.5.

    secondo quanto hai scritto te, con la gte dovrebbe prendere quella formattazione dalla versione 5.5 in poi, quindi anche la 6 e superiore.
    Quindi eliminando il link al foglio Altri.css IE6 prende comunque la formattazione di IE.css mentre gli altri ovviamente no.
    Ma ovviamente anche IE6 legge Altri.css, la domanda che dovevi porti era: "perché IE5.5 in poi non dovrebbe leggere il foglio di stile Altri.css?"
    fcladera ha ragione

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    il runat server c'è perchè uso asp.net 2.0

    In effetti, ho provato anche ad invertire il codice
    codice:
    <link rel="stylesheet" type="text/css" href="foglioALTRI.css" >
    <!--[if gte IE 5.5]>
           <link rel="stylesheet" type="text/CSS" href="foglioIE.CSS">
         <![endif]-->
    ma non c'è niente da fare, se cambio foglioALTRI.css IE lo segue

    Al momento ho lasciato questa impostazione ma cambiato alcune cose dentro al foglio per IE in base a quell che c'è in Altri... e così funziona.. mah

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Mary Angy
    In effetti, ho provato anche ad invertire il codice ... ma non c'è niente da fare, se cambio foglioALTRI.css IE lo segue
    è normale che IE esegua le istruzioni di foglioALTRI.css. La logica non è un if - then - else, ma solo un if - then

    ti faccio un esempio
    codice:
    <!--[if gte IE 5.5]>
      <style>
      body {
         background: #ccc;
         margin : 10px;
      }
      </style>
    <![endif]-->
    
      <style>
      body {
         margin : 0;
      }
      </style>
    Su explorer 5.5 e superiori lo sfondo sarà grigio e il margine a 0
    su tutti gli altri lo sfondo sarà quello di default e il margine sempre a 0

    se rovesci le istruzioni
    codice:
      <style>
      body {
         margin : 0;
      }
      </style>
    
    <!--[if gte IE 5.5]>
      <style>
      body {
         background: #ccc;
         margin : 10px;
      }
      </style>
    <![endif]-->
    Su explorer 5.5 e superiori lo sfondo sarà ancora grigio ma stavolta il margine sarà di 10px
    Sui browser restanti lo sfondo sarà quello di default e il margine a 0

    Spero sia più chiaro così
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    si si chiarissimo, il concetto l'ho compreso ma rimane sempre il fatto che non mi funziona bene, proverò ancora che ti posso dire.. grazie comunque per la disponibilità

  7. #7
    Una precisazione che credo sia fondamentale:

    Note Internet Explorer 5, which shipped with Microsoft Windows 2000, has a version vector equal to 5.0002. Therefore, the conditional expression [if IE lte 5.0000] returns false when evaluated in the release build of Internet Explorer 5. For the release build of Internet Explorer 5.5, the version vector is 5.5000.
    usa il vettore di versione preciso. ciao

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.