Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    diversi fogli di stile a seconda del browser

    sto facendo il restyling del sito e ho aggiunto diverse cose con css3 e javascript, però ho dei problemi di visualizzazione con IE e i vecchi browser in quanto non supportano css3... se ci provo la struttura del sito si vede bene lo stesso ma certe cose come i bordi e lo sfondo non sono molto belli a vedersi... vorrei fare un'altro foglio di stile con le cose sistemate per questi browser, che si carica se il sito è visualizzato con IE o questi vecchi browser... si può? se si come?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per IE (ma solo per quelli) esistono i commenti condizionali (vedi tra i "link utili")
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Se conosci almeno un po' di php puoi creare un css dinamico.
    Esempio crei un file chiamato css.php che contiene:

    Codice PHP:
    $browser=$_SERVER['HTTP_USER_AGENT'];
    header('Content-type: text/css');
    if(
    $browser=="quale1"){
    echo 
    file_get_contents("file_css_per_browser1.css");
    }else if(
    $browser=="quale2"){
    echo 
    file_get_contents("file_css_per_browser2.css");
    }else{
    echo 
    file_get_contents("file_css_per_default_browser.css");
    }; 
    E nella tua pagina lo carichi come fosse un normale css.

    Cambia i vari "browser1", "browser2" con i nomi dei browser che vuoi intercettare.
    Cambia i vari "file_css_per..." con i nomi dei css da inviare per i diversi browser.

  4. #4
    questa mi sembra la soluzione migliore... praticamente se ho capito bene la procedura è:
    creo questo file stili.php e faccio il link nell'head come se lo facessi per un foglio di stile normale solo che invece di farlo a "stili.css" lo faccio a "stili.php", poi creo gli altri fogli normali in css ed il gioco è fatto...correggimi se sbaglio...

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    C'e' anche una tecnica differente che si chiama "conditional css" pero' sinceramente mi solleva alcuni dubbi....

    cmq questa tecnica funziona lato client quindi non vai a importunare il server per caricare i fogli di stile.

    nell'header della pagina puoi fare decidere al browser che fogli caricare cosi' :

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

    etc per gli altri browsers.

    Pero' mi e' capitato di impazzire per farli funzionare sotto safari,chrome e opera.

    Io a questo punto uso un bel javascript che fa sostanzialmente la stessa cosa.

    Codice PHP:

    var browser=navigator.appName;
    var 
    b_version=navigator.appVersion;
    var 
    version=parseFloat(b_version);

    // SAFARI/CHROME
    var navigator.appVersion
    if( v.indexOf("/")>)
    {
        var 
    safcrom v.split("/") ;
        var 
    t1 "" ;
        var 
    t2 "" ;
        
        if( 
    safcrom[2] )
        {
            
    t1 safcromsafcrom.length-] ;
            
    t1 t1.split(" ");
            
    t1 t1[1] ;
        }
        
    browser t1;
    }

    if( 
    browser =="Opera" )
            { 
    document.write('<link rel="stylesheet" type="text/css" href="../opera.css">') ; }
            if( 
    browser =="Safari" )
            { 
    document.write('<link rel="stylesheet" type="text/css" href="../safari_chrome.css">'); } 
    Pongo a questo ponto una domanda ...

    Perche' i conditional css non funzionano nel caso devo decidre di caricare per safari,chrome oppure opera? Ma funzionano invece correttamente per firefox ed ie?
    Cio' dipende dai browser ?
    Se qualcuno piuo risp anche alla mia domanda lo rigrazio. Senno apriro' un thread a parte.

    Ciauz.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da Virus_101
    C'e' anche una tecnica differente che si chiama "conditional css" pero' sinceramente mi solleva alcuni dubbi....
    ...
    Pongo a questo ponto una domanda ...

    Perche' i conditional css non funzionano nel caso devo decidre di caricare per safari,chrome oppure opera? Ma funzionano invece correttamente per firefox ed ie?
    Cio' dipende dai browser ?
    Se qualcuno piuo risp anche alla mia domanda lo rigrazio. Senno apriro' un thread a parte.

    Ciauz.
    Quelli che chiami "conditional css" io li ho chiamati commenti condizionali (conditional comments) e non sono una tecnica CSS, ma una tecnica HTML.

    Sono elementi che in tutti gli altri browser sono visti come commenti HTML, ma che in IE vengono interpretati (a volte secondo determinate condizioni). In IE sono necessari per far fronte alle numerose variazioni rispetto agli standard presenti nelle versioni vecchie dei brwoser (in IE8 sono quasi inutili se si usa una DTD di tipo Strict).

    Quindi per come sono fatti non possono funzionare in browser diversi da IE (e detto francamente non ce n'e` bisogno, dato che gli altri browser seguono lo standard molto bene).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    quindi in sintesi cosa è meglio usare per far si che il sito sia visibile al meglio in tutti i browser? commenti condizionali, foglio in php o codice javascript?
    io tutto considerato sarei per i commenti condizionali perchè secondo me appesantiscono meno il tutto e alla fine non vanno a importunare il server...però mi sorge un dubbio... e per le vecchie versioni di firefox, opera e safari?

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Si immaginavo una cosa del genere ma avevo visto in internet che si potevano definire quei costruttti condizionali anche per browsers differenti di da Ie.

    E spesso quei costrutti consizionali sono presenti su qlke tutorial nel folgio css....

    Non li ho mai provati e oggi per necessita' lavorative li stavo testando, alla fine il buon vecchio js e' sempre la'

    Grazie delle info.

  9. #9
    Scarterei a priori l'html condizionale per i motivi illustrati da Mich_.

    Di solito i css condizionali prevedono "trucchetti" per indurre i diversi browser a diversi comportamenti.
    Ma per come la vedo io si tratta di cose che possono cambiare da versione a versione dei browser e che non sono mai documentate in maniera definitiva.

    Viceversa un css dinamico può fare esattamente quello che vuoi.
    Giorda86 ha capito bene: la procedura è proprio quella.

  10. #10
    ok grazie... un'ultima cosa, come si identificano i vari browser in html? scusate ma non ho mai fatto una cosa del genere quindi non lo so... per intenderci... che devo mettere al posto di "quale1" o "quale2" nell'esempio che mi hai fatto sopra se vorrei mettere nel 1 IE e nel 2 safari o chrome?

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