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

Conception Web Discussion :

Imbriquer une balise style dans une balise div et validation W3C


Sujet :

Conception Web

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut Imbriquer une balise style dans une balise div et validation W3C
    Bonjour,
    J'arrive pas à valider un code tout simple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>TEST</title>
    </head>
    <body>
    <div id="monContainer">
        <div id="maDiv">
            <style type="text/css" scoped>
                div#maDiv {display:block;}
            </style>
        </div>
    </div>
    </body>
    </html>

    Comment faire lorsque, par exemple, on veut insérer un bout de code dans une page ?
    Merci bien

  2. #2
    Membre expert
    Avatar de Muchos
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    1 700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 700
    Points : 3 849
    Points
    3 849
    Billets dans le blog
    6
    Par défaut
    Bien noté!
    L'attribut SCOPED semble avoir été supprimé de l'actuelle spécification HTML5. En effet, à part Firefox, et éventuellement Chrome en bidouillant, il n'était pas supporté.

    Cela dit, j'aurais codé comme ça :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div id="monContainer">
      <style scoped>
        div#maDiv {display:block;} /* Règle absurde: DIV est déjà block ;) */
      </style>
       <div id="maDiv"></div>
    </div>

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    pourquoi ne pas faire un simple
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>TEST</title>
    <style>
    #maDiv {
      display:block;
    }
    </style>
    </head>
    <body>
    <div id="monContainer">
        <div id="maDiv">
        </div>
    </div>
    </body>
    </html>
    traditionnel ?

    • Au passage une ID étant unique, inutile de mettre div#maDiv{}, #maDiv{} suffit.
    • Autre chose, une <div> est par défaut en display:block, mais je pense que c'était pour l'exemple .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    @Muchos : merci pour l'information

    @NoSmoking : le but est de pouvoir insérer TOUT le code concernant un module à un seul et unique endroit ; ne pas être obligé de fragmenté (une partie dans le head, l'autre dans le body...) le code dudit module.

    Est-ce que ça veut dire que ça n'est plus possible de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html><html lang="fr"><head><title>TEST</title></head><body>
    
    	<div id="monContainer">
    		<style>
    			div#maDiv {display:block;}
    		</style>
    		<div id="maDiv">
    			<p>hello punk !</p>
    		</div>
    	</div>
    
    </body></html>

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Est-ce que ça veut dire que ça n'est plus possible de faire ceci :
    tout est possible ou presque, le tout et de savoir ce que l'on veut, disperser les codes, séparer les couches HTML/CSS/JS pour une meilleure maintenabilité, à toi de voir.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    tout est possible ou presque
    Moi je veux bien, mais c'est alors contradictoire avec ce que dis Muchos : le fait que l'attribut scoped est devenu obsolète >.<

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Tu n'as pas besoin d'un attribut scoped pour rendre ton code « acceptable »

    Si tu souhaites n'affecter qu'une partie de ton document avec un style particulier rien ne t'empêche de le cibler dans ta partie <style>.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    rien ne t'empêche de le cibler dans ta partie <style>
    Donc si je comprends bien : cette façon de procéder est plus ou moins « acceptable », mais non valide.

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Là je ne te suis plus....

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut

    Ici, tu dis :
    Si tu souhaites n'affecter qu'une partie de ton document avec un style particulier rien ne t'empêche de le cibler dans ta partie <style>
    C'est bien ce que j'ai fait ; sauf que ça valide pas, d'où mon interrogation

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Je parlais bien sûr de la partie <style> contenue dans <head></head>.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    ok donc si j'enferme une balise <style> dans une <div> de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="madiv">
        <style>
            div#madiv {display:block;}
        </style>
    </div>
    cette façon de procéder est plus ou moins « acceptable », mais non valide.
    Du coup, c'est à éviter. C'est dommage, car c'était parfois bien pratique.

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Pratique en quoi, je ne vois pas.
    Dans ce cas autant mettre le style inline si cela ne devient pas trop illisible.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div style="display:block;">
      <!-- le contenu -->
    </div>

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    J'ai mis display:block pour l'exemple.
    Le côté pratique, c'est dans le cas ou il y a un nombre conséquent de propriétés dans "le module" à insérer ; et lo code inline ne convient dans pas pour une question de lisibilité.

  15. #15
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Tu peux créer un fichier CSS à part pour ton « module » et le linker, ou encore l'intégrer uniquement si tu insères ton « module », cela restera à mon sens plus propre.
    ...sinon la validation n'étant bien souvent qu'une cerise sur le gâteau et si tu t'y retrouves plus facilement en mettant la partie style dans le corps de la page rien ne t'en empêche, cela fonctionnera de la même façon.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    Merci NoSmoking : ta solution de linker le fichier fonctionne parfaitement. Dire que c'était aussi simple, comment j'ai pu ne pas y penser

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/05/2014, 20h52
  2. insérer un forum dans une page css dans une balise div
    Par scoubi77 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/07/2012, 21h31
  3. Réponses: 3
    Dernier message: 17/04/2012, 15h28
  4. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  5. Réponses: 11
    Dernier message: 06/12/2005, 08h23

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