IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Changer un paramètre selon navigateur


Sujet :

HTML

  1. #1
    zesavantfou
    Invité(e)
    Par défaut Changer un paramètre selon navigateur
    Bonjour,
    J'ai développe un site en php, mais j'ai fait une petite erreur, j'ai pas vérifié la compatibilité IE7, je viens de le faire et je me rends compte qu'une div est un peu décalé. Il me faut donc juste changer un margin-top, selon que se soit IE ou Firefox.

    Sachant que j'utilise une seule est unique feuille css pour tout le site qui est ÉNORME, et que j'ai fait l'erreur de ne pas mettre le header dans un fichier a part pour l'inclure par la suite (donc impossible de faire deux lien vers deux feuilles css selon le navigateur a moin de passer une semaine a mettre ca page par page )

    il y a t-il une solution a mettre directement dans la feuille css par exemple pour changer ce paramètre (du genre <!-- if IE mais qui s'intègre dans la feuille css).

    Merci

  2. #2
    Membre éclairé Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Par défaut
    Salut,

    Tu peux procéder de manière plus simple en utilisant des hacks CSS, comme le !important par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    div {
     
        margin: 30px;
        margin: 50px !important;
     
    }
    IE ne comprend pas le !important donc il l'ignore, sous IE tu auras donc des marges de 30 px et sous FF des marges de 50px.

  3. #3
    Membre expérimenté Avatar de Damouille
    Inscrit en
    Avril 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 268
    Par défaut
    Tu as bien bien un soft qui fait du rechercher / remplacer dans des fichiers. Dreamweaver le fait, utlraedit aussi. Si tu es sous linux tu peux utiliser le sed.

  4. #4
    zesavantfou
    Invité(e)
    Par défaut
    sympa le hack css, j'ai complètement zapé ca.

    Par contre le rechercher/remplacer j'ai peur qu'il me foute un bor*el XD

    Merci a tous les deux

  5. #5
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Bonjour,

    Citation Envoyé par zesavantfou Voir le message
    sympa le hack css, j'ai complètement zapé ca.
    Non ce n'est pas sympa ...
    IE6 interprète bien !important mais perd un peu les pédales et donne la priorité à la dernière déclaration.

    L'exemple donné par tibo est malheureusement incorrecte :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    div {
       margin: 50px !important;
       margin: 30px;
    }

    Dans ce cas IE6 ignore !important ...

    Pour viser IE6, utilise les commentaires conditionnels :

    Citation Envoyé par zesavantfou Voir le message
    il y a t-il une solution a mettre directement dans la feuille css par exemple pour changer ce paramètre (du genre <!-- if IE mais qui s'intègre dans la feuille css).
    i
    Qui s'intègrent dans le HTML entre les balises <head> </head>.

    Citation Envoyé par tibotibo69 Voir le message
    Tu peux procéder de manière plus simple en utilisant des hacks CSS
    Pas de hack STP tibo

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 216
    Par défaut
    Une classe PHP toute faite pour la détection du navigateur :

    http://reinholdweber.com/css/css-hac...-new-approach/

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    Nous avons tellement de cas de ce type a régler les uns les autres pourquoi ne pas se faire une fois pour toute un "outil"

    Voici un exemple moi c' est EasyPhp alors dans le répertoire www j'ais

    1) un outil.php
    2) un repertoire origine
    3) un repertoire destination

    mon outil.php a environ cette forme ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
    <html>
    <body>
    <p align="center">
    <?PHP 
    //============lire le repertoire===============================
    $data = glob('origine/*.php'); 
    $LesFichiers = array();
    $LigneOk = array();
    $i = 0;
    $combien=0;
    $NomDestination="destination/";
    foreach( $data as $filename)
      {
        if (is_file($filename))
         {
           $Lui = $filename;
           $NomDestination=str_replace("origine","destination",$Lui);
           /* === on peut renommer par exemple
           if (strpos($NomDestination, "divers_outil")  !== FALSE )
                       $NomDestination=str_replace("traver","_X_",$NomDestination);
              ================= */
          /* ============a chaque php le lire================= */
          $FichierActu=file($Lui);
          $NbrLigne=count($FichierActu)-1;
          $LaLigne=0;
          /* On lit ligne par ligne */
          for($a=0;$a<=$NbrLigne;$a++)
           {
              $flag=strpos($FichierActu[$a], "DOCTYPE") ;
                if ($flag === FALSE ) {$Rien=0;}
                   else
                      {
                       $FichierActu[$a]=str_replace("target=\"_blanck\"","",$FichierActu[$a]);
                       $combien=$combien+1;
                      }
            $LigneOk[$LaLigne]=$FichierActu[$a];
            $LaLigne=$LaLigne+1;
         }
     
          /* ============écrire le PHP modifié======= */
          $LeFichier=fopen($NomDestination,"w+");
          for($a=0;$a<$LaLigne;$a++)
           {
            $LeTexte=$LigneOk[$a];
            fputs($LeFichier,$LeTexte."");    
           }
          fclose($LeFichier);
          echo ("fichier ".$NomDestination." traité <br />");
          /* ==== Fin de l interrieur d un PHP ==== */
         }
     }
    echo ("Terminé pour ".$combien." fichiers PHP<br />");
    ?>
      <br /></p>
    </body>
    </html>
    Tu vois par exemple que tu peux repérer la ligne ou est DOCTYPE
    puis la remplacer par include "doctype.php"
    ne plus incrementer le compteur jusque la ligne ayant <BODY

    ou tout autre opération !

  8. #8
    Membre éclairé Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    Pas de hack STP tibo
    Pourquoi ?

    C'est quand même très pratique.

  9. #9
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Non ce n'est pas pratique.
    Un hack signifie l'exploitation d'un bug qui peut se reproduire sous d'autres navigateurs lors des futures mises à jour, tu ne peux rien garantir.

  10. #10
    Membre éclairé Avatar de tibotibo69
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 268
    Par défaut
    Pour ce qui est du "!important", on peut dire qu'il est devenu un semi-standard.

    Même IE l'a adopté dans sa version 7 et 8.

Discussions similaires

  1. Changer l'affichage selon navigateur
    Par JCMANSION dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 01/09/2011, 08h40
  2. [Configuration] Détecter des paramètres du navigateur client...
    Par Olish dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 08/10/2005, 18h09
  3. Changer les paramètres régionaux
    Par STEF_1 dans le forum Access
    Réponses: 2
    Dernier message: 27/10/2004, 15h39
  4. [VB.NET] Changer de classe selon condition
    Par daner06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/10/2004, 10h04
  5. API pour changer le proxy du navigateur
    Par SteelBox dans le forum Windows
    Réponses: 2
    Dernier message: 16/02/2004, 23h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo