Warum kann ich mein div nicht auf 100 % Höhe bringen, wenn ich einen HTML5-Doctype verwende? Wie bekomme ich es 100% Höhe

Lesezeit: 6 Minuten

Warum kann ich mein div nicht auf 100 Hohe bringen
Grezzo

Ich arbeite daran, das Layout für eine ziemlich einfache Galerie-Webanwendung zu sortieren, aber wenn ich eine HTML5-Doctype-Deklaration verwende, wird die Höhe einiger meiner Divs (die 100 %) waren, ganz nach unten geschrumpft, und ich kann nicht scheinen zu plumpsen sie mit CSS sichern.

Mein HTML ist bei https://dl.dropbox.com/u/16178847/eyewitness/b/index.html und css ist bei https://dl.dropbox.com/u/16178847/eyewitness/b/style.css

  • Wenn ich die HTML5-Doctype-Deklaration entferne, ist alles so, wie ich es haben möchte, aber ich möchte wirklich die richtige HTML5-Doctype-Deklaration verwenden.
  • Wenn ich den Doctype auf HTML5 setze und keine Änderungen vornehme, sind das Div mit dem Foto und die Footer-Divs nicht sichtbar, vermutlich weil sie 0px hoch sind.
  • Wenn ich den Doctype auf HTML5 setze und die body { height: 100px } und .container { height: 100px } oder .container { height: 100% }, wird es sichtbar, aber was ich brauche, ist die volle Höhe und nicht die Höhe in Pixeln.
  • Wenn ich das gleiche versuche wie oben, aber mit dem body { height: 100% } Die Foto- und Fußzeilen-Divs sind nicht wieder sichtbar.

Was muss ich tun, um die Höhe zu 100 % zu erreichen, damit meine Foto- und Fußzeilen-Divs die volle Höhe haben?

  • Das hat nichts mit HTML5 oder CSS3 zu tun. (Was passiert mit anderen Doctypes? Seit wann war height ein neues CSS3-Ding?)

    – BoltClock

    3. Juni 12 um 16:17 Uhr


  • Wenn Sie den Körper zu 100 % groß machen, wovon erwarten Sie dann 100 %?

    – Robertc

    3. Juni 12 um 16:27 Uhr

  • @BoltClock Danke für deinen Kommentar. Das ist ein fairer Punkt zu CSS3, ich habe dieses Tag entfernt. Ich habe keine anderen Doctypes ausprobiert, ich habe es nur ohne Doctype oder mit dem HTML5-Doctype versucht. Was hoffen Sie, aus dem Verhalten mit anderen Doctype-Deklarationen herauszufinden? Ich bin mehr als glücklich, ein paar auszuprobieren und zu berichten, bin mir aber nicht sicher, welche für einen Versuch relevant wären?

    – Grezzo

    3. Juni 12 um 16:28 Uhr

  • @robertc Ich hatte erwartet, dass es 100% des Ansichtsfensters ist, vermutlich funktioniert es so nicht, aber ich weiß nicht, wie ich diesen Effekt anders erzielen kann.

    – Grezzo

    3. Juni 12 um 16:29 Uhr

  • Hier ist eine Erklärung des DOCTYPE-Problems: stackoverflow.com/a/32215263/3597276

    – Michael Benjamin

    25. August 15 um 23:13 Uhr

Warum kann ich mein div nicht auf 100 Hohe bringen
yunzen

Nur wenn das übergeordnete Element eine definierte Höhe hat, also keinen Wert von auto. Wenn dieser 100 % hoch ist, muss auch die Höhe des Elternteils definiert werden. Das könnte bis zum gehen html Wurzelelement.

Stellen Sie also die Höhe des ein html und das body Element zu 100%, sowie jedes einzelne Vorfahrenelement dieses Elements, das Sie haben möchten 100% height an erster Stelle.

Siehe dieses Beispiel, um es klarer zu machen:

html, body, .outer, .inner, .content {
  height: 100%;
  padding: 10px;
  margin: 0;
  background-color: rgba(255,0,0,.1);
  box-sizing: border-box;
}
<div class="outer">
  <div class="inner">
    <div class="content">
      Content
    </div>
  </div>
</div>

Das würde nicht funktionieren, wenn ich nicht 100% geben würde height sagen html Element:

body, .outer, .inner, .content {
  height: 100%;
  padding: 10px;
  margin: 0;
  background-color: rgba(255,0,0,.1);
  box-sizing: border-box;
}
<div class="outer">
  <div class="inner">
    <div class="content">
      Content
    </div>
  </div>
