2013-09-17 3 views
1

EDIT Добавлено: http://jsfiddle.net/bfNzH/1/Вертикальная полоса прокрутки исчезает абсолютно позиционируемый элемент

My Html структурирована следующим образом:

<body> 
    <div class="wrapper"> 
     <div class="left">left bar</div> 
     <div class="right"> 
      <div class="topbar">topbar</div> 
      <div class="header">header</div> 
      <div class="content"> 
       <div>..some stuff</div> 
       <table> 
        <thead> 
         <tr> 
          <th class="th1">Col1</th> 
          <th>Col2</th> 
          <th>Col3</th> 
          <th>Col4</th> 
         </tr> 
        </thead> 
        <tbody></tbody> 
       </table> 
      </div> 
     </div> 
    </div> 
</body> 

CSS

body { 
    height : 100%; 
} 
.wrapper { 
    position : absolute; 
    top : 0; 
    bottom : 0; 
    left : 0; 
    right : 0; 
    overflow : hidden; 
} 
.left { 
    height : 100%; 
    position : absolute; 
    width : 50px; 
    overflow : hidden; 
    border-right : 1px solid black; 
} 
.right { 
    position : absolute; 
    top : 0; 
    left : 50px; 
    bottom : 0; 
    right : 0; 
    //border : 1px solid red; 
} 
.topbar { 
    height : 20px; 
    display : table; 
    width : 100%; 
    border-bottom : 1px solid green; 
} 
.header { 
    height : 30px; 
    display : table; 
    width : 100%; 
} 
.content { 
    width : 100%; 
    height : 100%; 
    position : absolute; 
    overflow : auto; 
    top : 50px; 
    bottom : 0px; 
    border-top : 1px solid yellow; 
    border-bottom : 1px solid yellow; 
} 
.th1 { 
    width : 50%; 
} 
table { 
    width : 100%; 
} 
th, tr { 
    text-align : center; 
} 

Если моя таблица имеет много строк, то содержимое выходит за пределы страницы и появляется полоса прокрутки .. но это то, что происходит с полосой прокрутки:

Error image

Я понимаю, так как я абсолютно позиционирован элементы и добавил top к нему, так что вертикальная полоса прокрутки сместился на эту сумму.

Я хотел бы один из 2-х решений:

  1. Полоса прокрутки приходит к элементу контента
  2. Scrollbar приходит к телу таблицы.

можно достичь второй, добавив к display : blocktbody, но тогда винты до выравнивания очень плохо. Обратите внимание:

Blown up table

+0

jsFiddle или CodePen? Пожалуйста, –

+0

уменьшить ширину от 100% до 98%, тогда вы найдете там прокрутку. –

+0

@ C-Link: Вы имеете в виду высоту? Но это взломать. Нужно будет сделать это через js. –

ответ

3

Если удалить height: 100%; из блока содержимого, то полоса прокрутки показывает, что это реальная высота:

http://jsfiddle.net/bfNzH/4/

+0

Слава богу. Вот и все. –

0

Вы проверили «Переполнение» атрибут в ваших Content DIV, который может быть установлен на скрытые с определенной высотой, установленной на него.

+0

css предоставлен на сайте –

+0

добавлен jsfiddle на вопрос –

0

Удалить свойство CSS: "высота: 100%" за ".content".

Я думаю, что вы должны использовать инструмент отладчика в своем браузере. Firebug для mozilla и для Chrome вы можете использовать инструмент отладчика по умолчанию. Надеюсь, вы также сможете лучше решить свою проблему в следующий раз.

Cheers.

+0

Спасибо .. Я уже получил свой ответ. И я использую инструменты dev, и инструмент dev не скажет мне, где исправить ситуацию. –

Смежные вопросы