title: Remove body whitespace at bottom of page on mobile
body: <p>I can't figure out what's causing whitespace to appear below my page's footer on mobile only. 
  I set the body to red so know the body, not the HTML, is causing it. 
  I tried setting padding and margin to 0 for both HTML and body but it's still there. (Setting the margin to 0 does remove a default 8px margin on the edges of the screen, but padding: 0 doesn't do anything.)</p>
  
  <p><a href="https://i.stack.imgur.com/0fOd1.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0fOd1.jpg" alt="dev tools"></a></p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>@charset "utf-8";
  
  /* CSS document */
  
  body,
  td,
  th,
  p {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    color: #333;
    line-height: 1.5;
  }
  
  body {
    /* Displayed at bottom on mobile */
    background-color: #db2626;
    /* Removes border that appears around sides of screen */
    margin: 0;
    /* padding: 0; */
    /* TODO: Does this do anything */
    /* position: relative; */
  }
  
  ul,
  li {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    color: #333;
  }
  
  a {
    color: orange;
    text-decoration: none;
  }
  
  a:hover,
  a:focus {
    color: #288dd1;
    text-decoration: none;
  }
  
  
  /* TODO: Find out what this applies to */
  
  a img {
    /* Shorthand for border-width, border-style, border-color */
    border: 0 none #fff;
  }
  
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-family: Arial, Helvetica, sans-serif;
    margin: 0 0 20px;
  }
  
  
  /* Applies to restaurant hours table, and causes table to render more quickly. Whereas in the default table-layout property value of auto, in which column width is set by widest unbreakable content in cells (content dictating layout), with property value of fixed table and column widths are determined by width of table or col or by width of first row of cells. Column widths are split equally if widths not present in first row  */
  
  table {
    table-layout: fixed;
  }
  
  #maincontent {
    background-color: #f3f3f3;
    /* TODO: Does this do anything */
    /* min-height: 100%; */
    /* TODO: This removes gap at bottom but makes middle section taller */
    /* height: 100vh; */
  }
  
  #main-restaurant {
    background-color: #f3f3f3;
    display: flex;
    flex-direction: column;
  }
  
  #footer {
    background-color: #444;
    color: #dedede;
    font-size: 8pt;
    letter-spacing: 1px;
    padding: 25px;
    text-align: center;
    text-transform: uppercase;
  }
  
  
  /* ====================== Navigation ====================== */
  
  nav {
    width: 100%;
    height: 80px;
    background-color: #252831;
    /* With display-flex instead of default display block, magin: auto applied to centers  */
    display: flex;
  }
  
  nav h1 {
    /*  With display-flex instead of default display: block applied to nav, magin: auto applied to h1 descendant of nav causes h1 to be centered */
    margin: auto;
  }
  
  nav h1 a {
    color: #fff;
    font-size: 14pt;
    font-weight: 200;
    letter-spacing: 10px;
    text-transform: uppercase;
  }
  
  #breadcrumb {
    padding: 10px 40px 16px;
    list-style: none;
    background-color: #eee;
    font-size: 17px;
    margin: 0;
  }
  
  
  /* Display list items side by side */
  
  #breadcrumb li {
    display: inline;
  }
  
  
  /* Add slash symbol (/) before/behind each list item */
  
  #breadcrumb li+li:before {
    padding: 8px;
    color: black;
    content: '/\00a0';
  }
  
  
  /* Add color to all links inside list */
  
  #breadcrumb li a {
    color: #252831;
    text-decoration: none;
  }
  
  
  /* Add color on mouseover */
  
  #breadcrumb li a:hover {
    color: #01447e;
    text-decoration: underline;
  }
  
  
  /* ====================== Map ====================== */
  
  #map {
    height: 400px;
    max-width: 100%;
    background-color: #ccc;
  }
  
  
  /* ====================== Restaurant filtering ====================== */
  
  .filter-options {
    max-width: 100%;
    height: 50px;
    background-color: #3397db;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  
  .filter-options select {
    background-color: white;
    border: 1px solid #fff;
    font-family: Arial, sans-serif;
    font-size: 10pt;
    height: 35px;
    letter-spacing: 0;
    margin: 10px;
    padding: 0 10px;
    max-width: 160px;
  }
  
  
  /* ====================== Restaurant listing ====================== */
  
  #restaurants-list {
    background-color: #f3f3f3;
    list-style: outside none none;
    margin: 0;
    padding: 30px 15px 60px;
    text-align: center;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    justify-items: center;
    grid-gap: 20px;
  }
  
  #restaurants-list li {
    background-color: #fff;
    border: 2px solid #ccc;
    font-family: Arial, sans-serif;
    min-height: 380px;
    padding: 0 30px 25px;
    text-align: left;
    max-width: 270px;
  }
  
  #restaurants-list .restaurant-img {
    background-color: #ccc;
    display: block;
    margin: 0;
    max-width: 100%;
    min-height: 248px;
    min-width: 100%;
  }
  
  #restaurants-list li h1 {
    color: #bd5900;
    font-family: Arial, sans-serif;
    font-size: 14pt;
    font-weight: 200;
    letter-spacing: 0;
    line-height: 1.3;
    margin: 20px 0 10px;
    text-transform: uppercase;
  }
  
  #restaurants-list p {
    margin: 0;
    font-size: 11pt;
  }
  
  #restaurants-list li a {
    background-color: #252831;
    border-bottom: 3px solid #eee;
    color: hsl(0, 0%, 100%);
    display: inline-block;
    font-size: 10pt;
    margin: 15px 0 0;
    padding: 8px 30px 10px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
  }
  
  
  /* ====================== Restaurant details ====================== */
  
  .inside header {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000;
  }
  
  .inside #map-container {
    width: 100%;
    margin-top: 130px;
  }
  
  .inside #footer {
    bottom: 0;
    position: absolute;
    width: 95%;
  }
  
  #restaurant-name {
    color: #bd5900;
    font-family: Arial, sans-serif;
    font-size: 20pt;
    font-weight: 200;
    letter-spacing: 0;
    margin: 15px 0 30px;
    text-transform: uppercase;
    line-height: 1.1;
  }
  
  #restaurant-img {
    width: 50%;
  }
  
  #restaurant-address {
    font-size: 12pt;
    margin: 10px 0px;
  }
  
  #restaurant-cuisine {
    background-color: #333;
    color: #ddd;
    font-size: 12pt;
    font-weight: 300;
    letter-spacing: 10px;
    margin: 0 0 20px;
    padding: 2px 0;
    text-align: center;
    text-transform: uppercase;
    width: 50%;
  }
  
  #restaurant-container,
  #reviews-container,
  .reviews-form {
    border-bottom: 1px solid #d9d9d9;
    border-top: 1px solid #fff;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  
  #reviews-container {
    padding: 30px 40px 80px;
  }
  
  #reviews-container h2 {
    color: #252831;
    font-size: 24pt;
    font-weight: 300;
    letter-spacing: -1px;
    padding-bottom: 1pt;
  }
  
  #reviews-list {
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
  }
  
  #reviews-list li {
    background-color: #fff;
    border: 2px solid #f3f3f3;
    margin: 0 0 30px;
    overflow: hidden;
    padding: 35px;
    width: 90%;
  }
  
  #reviews-list li p {
    margin: 0 0 10px;
    word-wrap: break-word;
  }
  
  #restaurant-hours {
    background-color: #fff;
    border: 2px solid #f3f3f3;
    overflow: hidden;
    padding: 20px;
  }
  
  #restaurant-hours td {
    color: #666;
  }
  
  .restaurant-icon {
    display: flex;
  }
  
  .restaurant-fav-icon {
    width: 50px;
    height: 50px;
    margin-top: 10px;
  }
  
  
  /* Review form */
  
  .form__heading {
    color: #252831;
    font-size: 24pt;
    font-weight: 300;
    padding-top: 1rem;
  }
  
  .form {
    display: flex;
    flex-direction: column;
  }
  
  .form&gt;input,
  .form&gt;textarea {
    margin: 10px 0;
    padding: 10px;
    border-radius: 0.4rem;
  }
  
  .form__restaurant-id {
    display: none;
  }
  
  .form__submit {
    background-color: transparent;
    color: #252831;
    border: 1px solid #252831;
    border-radius: 0.4rem;
    padding: 1rem;
    letter-spacing: 0.5rem;
    text-indent: 0.5em;
  }
  
  .leaflet-container a {
    color: #252831 !important;
  }
  
  
  /* ====================== Media queries ====================== */
  
  
  /* Small devices (portrait tablets, medium phones) */
  
  @media screen and (min-width: 640px) {
    #restaurants-list {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  
  /* Medium devices (landscape tablets and large phones) */
  
  @media screen and (min-width: 960px) {
    #restaurants-list {
      grid-template-columns: repeat(3, 1fr);
    }
    #reviews-list li {
      max-width: 70%;
    }
  }
  
  
  /* Extra large devices (large laptops and desktops) */
  
  @media screen and (min-width: 1200px) {
    #restaurants-list {
      grid-template-columns: repeat(4, 1fr);
    }
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;!DOCTYPE html&gt;
  &lt;html&gt;
  
  &lt;head&gt;
    &lt;link rel="stylesheet" src="//normalize-css.googlecode.com/svn/trunk/normalize.css" /&gt;
    &lt;link rel="stylesheet" href="css/styles.css"&gt;
    &lt;link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin="" /&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;Restaurant Reviews&lt;/title&gt;
  &lt;/head&gt;
  
  &lt;body&gt;
    &lt;header&gt;
      &lt;nav&gt;
        &lt;h1&gt;&lt;a href="/"&gt;Restaurant Reviews&lt;/a&gt;&lt;/h1&gt;
      &lt;/nav&gt;
    &lt;/header&gt;
  
    &lt;main id="maincontent"&gt;
      &lt;!-- Section: thematic grouping of content. A homepage is often split into sections for introduction, content, contact info --&gt;
      &lt;section id="map-container"&gt;
        &lt;div id="map" role="application" aria-label="location"&gt;&lt;/div&gt;
      &lt;/section&gt;
      &lt;section&gt;
        &lt;div class="filter-options"&gt;
          &lt;select id="neighborhoods-select" name="neighborhoods" aria-label="neighborhoods" onchange="updateRestaurants()"&gt;
            &lt;option value="all"&gt;All Neighborhoods&lt;/option&gt;
          &lt;/select&gt;
          &lt;select id="cuisines-select" name="cuisines" aria-label="cuisines" onchange="updateRestaurants()"&gt;
            &lt;option value="all"&gt;All Cuisines&lt;/option&gt;
          &lt;/select&gt;
        &lt;/div&gt;
        &lt;ul id="restaurants-list"&gt;&lt;/ul&gt;
      &lt;/section&gt;
    &lt;/main&gt;
  
    &lt;script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin=""&gt;&lt;/script&gt;
    &lt;script type="application/javascript" charset="utf-8" src="js/dbhelper.js"&gt;&lt;/script&gt;
    &lt;script type="application/javascript" charset="utf-8" src="js/main.js"&gt;&lt;/script&gt;
    &lt;!-- &lt;script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_GOOGLE_MAPS_API_KEY&amp;libraries=places&amp;callback=initMap"&gt;&lt;/script&gt; --&gt;
  
  
    &lt;footer id="footer"&gt;
      Copyright (c) 2018 &lt;a href="/"&gt;&lt;strong&gt;Restaurant Reviews&lt;/strong&gt;&lt;/a&gt; All Rights Reserved.
    &lt;/footer&gt;
  
  &lt;/body&gt;
  
  &lt;/html&gt;</code></pre>
  </div>
  </div>
  </p>