• [^] # Re: Idées

    Posté par . En réponse au journal Rien a faire... arf.... Évalué à 3.

    J'ai triché... J'utilise du php et je génère une page spéciale si c'est ie qui contient du code visible uniquement par ie...

    En gros la partie intéressante ça donne ça :

    <style type="text/css">

    h2 { text-align: center; }

    .page { padding-top: 100px; padding-left: 110px; overflow: hidden; }
    .titre { position: fixed; width: 98%; text-align: center; background-color: #ffffff; }

    .menu { padding-top: 110px; padding-left: 0px; position: fixed; width: 96px; }
    .sub-menu { border: 1px black solid; text-align: center; }

    .liens { font-size: 12pt; text-align: center; background-color: #ffc16b; color: #000000; border: 1px white solid; }

    .bas { position: fixed; bottom: -20px; }
    .sub-bas { background-color: #ffc16b; }

    </style>

    <?php
    if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo "\n <style type=\"text/css\">\n .page { padding-top: 100px; padding-left: 110px; overflow: hidden; _padding-top:0px; }\n .menu { padding-top: 110px; padding-left: 0px; position: fixed; width: 96px; _padding-top: 20px; _position: absolute; }\n .bas { position: fixed; bottom: -20px; _position: absolute; }\n ";
    } ?>


    Les attributs commencant par un "_" ne sont pas pris en compte par mozilla (bien que selon la norme css ils devraient l'être, ce qui fait que si un utilisateur de mozilla a changé son "user-agent" en MSIE, il verra quand même la page avec le css positionning.

    Le seul problème restant est si un utilisateur d'Internet Explorer a changé son user agent (je pense notamment à des "dérivés" d'ie, tels que "Crazy Browser", plutôt qu'à ie lui-même)... dans ce cas là la version qui lui sera proposée sera la version avec css positionning, et là ça s'affichera assez mal (en fait le texte commencera au milieu de la page environ, rien de grave)...

    La question qui se pose est "pourquoi ne pas servir le même code à tout le monde, puisque les attributs avec un "_" sont dans la norme de css ?". Eh bien tout simplement paceque malgrès le fait que ce soit dans la norme le validateur le refuse (bug du validateur)... Je suis donc obligé à cause de cela de faire une page "spéciale" pour ie, qui malgrès le fait qu'elle soit valide ne valide pas....