Hacks * html

Résolu
Bonjour,

J'ai le même probléme que de nombreux WM, a savoir la compatibilité de mon site sur IE
j'ai trouver réponse a mon probléme (* html) mais je ne sais pas l'utiliser, donc si quelqun peut m'aider en appliquant
* html sur se code css que j'ai dans ma feuille de style merci

#header{
background-image: url(./images/image.jpg);
 width:737px;
 margin-left:auto;
 margin-right:auto;
 min-height:165px;
 }
Configuration: Windows XP
Firefox 3.0.5

26 réponses

Résumé de la discussion

La compatibilité du site avec Internet Explorer et les règles HTML/CSS pose problème, notamment en matière de validation W3C et d’adoption d’un DOCTYPE correct, gage de bonnes pratiques. Des conseils évoquent l'usage des attributs id, l'unicité, la structure sémantique HTML, et des précisions sur XHTML 1.0 Strict, HTML 4.01, et les spécifications CSS 2.0. En cas de difficultés sur IE7/FF, les échanges insistent sur l'importance d'un code HTML et CSS propre, notamment via des démonstrations pratiques et des validations respectant les standards.

Bobot (l’IA à votre service)
  1. Contributeur
    bonne nouvelle !

    et maintenant que tu t'es fait chier une fois, tu verras que ce sera beaucoup plus facile à faire maintenant parce que tu prendras en compte le rendu de IE dès le départ.

    bon courage pour la suite et longue vie à l'asso !
    -;o)
    0
    1. re, ayé j'ai attein mon objectif grâce a toi merci infiniment, mon site est parfait sur FF et opéra, correcte sur IE7.
      0
      1. sa n'a pas marché avec les span, j'ai mis un lien sur chaque élément de ma div et mon site est maintenant valide grâce à votre aide.

        Maintenant je m'attaque aux problèmes CSS sur IE, je m'aperçois que le mini-height de ma baniére qui est de min-height:165px; IE le met à hauteur de 18px.

        je vais bidouiller un peu pour arranger ça avec d'autre problème sur mes div dans la page projet.
        0
        1. Contributeur
          pour la bannière regarde ce que j'ai fait.

          c'est du remplacement de texte par une image, c'est une vieille méthode qui marche bien.
          dans le HTML il te faut une balise avec du texte, j'ai mis un <h1> puisque la bannière peut être considérée comme le titre de la page (dans ton image il n'y a pas de texte mais on fera comme si).

          tu indiques une hauteur avec {height} et pas {min-height}.
          tu caches le texte avec {text-indent:-1000em;} comme ça il est affiché très loin à gauche puis {overflow:hidden;} pour que le texte renvoyé à gauche ne soit pas pris en compte pour l'affichage.
          enfin tu appliques ton image en arrière-plan avec les propriétés {background}.
          0
      2. Contributeur
        salut,

        <a> est un élément en ligne, il ne peut contenir d'élément en bloc comme <div>.
        donc tu peux mettre des <a> dans <div> mais pas de <div> dans <a>.

        dans <a> tu peux mettre <span> qui est l'équivalent de <div> mais en ligne.
        0
        1. re,
          Merci beaucoup pour votre aide, maintenant il me reste plus qu'un problème pour valider tout mon site au W3C.

          Erreur :
          document type does not allow element "DIV" here; missing one of "APPLET", "OBJECT", "MAP", "IFRAME", "BUTTON" start-tag.
          


          
          <a class="lien_sans_deco"  href="projet_maroc.php">		
          	<div id="maroc" class="projet">	
          		<center><b>maroc</b></center>
          			<div class="maroc"></div>
          				<div class="desc_projet">
          					Date: 2009-02-10 <br>
          					Description : Lorem ipsum dolor sit amet, consectetur adipiscing  			</div>
          			</div> 
          			</a>
          
          
          0
          1. Contributeur
            j'ai réussi à valider quelques pages mais la soucie est que le Transitional n'accepte pas que j'attribue le même ID a plusieurs élément.

            NON mais rien n accepte les id multiple !! ;-))

            une id est par definition UNIQUE et doit le rester !!,

            les Class sont faite pour cela !!!
            1
            1. En fin de compte j'ai opté pour :
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

              j'ai réussi à valider quelques pages mais la soucie est que le Transitional n'accepte pas que j'attribue le même ID a plusieurs élément.

              exemple : j'ai une boucle qui produit des div en fonction du nombre d'enregistrement que j'ai dans ma base de donné pour les afficher, tout ces div auront le même id : id="projet" qui correspond dans ma feuille de style à

              #projet{
              background-image: url(./images/projet.jpg);
              width:360px;
              height:137px;
              margin-right:auto;
              margin-left:auto;
              margin-top:17px;
              }
              

              donc j'ai une erreur validom qui me dit : ID "PROJET" déjà défini
              0
              1. Contributeur
                c'est Validome qui te dit ça ?

                force le type dans la première page en lui indiquant UTF-8 et continue à valider le reste.
                quand tu n'auras plus d'erreurs, passe-le au validateur du W3C, on verra ce qu'il en dit.
                0
                1. re,

                  est-il normal que le validator ne voie pas l'indication de jeu de caractére ?

                  header.php
                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                  <html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
                  	<head>
                  
                  		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
                  
                  


                  Pour la balise meta voici ma source : https://edu.ca.edu/jeux-de-caracteres-encodages-et

                  Erreur

                  Ce document XHTML 1.0 a été soumis avec le type MIME text/html, ceci n'est cependant autorisé que lorsqu'il correspond aux directives pour HTML.
                  Dans ce document XHTML, aucune indication de jeu de caractères n'a pu être trouvée.
                   En revanche, une balise Meta contenant une indication d'un jeu de caractères a été trouvée (utf-8).
                   Cette manière d'indiquer le jeu de caractères n'est pas reconnue pour les documents XHTML et ne devrait être utilisée que par mesure de compatibilite avec HTML.
                   Veuillez ajouter une déclaration XML avec indication de jeu de caractères au début de votre document (par ex. <?xml version="1.0" encoding="utf-8"?>, ou bien faites envoyer par votre serveur une entête HTTP correspondante (en PHP avec header('Content-Type: text/html; charset=utf-8');).
                   Par manque d'indication de jeu de caractères, ce document a été traité par fallback avec UTF-8.
                  
                  0
                  1. Merci, domage que les erreur généré par le Validator sont pas évident a comprendre, j'aurai avancé plus vite.
                    je vais faire du ménage et je tien au courant.

                    en tout cas merci infiniment.
                    0
                    1. Contributeur
                      un validateur en français
                      0
                  2. Contributeur
                    regarde en premier le code HTML.

                    j'ai modifié ton code pour respecter le sens du code (on parle de sémantique).
                    par exemple pour le menu il faut faire une liste de liens avec du texte, pas avec des images. dans ce cas les images servent uniquement à décorer avec CSS.

                    et pour le code CSS, j'ai appliqué des méthodes classiques.

                    regarde les codes et pose-nous des questions précises sur ce que tu ne comprends pas.
                    0
                    1. ça marche, beaucoup de choses ont changés, j'aimerai savoir comment tu as fait, quel sont les choses que tu as changé stp merci
                      0
                      1. c super cool de ta part mais sa contient 108 erreur.
                        0
                        1. Contributeur
                          sa contient 108 erreur
                          tu ne dois pas valider la bonne page…
                          0
                      2. Contributeur
                        @yahcine86 : je t'ai fait une version plus stable, elle n'est pas complète car ton site ne s'affiche plus correctement donc je n'ai plus le modèle !

                        il n'y a pas de hacks et les codes sont valides, je ne l'ai pas testée partout.
                        0
                        1. Bonjour

                          Moi je fais deux feuilles de style que j'appele selon le navigateur avec du php:
                          <?php
                          if(strpos($_SERVER["HTTP_USER_AGENT"], 'MSIE') !== false)
                          echo "<link href='CSS/internetexplorer.css' rel='stylesheet' type='text/css'>";
                          else
                          echo "<link href='CSS/firefox.css' rel='stylesheet' type='text/css'>";
                          ?>

                          Sinon l'astuce consiste à mettre le mot clé important dans ton css qui n'est interprété que par firefox
                          Exemple:
                          div{
                          width: 800px;
                          width: 850px !important;
                          }
                          La div fera 800px sous IE et 850px sous firefox

                          Nep
                          http://www.cultureg.com
                          0
                          1. merci, je vais faire une après midi traduction alors.

                            Merci a tous
                            0
                            1. En fait tu as juste à traduire ce qu'il t'explique.

                              Genre il te dit que tu n'as pas déclaré de DOCTYPE
                              Line 1, Column 0: no document type declaration; implying "<!DOCTYPE HTML SYSTEM>".
                              The checked page did not contain a document type ("DOCTYPE") declaration. The Validator has tried to validate with a fallback DTD, but this is quite likely to be incorrect and will generate a large number of incorrect error messages. It is highly recommended that you insert the proper DOCTYPE declaration in your document -- instructions for doing this are given above -- and it is necessary to have this declaration before the page can be declared to be valid. 
                              0
                              1. j'ai du mal à comprendre les erreurs constaté par le w3c validator, ce sont les caractères en rouge et souligné qui manquent sur ma page web ?
                                0
                                1. Contributeur
                                  il n'y a pas que sous IE que ça coince, chez moi le menu est sur deux lignes (suis sous Ubuntu avec FF).

                                  ton code HTML contient déjà pas mal d'erreurs (30 en HTML Transitional qui est pourtant conciliant).

                                  en premier il te faut un code HTML valide, tu peux le tester ici.

                                  mais par contre ce n'est vraiment pas la peine de faire plusieurs CSS, ta mise est classique.
                                  0
                                  • 1
                                  • 2