2017-02-14 7 views
1

Проблема заключается в том, как этот (https://jsfiddle.net/Lpm2ghsr/4/)CSS - прокрутка содержимого не расширяется должным образом

При прокрутке, вы можете видеть цвет фона, что высота .content каким-то образом та же, что в контейнере , вместо того, чтобы расширяться до высоты фактического содержимого.

Добавление «высоты: 100%» к контенту не работает, поскольку 100% означает ту же высоту, что и его родитель, я полагаю?

Я попытался добавить «переполнение: авто» в .content, но это не совсем то, что я хочу, так как полоса прокрутки должна быть наружной, как показано в примере.

Вот HTML разметка

<header></header> 
<div class="container"> 
    <section class="content"> 
    <pre>some text 
    some text 
    some text 
    some text 
    some text 
    some text</pre> 
    </section> 
</div> 

И CSS:

body{ 
    overflow: hidden; 
    width: 99%; 
    height: 100%; 
    min-height: 100%; 
    position: absolute; 
} 
header{ 
    height: 100px; 
    width: 100%; 
    background-color: black; 
} 

.container{ 
    display: flex; 
    overflow: auto; 
    width: 100%; 
    height: calc(100% - 100px); 
    position: relative; 
} 
.content{ 
    width: 100%; 
    background-color: #bbb; 
} 

pre{ 
    width: 100%; 
    font-size: 2rem; 
} 
+1

Почему у вас есть 'высота: calc (100% - 100px)' in .container? Если вы установите его на 100%, он должен работать. Другая проблема, которую я заметил, - это теги, которые закрываются в разделе/​​div. – Dana

+0

Это? https://jsfiddle.net/Lpm2ghsr/3/ –

+0

@ Dana Спасибо, я исправил теги. Так как заголовок 100px hegiht, .container должен исключить это 100px, shoudn't это? Установка его на 100% заставит полосу прокрутки слишком долго, чтобы она исчезла внизу. –

ответ

0

Я надеюсь, что это самый простой способ. Попробуй это.

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

.container{ 
    display: flex; 
    overflow: auto; 
    width: 100%; 
    height: 100%; 
    position: relative; 
} 
.content{ 
    width: 100%; 
    height: calc(100% - 100px); 
    background-color: #bbb; 
    overflow: auto; 
} 
+0

Это именно то, что я хочу! Благодаря! Один вопрос, однако, делает переполнение: auto; должны быть применены к .container? –

+0

Не требуется, так как мы установили высоту контейнера на 100%, переполнение будет требоваться только для внутреннего содержимого. –

0

Измените дисплей контейнера, чтобы заблокировать его, и он будет работать.

.container { 
    display: block; 
} 
+0

К сожалению, я должен сохранять отображение: flex для макета его дочерних элементов. Содержимое было на самом деле более сложным, чем в примере. Извините за то, что я не понял этого вопроса. –

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