响应边栏也是固定的

时间:2015-07-20 01:51:12

标签: jquery html5 css3 responsive-design css-float

我有一个响应式设计,我的侧边栏是25%,我的内容是75%。我的问题是当我滚动页面时,侧边栏没有固定,并且没有向下滚动页面。

我尝试将其定位:固定,但随后我放弃了对内容的整体百分比响应。

我怎样才能实现这两个目标?

小提琴: http://codepen.io/anon/pen/oXMmOz

enter image description here

enter image description here

enter image description here

enter image description here

HTML

  <div class="container max-width">
    <div class="sidebar"></div>
    <div class="content"></div>
  </div>

CSS

.max-width {
  max-width: 1300px;
  margin: 0 auto;
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  margin-top: 54px;
}

.sidebar {
  background-color: red;
  width: 25%;
  padding-top: 0;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;  
}

.content {
  background-color: black;
  width: 75%;
  margin-left: 25%;
  padding-top: 15px;
}

@media(max-width: 768px) {
  .sidebar {
    left: -200px;
    position: fixed;
  }
  .content {
    width: 100%;
    margin-left: auto;
  }
}

1 个答案:

答案 0 :(得分:1)

您将侧边栏定位为绝对边栏。这将忽略父元素并使用body作为引用。你应该使用position:relative。

你也应该正确地浮动内容,而不是使用25%左边的边距。

我会为你做一个小提琴。我以前从未使用过codepen。

好的,看看这个。这接近你想要的吗?

http://codepen.io/anon/pen/pJZYvB

body, html {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}
.max-width {
  max-width: 1300px;
  width: 100%;
  height: 100%;
  margin: 0;
  position: absolute;
  top: 0;

  left: 0px;




}

.sidebar {
  background-color: red;
  width: 25%;
  padding-top: 0;

  position: fixed;
  left: 0;
  top: 0;
  bottom: 0; 
  height: 100%;

}

.content {
  background-color: black;
  width: 75%;
  display: inline-block;
  float: right;
  padding-top: 15px;
}

@media(max-width: 768px) {
  .sidebar {
    left: -200px;
    position: fixed;
  }
  .content {
    width: 100%;
    margin-left: auto;
  }
}