Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1861 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  débutant en html/css, comportement incompréhensible à mes yeux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

débutant en html/css, comportement incompréhensible à mes yeux

n°2267798
nicobzz
Posté le 15-10-2015 à 16:57:31  profilanswer
 

Bonjour,
Je m'appelle Nicolas,
 
Petite question de curiosité et aussi pour mieux comprendre html/css:
 
Je suis en train de me former à html css, en fait ça fait déjà quelques années que je connais html/css/php, mais je comprends mal les histoires de "margin"/"padding" etc...
 
J'ai remarqué que cette page:
 

Code :
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>
  5. nico test
  6. </title>
  7. <style type="text/css">
  8. .bodytest {
  9. border:0px;
  10. margin:0px;
  11. }
  12. .divtest {
  13. background-color:green;
  14. margin:1px;
  15. padding:0px;
  16. border:1px;
  17. border-style:solid;
  18. }
  19. </style>
  20. </head>
  21. <body class="bodytest" >
  22. <div class="divtest">
  23. <h2>comment ca marche ce truc!!!</h2>
  24. <h1> cest trop bête ce truc</h1>
  25. <div style="background:blue">
  26. <h1 style="background:yellow">lalalala</h1>
  27. </div>
  28. </div>
  29. </body>
  30. </html>


 
Cette page changeait donc radicalement d'aspect lorsque qu'on ajoute ou retire la ligne dans le script css:
 
"border-style:solid;"
 
(C'est à dire que ça ne fait pas simplement rajouté une petite bordure d'1 pixel, mais ça change la couleur de fond)
 
Je pense que ce comportement est volontaire mais je n'arrive pas à savoir pour ça a été programmé ainsi?
 
Si quelqu'un a une idée... Merci

mood
Publicité
Posté le 15-10-2015 à 16:57:31  profilanswer
 

n°2267832
tpierron
Posté le 15-10-2015 à 20:20:42  profilanswer
 

Oui, c'est une fonctionnalité de CSS, qu'on appelle fusion/transfert de marges (margin collapse/transfer).
 
Cet article l'explique plutôt bien: http://www.howtocreate.co.uk/tutor [...] collapsing
 
Dans ton cas, la marge en haut de l'élément <h2> ainsi que marge en bas de l'élément <h1> est transféré à l'élément <body>, au lieu d'être utilisé pour élargir le contenu du <div> contenant <h1> et <h2>, transfert, qui n'est pas fait s'il y a une bordure (comme décrit dans la spec CSS: http://www.w3.org/TR/CSS2/box.html#collapsing-margins )
 
L'idée derrière ça, c'est lorsqu'on a 2 paragraphes qui se suivent <p/><p/>, plutôt que d'avoir une marge entre ces 2 paragraphes qui est la somme des marges mitoyennes, on prends le maximum à la place (ça c'est la fusion de marge).
 
Le transfert, c'est pour prendre en compte les cas comme: <div><p/></div><p/>. Si le <div> n'a aucun style appliqué, il ne devrait avoir aucune influence sur le rendu, pourtant sans transfert de marge, l'espace entre les 2 paragraphes sera la somme des marges mitoyenne. Pour éviter ça, CSS transfert les marges dans l'éléments le plus englobant (certaines conditions s'appliquent™).

n°2267854
nicobzz
Posté le 16-10-2015 à 11:08:40  profilanswer
 

Merci pour ta réponse qui explique bien le principe!
 
Je vais jeter un coup d'oeil sur les pages web qui tu m'as passé.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  débutant en html/css, comportement incompréhensible à mes yeux

 

Sujets relatifs
Formulaire HTML CSS vers PHP MYSQL[Débutant] pour faire un script greasemonkey
Problème adresse HTML[RESOLU] Utiliser la méthode setTimeout sans HTML
Désactiver saisie semi automatique sur un champs HTML (Chrome)Problème de données php dans envoi de mail html
récupération données tableau html avec pythonAide pour débutant ...
HTML ou PHP ?[HTML/CSS & ECLIPSE] [résolu]
Plus de sujets relatifs à : débutant en html/css, comportement incompréhensible à mes yeux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR