"> Pourquoi la hauteur 100% fonctionne-t-elle sans déclaration DOCTYPE ?-Questions et réponses sur le réseau chinois PHP
Pourquoi la hauteur 100% fonctionne-t-elle sans déclaration DOCTYPE ?
P粉818561682
P粉818561682 2023-10-26 10:39:42
1
2
500

Voici le code complet :

   

Rien n'apparaît. Cependant, si je supprime la première ligne (doctype), toutes les pages deviennent vertes comme prévu.

J'ai deux questions :

  1. Comment faire en sorte quedivremplisse la page sans supprimer le balisage ?
  2. Pourquoi ça marche normalement si je supprimedoctype?


P粉818561682
P粉818561682

répondre à tous (2)
P粉043432210

Voulez-vous dire vertical ? Les divs sont des éléments de niveau bloc, donc par défaut ils remplissent l'élément parent horizontalement.

Pour que cela fonctionne correctement, vous devez également définir la hauteur de la balise HTML à 100 %.

html, body { height:100%; }

Voir un exemple de travail ici :

http://jsfiddle.net/uhg0y9tm/1/

Comme d'autres l'ont dit ici, une fois que vous supprimez la première ligne (type de document HTML5), les navigateurs afficheront la page différemment, auquel cas il n'est pas nécessaire de spécifier une hauteur explicite de 100 % pour la balise HTML.

    P粉904405941

    CSSheightPropriétés, valeurs en pourcentage et DOCTYPE

    Lapremière partie devotre questiondivdemande comment appliquer une hauteur de 100 % à votre

    , à laquelle d'autres ont répondu à plusieurs reprises. Essentiellement, déclarer la hauteur de l'élément racine :

    html { height: 100%; }
    L'explication complète peut être trouvée ici :

    Ladeuxième partie

    de votre question a reçu beaucoup moins d'attention. Je vais essayer de répondre à cette question.

    Lorsque vous supprimez le DOCTYPE (Déclaration de type de document), le navigateur passe duMode standardauMode étrange

    .

    EnWeird Mode, également connu sous le nom deCompatibility Mode, le navigateur émule les anciens navigateurs afin de pouvoir analyser les anciennes pages Web - des pages écrites avant l'existence des normes Web. Le navigateur en mode bizarre se fait passer pourIE4,IE5 et Navigator 4

    afin de pouvoir restituer l'ancien code comme l'auteur l'avait prévu.

    Voici commentWikipedia

    définit le mode bizarreries :

    Voici l'avis deMDN

    :

    height: 100%Maintenant, voici les raisons spécifiques pour lesquellesdans votre code fonctionne en mode bizarre mais pas en mode standard :

    Enmode standards高度: auto(没有定义高度),那么子元素的百分比高度也将被视为height: auto, si l'élément parent a(selon les spécifications

    ).

    html { height: 100%; }C'est pourquoi la réponse à votre première question est

    .

    height: 100%div中工作,您必须在父元素上设置heightPour quefonctionne au sein de, vous devez définir

    sur l'élément parent (

    plus de détailsheight: auto).Cependant, en mode bizarre, si l'élément parent a

    , le pourcentage de hauteur de l'élément enfant sera

    mesuré par rapport à la fenêtre d'affichage

    . Voici trois références couvrant ce comportement :

    TL;DR

    En un mot, voici ce que les développeurs doivent savoir :

      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!