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 :

Balise img avec les attributs class ou id [XHTML 1.0]


Sujet :

HTML

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Balise img avec les attributs class ou id
    Bonjour,

    J'ai un problème concernant mes images.

    J'aimerais qu'une de mes images soit encadrée et avec une taille bien spécifique etc.. et laisser mes autres images comme elles sont.

    J'avais donc codé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <img src="mon-url" class="imageg" alt="A"/> 
    <img src="mon-url" class="imaged" alt="B"/>
    <img src="mon-url" class="bandeau" alt="C">
    Ceci marche, mais n'est pas validé par a W3C.
    J'essaie donc de chercher un moyen pour le rendre valide, mais sincèrement là, je m'avoue vaincue.
    Il faut savoir que je suis une débutante en programmation...


    PS : J'avais trouvé cette "astuce", dans mon CSS :

    img {
    mes contraintes
    }

    Sauf que ça me fait ça pour toutes les images... Normal. Et je ne veux pas..


    Help !

  2. #2
    Membre régulier
    Homme Profil pro
    Sécurité
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 106
    Points
    106
    Par défaut
    Bonjour,

    Bon alors, à première vue ca ne semble pas trop faux votre code.

    Pas trop car normalement, il y a un espace avant "/>" (fermeture de la balise image) et je n'en vois pas dans votre code. Ce qui donne donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="mon-url" class="imaged" alt="B" />
    Sinon, effectivement si dans le css vous mettez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    img { 
       ... 
       propriétés 
       ... 
    }
    ca va s'appliquer à toutes les images et vous l'avez bien comprit.

    En revanche, ce qui est faisable c'est ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    img.imaged {
       ...
       propriétés
       ...
    }
    Mais autrement je ne vois pas ce qui est faux dans votre code...


    Si ca ne marche pas mieux, pourriez-vous nous dire quel est le message d'erreur que vous retourne le W3C validator ?

    Merci



    Cordialement,

    Graimbault

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci de la rapidité !

    J'ai pas très bien compris, ce que vous vouliez que je fasse...
    Dans le CSS je mettrais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    img.imaged {
    propriétés
    }
    Ok, mais dans mon html ? Ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img.imaged src"url" alt="A">
    ? Ca ne marche pas..

    L'erreur que me renvoie W3C est : "Document type does not allow element "img" here.

    The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

    One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error)."


    C'est à cause du "class", il ne l'accepte pas dans la balise img...

    J'ai essayé d'autres feintes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="imaged"><img src="url" alt="A" /></p>
    ou avec un div.. Mais ça ne fait pas la même chose que le "class"...

  4. #4
    Membre régulier
    Homme Profil pro
    Sécurité
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 106
    Points
    106
    Par défaut
    Ce que je mettrais en tout et pour tout dans le code HTML est ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="/picture/dé.png" class="imageD" alt="Un dé" />

    Et dans le CSS (pour un encadrement de 2px noir):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    img.imageD {
         border: 2px solid #000000;
    }

    Il ne me semble pas que l'attribut "class" soit interdit pour la balise "img".

    Le message d'erreur dit que vous n'avez pas le droit de vous servir de la balise "img" à cet endroit.

    Etes vous bien entre <body> et </body>?


    Peut-être avez vous un lien à nous donner si votre page est en ligne pour qu'on puisse mieux voir le problème ?


    Cordialement,

    Graimbault

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Sur mes 3 images, il y en a 2 qui n'étaient pas dans <body></body>, je viens de les rajouter... Toujours les mêmes erreurs.

    (Il est interdit de mettre des images en dehors du body ?)

    Mes <img></img> sont donc dans les balises <html> et <body>.. C'est tout.

  6. #6
    Membre régulier
    Homme Profil pro
    Sécurité
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 106
    Points
    106
    Par défaut
    Bon alors, visiblement vous êtes débutante en programmation web et c'est ce qui à déjà causé quelques erreurs puisque TOUT (dans un premier temps...) doit être entre <body> et </body>.

    La page minimale valide en HTML 5 est celle ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html>
    <html lang="fr">
      <head>
        <title>Le titre de ma page</title>
        <meta charset="utf-8">
      </head>
      <body>
        ...
        <img src="/picture/de.png" class="imageD" alt="Un dé" />
        ...
      </body>
    </html>


    Si maintenant, juste avant la balise </head> vous rajoutez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <style type="text/css">
      img.imageD {
        border : 2px solid #000000;
      }
    </style>


    Est-ce que ca marche et est-ce que c'est valide ?

  7. #7
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,
    Citation Envoyé par Graimbault
    Etes vous bien entre <body> et </body>?
    Bien joué Graimbault

    Citation Envoyé par Touty11
    Il est interdit de mettre des images en dehors du body ?
    Nous devons placer les images dans un élement de type bloc (div, p, ...) entre <body> et </body> pour être conforme W3C.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <body>
    	<div> <!-- Au moins un élement de type bloc est nécessaire -->
    		<img src="..." alt="..." class="..." />
    		<img src="..." alt="..." class="..." />
    	</div>
    </body>

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Ca marche, cad que ma page est telle que je la veux...

    Mais toujours les même erreurs sur W3C + 1 autre, sur le code que vous m'avez fait rajouter :

    "document type does not allow element "style" here

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <style type="text/css">
    The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).

    One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    VICTOIRE !

    Ça passe.

    C'était donc les balises div...

    Mh. Oui, débutante, je l'avais dit. Merci à tous les 2 !

    Donc, juste, pour les prochaines fois, il est impératif de mettre les images entre des balises ? Telles que div ou p.. ?

  10. #10
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Seulement si elles ne sont pas déjà dans un élément de type bloc.

    En fait, les balises <img /> étant des éléments "en ligne" comme le texte, elles ne peuvent pas être "enfants" de la balise <body>.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <body>
    	<!-- Invalide : Pas d'élément en ligne enfant de body -->
     
    	Je ne suis pas à ma place ici :'(<br />
    	<img src="cry.gif" alt="Moi non plus" />
     
     
    	<!-- Valide : Texte/Image dans un élément de bloc -->
    	<p>
    		Je suis trop bien ici :)<br />
    		<img src="lol.gif" alt="Moi aussi" />
    	</p>
    </body>

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Ok d'accord, merci.

    Désolée de vous avoir dérangés tous, pour quelque chose qui semble bien basique !

    Merci

  12. #12
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    TOUT (dans un premier temps...) doit être entre <body> et </body>.
    Cela fait partie des bonnes pratiques, mais techniquement, la balise <body> est facultative

    Pour le fun : The smallest possible valid (X)HTML documents

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 25
    Dernier message: 10/12/2011, 23h21
  2. Réponses: 22
    Dernier message: 28/08/2011, 23h12
  3. Question convention avec les attributs d'une classe
    Par pierrehs dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2011, 14h55
  4. probleme avec les attributs de type ID
    Par ben83 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/01/2006, 21h49
  5. [TIDY] Fermeture balise IMG avec TIDY en JAVA
    Par elitost dans le forum Documents
    Réponses: 1
    Dernier message: 02/09/2005, 16h54

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