Wysokość body 100% z pionowym paskiem przewijania - HTML

Z ciekawości, biorąc pod uwagę poniższy przykład, dlaczego margines na div #containerpowoduje, że w przeglądarce pojawia się pionowy pasek przewijania? Wysokość pojemnika jest znacznie mniejsza niż wysokość body ustawiona na 100%.

Ustawiłem marginesy i marginesy na 0 dla wszystkich elementów oprócz #container. Zauważcie, że celowo pominąłem bezwzględne pozycjonowanie na div #container. W takim przypadku, jak przeglądarka oblicza wysokość body i jak wpływa na to margines?

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
* { padding:0; margin:0;}
html, body { height:100%; }
#container
{
  padding:10px;
  margin:50px;
  border:1px solid black;
  width: 200px;
  height: 100px;
}
</style>
</head>
<body>
  <div id='container'>
  </div>
</body>
</html>

1 odpowiedź

Jeśli pomalujesz tła html i body (nadając każdemu swój własny kolor), szybko zauważysz, że body jest przesuwane w dół wraz z #container, a sam #container w ogóle nie jest przesunięty względem górnej części body. Jest to efekt uboczny zawinięcia marginesu.

To zachowanie powoduje wyświetlenie paska przewijania, ponieważ zadeklarowałeś, że body ma 100% wysokości HTML. Należy pamiętać, że faktyczna wysokość bo body ozostaje nienaruszona, ponieważ marginesy nigdy nie są uwzględniane w obliczeniach wysokości.

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.