2012-11-11 69 views
13

我無法弄清楚這一點。我有一個簡單的div集合,包含標題,邊欄和內容區域。標題爲全寬,側面和內容向左浮動。身高未填充100%頁高

我需要側邊欄(用於背景)填充頁面高度的100%,但是當我檢查鉻中的元素時,<body>實際上是在頁面底部之前很久才結束,這似乎是限制高度我的側邊欄。

什麼使<body>無法填滿整頁?

​<body> 
    <div id="head"> 
    </div> 
<div id="sidebar"> 
    <div> 
     <div id="menu"> 
      <ul> 
       <li><a href="/dashboard.php"><img src="/img/blank.png" alt="home" id="home_ico">Home</a> 
       </li> 
       <li class="admin"><a><img src="/img/blank.png" alt="home" id="users_ico">Users</a> 
        <ul class="submenu" style="display: none;"> 
         <li><a href="/users">Manage users</a></li> 
         <li><a href="https://stackoverflow.com/users/add.php">Add a user</a></li> 
        </ul> 
       </li> 

       <li class=""><a><img src="/img/blank.png" alt="home" id="clients_ico">Clients</a> 
        <ul class="submenu" style="display: none;"> 
         <li><a href="/client_orgs">Manage clients</a></li> 
         <li><a href="/client_orgs/add.php" class="admin">Add a client</a></li> 
        </ul> 
       </li> 


       <li class=""><a><img src="/img/blank.png" alt="home" id="projects_ico">Projects</a> 
        <ul class="submenu" style="display: none;"> 
         <li><a href="/projects">Manage projects</a></li> 
         <li><a href="/projects/add.php" class="admin">Create a project</a></li> 
         <li></li> 
         <li><a href="/projects/submitted.php" class="admin client">Submitted projects</a></li> 
         <li><a href="/projects/closed.php" class="admin">Closed projects</a></li> 
        </ul> 
       </li> 
       <li class=""><a href="/my_account"><img src="/img/blank.png" alt="home" id="account_ico">Account</a> 
       </li> 
       <li class="active"><a href="/help.php"><img src="/img/blank.png" alt="help" id="help_ico">Help</a> 
       </li> 
      </ul> 

     </div> 
    </div> 
</div>  
<div id="body" class="full"> 
    <div id="content"> 

    <!--start block--> 
    <div class="block"> 
     <h1><img src="/img/blank.png" alt="home" id="help_ico"> Help</h1> 
     <p> 
     Curabitur blandit tempus porttitor. Cras mattis consectetur purus sit amet fermentum. Cras mattis consectetur purus sit amet fermentum. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Maecenas faucibus mollis interdum. Maecenas sed diam eget risus varius blandit sit amet non magna. 
     </p> 
    </div> 
</div> 
</body> 

CSS:

* { 
    margin:0; 
    padding:0; 
} 
html, body { 
    height:100%; 
    font-family:Arial, Helvetica, sans-serif; 
    font-size: 12px; 
    line-height: 160%; 
    position: relative; 
    background: #000; 
} 
#sidebar{ 
    width: 200px; 
    background: #000; 
    height: 100%; 
    padding-top: 30px; 
    -webkit-box-shadow: inset -4px 0px 8px 0px rgba(0, 0, 0, 0.5); 
     box-shadow: inset -4px 0px 8px 0px rgba(0, 0, 0, 0.5); 
    float: left; 
} 
#body{ 
    float: left; 
    padding: 30px 0 30px 40px; 
    width: 75%; 
} 
+0

推薦? http://stackoverflow.com/questions/1622027/percentage-height-html-5-css – javanut13

回答

3

嘗試添加

body { 
    min-height: 100%; 
} 
1

有兩個問題:

第一:
您的元素的寬度大於100%的頁面寬度爲
這就是爲什麼你的div id =「body」卡在邊欄下方。

試着讓身體的寬度有點像30%,你應該明白我的意思。

二:
高度:100%並未真正發揮它似乎途中有這個解決方法。
Here is a great solution

+0

我試過了,把一個明確的內部的身體和'內容'div和'身體'div裏面,它沒有效果 – TH1981

+0

我有機會仔細查看您的代碼並更新了我的答案。看看讓我知道這是否適合你。 – Malkus

3

您似乎試圖實現跨越容器的整個高度的佈局 - 這些佈局不是可行的。您應該閱讀Faux Columns CSS技術,這是解決此問題的常用解決方法。

4

如果有疑問 - 最好的方式,我發現通過增加處理是這樣的:

html { overflow-y:scroll; } 
33

看起來你有浮動:左應用於你的孩子。使用此代碼:

html, body { 
    overflow: auto; 
} 
+0

我有同樣的問題;它如此討厭..我嘗試了溢出,但它沒有工作......你可以看看http://omarhabash.com/wp/?page_id=54。 – Omar

+3

你應該爲此答案獲得金牌,我正在尋找年齡!謝謝。 –

+1

工作像一個魅力,但我會讓y –

1

不知道這是否會幫助任何人,但我有同樣的問題,但只有在移動。我發現有一種風格html { height: 100%; }導致身體不能延伸整個身高。一旦我移除了html標籤上的100%高度,它就修正了身體不能在手機上擴展頁面的整個高度。我身上的標籤仍然有100%的高度。