</div>

… oder .inner

html, body, .outer, .content {
  height: 100%;
  padding: 10px;
  margin: 0;
  background-color: rgba(255,0,0,.1);
  box-sizing: border-box;
}
<div class="outer">
  <div class="inner">
    <div class="content">
      Content
    </div>
  </div>
</div>

  • Wollen Sie damit sagen, dass es (im Standardmodus) keine Möglichkeit gibt, eine Seite auf die gleiche Höhe wie das Ansichtsfenster zu bringen (ohne Javascript zu verwenden, um eine Höhe in Einheiten statt in Prozent festzulegen)?

    – Grezzo

    3. Juni 12 um 16:36 Uhr


  • Ich sage, du kannst. Geben Sie dem HTML-Element 100 % Höhe, geben Sie dem Körperelement 100 % Höhe und so weiter mit jedem untergeordneten Element des Körpers und den untergeordneten Elementen dieses Elements, bis Sie das Element erreichen, das Sie von Anfang an zu 100 % haben möchten.

    – Yunzen

    3. Juni 12 um 16:39 Uhr

  • Das ist genau die Lösung, ich hatte keine Ahnung, dass Sie CSS auf das HTML-Element anwenden können. Schön!

    – Grezzo

    3. Juni 12 um 16:52 Uhr

Damit es funktioniert, gehen Sie wie folgt vor:

<!DOCTYPE html>
<html>
<head>
  <title>Vertical Scrolling Demo</title>
  <style>
    html, body {
      width: 100%;
      height: 100%;
      background: white;
      margin:0;
      padding:0;
    }
    .page {
      min-height: 100%;
      width: 100%;
    }
  </style>
</head>
<body>
  <div id="nav" class="page">
    <ul>
      <li><a href="#about">About</a></li>
      <li><a href="#portfolio">Portfolio</a></li>
      <li><a href="#contact">Contact</a></li>
    </ul>
  </div>
  <div id="page1" class="page">
    <h1><a name="about">about</a></h1>
    About page content goes here.
  </div>
  <div id="page2" class="page">
    <h1><a name="portfolio">portfolio</a></h1>
    Portfolio page content goes here.
  </div>
  <div id="page3" class="page">
    <h1><a name="contact">contact</a></h1>
    Contact page content goes here.
  </div>
</body>
</html>

1643069526 329 Warum kann ich mein div nicht auf 100 Hohe bringen
Nikolaus Fernandes Paolillo

Ich steckte in einem ähnlichen Problem fest, um eine Leinwand zu bemessen, also habe ich Folgendes getan und perfekt funktioniert.

Abgesehen davon, dass:

body{ width: 100%; height: 100%;}

Stellen Sie das gewünschte Element wie folgt ein:

.desired-element{ width: 100vw; height: 100vh}

Auf diese Weise haben Sie garantiert 100 % des Sichtfensters in Breite und Höhe. vw steht für Ansichtsbreite und vh steht für Ansichtshöhe

Ich hoffe, das hilft jemandem

  • Wenn Viewport-Einheiten verwendet werden, muss keine Höhe für andere Elemente festgelegt werden, in diesem Fall die body.

    – Asons

    29. Dezember 18 um 21:31 Uhr

  • In meinem Fall nahm Ag-Grid keine Höhe auf % so angewandte Höhe in vh, super und einfach. Hier wird gearbeitet <ag-grid-angular style="width: 100%; height: 76vh;"></ag-grid-angular> . Das ist nicht relevant, aber hilfreich für mich.

    – SUDARSHAN BHALERAO

    26. Juni 19 um 11:33 Uhr


  • Hallo, gut zu wissen, dass es dir irgendwie geholfen hat, entschuldige die schlechte Antwort, ich versuche mein Bestes. Seit dieser Antwort habe ich mehr Erfahrung in der Positionierung von Canvas gesammelt und einige Best Practices erhalten. Setzen Sie die Leinwand immer auf {position: absolute} und werfen Sie sie mit dem Z-Index hinter alles andere, wenn Sie möchten, dass sie Ihr Hintergrund ist.

    – Nikolaus Fernandes Paolillo

    28. Juni 19 um 19:20 Uhr

.

624950cookie-checkWarum kann ich mein div nicht auf 100 % Höhe bringen, wenn ich einen HTML5-Doctype verwende? Wie bekomme ich es 100% Höhe

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy