Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sticky footer not working correctly with sidebar

I wanted to have a CSS sidebar and a sticky footer. When the sidebar slides out, the rest of the page should shrink to fit the smaller space.

My problem is that when I open the menu, the sticky footer will slide side wards. But it also needs to shrink, which it doesn't. It should fit on the page horizontally like the rest of the content but it does not. That results in a horizontal scrollbar that I don't want to have.

How should I make footer shrink?

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}
footer {
  bottom: 0;
  margin-left: inherit;
  height: 100px;
  left: 0;
  width: 100%;
  position: absolute;
  background-color: lightgrey;
}
ul {
  margin-left: 0;
  padding-left: 0;
}
.footer-img {
  margin-top: 15px;
  margin-bottom: 15px;
  display: inline-block;
}
.page-wrap {
  box-sizing: border-box;
  min-height: 100%;
  position: relative;
  transition-duration: 0.4s;
}
.page-content {
  box-sizing: border-box;
  min-height: 100%;
  padding: 0 0 100px 0;
  transition-duration: 0.4s;
}
.sidebar {
  position: fixed;
  top: 0;
  left: -180px;
  right: 0;
  bottom: 0;
  width: 120px;
  padding: 30px;
  background-color: black;
  z-index: 0;
  transition-duration: 0.4s;
}
.sidebar li {
  color: white;
  font-size: 18px;
  margin-bottom: 15px;
}
.toggle {
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 1;
  color: white;
  transition-duration: 0.4s;
}
#sidebartoggler {
  display: none;
}
#sidebartoggler:checked + .page-wrap .sidebar {
  left: 0;
}
#sidebartoggler:checked + .page-wrap .toggle {
  left: 200px;
}
#sidebartoggler:checked + .page-wrap .page-content {
  margin-left: 180px;
}
<!doctype html>
<html lang="en">

<body>

  <input type="checkbox" id="sidebartoggler" name="" value="">
  <div class="page-wrap">

    <div class="page-content">
      <label for="sidebartoggler">MENU</label>
      <p>Lorizzle ipsizzle dolor i'm in the shizzle amizzle, away adipiscing elit. Owned sapizzle velizzle, hizzle volutpat, suscipit quizzle, gravida vel, go to hizzle. We gonna chung check it out tortor. Sed bow wow wow. Dang sure dolizzle dapibizzle turpizzle
        tempizzle fo shizzle. pellentesque break yo neck, yall et turpizzle. Fizzle izzle tortor. Pellentesque nizzle rhoncizzle crazy. In yippiyo crackalackin bling bling dictumst. Bizzle dapibizzle. Curabitur da bomb urna, pretizzle shizzlin dizzle,
        gangsta ac, eleifend vitae, nunc. Funky fresh suscipizzle. Integer semper fo shizzle uhuh ... yih! get down get down. Etizzle get down get down get down get down fo shizzle nisl. Own yo' quizzle dope. Shiz check out this, ipsizzle i'm in the shizzle
        malesuada scelerisque, nulla shiznit euismod felis, izzle break yo neck, yall metizzle nulla izzle mah nizzle. Vivamus ullamcorper, tortor et rizzle tellivizzle, nibh ass ultricizzle dawg, izzle luctus check it out elit izzle pimpin'. Maurizzle
        bow wow wow, orci mammasay mammasa mamma oo sa volutpizzle ass, gizzle shit we gonna chung fizzle, at bibendizzle enizzle that's the shizzle funky fresh nisl. Nullizzle fizzle velizzle pizzle orci uhuh ... yih!</p>
      <footer>Yeah, footer!</footer>
    </div>
    <div class="sidebar">
      <ul>
        <li>home</li>
        <li>projects</li>
        <li>cool</li>
      </ul>
    </div>
  </div>

</body>

</html>
like image 862
Tristan Avatar asked Dec 20 '16 14:12

Tristan


1 Answers

You can remove width from footer and add right: 0.

footer {
    bottom: 0;
    margin-left: inherit;
    height: 100px;
    left: 0;
    position: absolute;
    background-color: lightgrey;
    right: 0;
}
like image 69
Armin Avatar answered Nov 06 '22 05:11

Armin