"> DOCTYPE 宣言なしで高さ 100% が機能するのはなぜですか?-PHP中国語ネットワークQ&A
DOCTYPE 宣言なしで高さ 100% が機能するのはなぜですか?
P粉818561682
P粉818561682 2023-10-26 10:39:42
1
2
521

これは完全なコードです:

リーリー

何も表示されません。ただし、最初の行 (doctype) を削除すると、すべてのページが期待どおり緑色に変わります。

質問が 2 つあります:

  1. マークアップを削除せずにdivをページいっぱいに表示するにはどうすればよいですか?
  2. doctypeを削除すると正常に動作するのはなぜですか?


P粉818561682
P粉818561682

全員に返信 (2)
P粉043432210

垂直って意味ですか? div はブロックレベルの要素であるため、デフォルトでは親要素を水平に埋めます。

これを機能させるには、HTML タグの高さを 100% に設定する必要もあります。

リーリー

ここで実際の例を参照してください:

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

ここで他の人が言っているように、最初の行 (HTML5 ドキュメント タイプ) を削除すると、ブラウザーはページを異なる方法でレンダリングします。その場合、HTML タグの高さを明示的に 100% に指定する必要はありません。

いいねを押す+0
    P粉904405941

    CSSheightプロパティ、パーセンテージ値、および DOCTYPE

    質問の最初の部分は、divに 100% の高さを適用する方法を尋ねており、他の人が何度も回答しています。基本的に、ルート要素の高さを宣言します:

    リーリー

    完全な説明はここにあります:


    あなたの質問の2 番目の部分はあまり注目されていません。この質問に答えてみます。

    DOCTYPE (Document Type Declaration) を削除すると、ブラウザはStandard ModeからWeird Modeに切り替わります。

    互換モードとも呼ばれる奇妙なモードでは、ブラウザは古いブラウザをエミュレートして、古いWebページ、つまりWeb標準が存在する前に作成されたページを解析できるようにします。奇妙なモードのブラウザはIE4IE5、および Navigator 4のふりをして、作成者が意図したとおりに古いコードをレンダリングできるようにします。

    Wikipedia

    での Quirks モードの定義方法は次のとおりです:以下は

    MDN

    の意見です:

    コード内のheight: 100%が奇妙なモードでは機能するが、標準モードでは機能しない具体的な理由を次に示します。標準モード

    では、親要素のheight: auto(高さが定義されていない) の場合、子要素の高さのパーセンテージもheight として扱われます。自動(仕様による)。だからこそ、最初の質問に対する答えは

    html { height: 100%; }

    .

    height: 100%

    divで機能させるには、親要素にheightを設定する必要があります (詳細) 。ただし、奇妙なモードでは、親要素の

    height: auto

    がある場合、子要素の高さのパーセンテージはビューポートを基準にして測定されます。この動作について説明している 3 つの参考文献を次に示します。

    https://www.cs.tut.fi/~jkorpela/weird mode.html
    • https://stackoverflow.com/a/1966377/3597276
    • https://developer.mozilla.org/en-US/docs/Mozilla_Quirks_Mode_Behavior
    • TL;DR

    簡単に言うと、開発者が知っておくべきことは次のとおりです:

    いいねを押す+1
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!