全高侧边栏和全高度内容,流畅的布局

时间:2013-08-21 09:42:16

标签: css css3 css-float

Possible duplicate didn't help

我知道关于这个话题有很多答案,但他们都没有帮助我,而且我花了好几天时间 这个问题。 90%的答案和书籍都提供了这个背景技巧,这对我没有帮助。

My code - Plunker

HTML

<body >
<h1>Hello Plunker!</h1>

<div class="sidebar">
  <ul>
        <li><a href="#">ANALYTICS</a></li>
        <li><a href="#">STYLES</a></li>
        <li><a href="#">VOTERS</a></li>
        <li><a href="#">GET STARTED</a></li>
        <li><a href="#">UPDATE</a></li>
  </ul>
</div>
<div class="content">
  <p>Content</p>
</div>

CSS

body{
  width: 100%;
  margin: 0 auto;

}

.content {
  width: 95%;
  display: inline;
  float: left;
  background: url(http://s9.postimg.org/ft91z9c6z/bg_content.png) repeat-y left top;
}

.sidebar{
  width: 5%;
  display: inline;
  height: 100%;
  float: left;
  background: url(http://s21.postimg.org/kexv3aupf/bg_sidebar.png) repeat-y left top;

}

.sidebar ul{
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    list-style: none;

}

.sidebar li{
     padding: 50%;
     position: relative;
}

.sidebar a{
        display: block;
        font-size: 0.5em;
        position: absolute;
        bottom: 0;
        left: 0;
}

现在我的布局如下:

Right now my layout looks like this:

我希望它看起来像这样:

我按照guide中提供的possible duplicate进行操作,但没有帮助 我认为这是因为我使用floatsfluid layout

如何在保持fluid layoutfloat定位的同时扩展列。

3 个答案:

答案 0 :(得分:9)

我已经更新了你的代码。在Plunker上查看。

首先尝试不使用absoluterelative位置,如果不需要它们。

第二种,在你的情况下,通过给出display: inlinefloat: left样式,做同样的事情,所以只有后者才能使用。

此外,我已将heightHTML标记的BODY设置为100%,并对sidebarcontent {{进行相同的操作1}} s,所以他们会DIV fill的{​​{1}}}高度。

最后,您的一个问题是parent属性的body值。它没有在x轴上重复,因此您没有看到repeat-y的实际大小。我只是将其设置为background而不是DIV

答案 1 :(得分:5)

尝试这样的事情:

<强> FIDDLE

标记:

<h1>Hello Plunker!</h1>
<div class="container">       
    <div class="sideBar">sideBar</div>
    <div class="content">content</div>
</div>

CSS

*
{
    margin:0;padding:0;
}
html,body,.container, .sideBar, .content
{
    height: 100%;
}
h1
{
    height: 50px;
    line-height: 50px;
}
.container
{
    margin-top: -50px;
    padding-top: 50px;
    box-sizing: border-box;
}
.sideBar
{
    float:left;
    width: 100px;
    background: aqua;
}
.content
{
    overflow:hidden;
    background: yellow;   
}

答案 2 :(得分:0)

这是一个古老的问题,但是Zurb家伙有很好的解决方案。

http://foundation.zurb.com/apps/