2013-12-12 2 views
0

Я знаю, как обеспечить, чтобы тело HTML вертикально растягивалось/сжималось до 100% высоты окна просмотра браузера (имея 100% высоты в теле и правилах html).Тело CSS 100% высота и переполнение при необходимости

Я также знаю, что нормальный поток HTML приведет к вертикальному растяжению контейнеров, чтобы содержать их содержимое (если все настроено правильно).

Тем не менее, я не могу достичь обоих.

I.e. Я не могу победить CSS, чтобы убедиться, что когда моя страница просматривается на экране с высоким разрешением, который он вертикально растягивается, чтобы не оставлять пробелов, и чтобы убедиться, что если моя страница просматривается на экране с более низким разрешением, который тело растягивает через окно просмотра (для размещения всех содержимое) и вводит полосы прокрутки.

Для меня это идеальное поведение, и все же я, к сожалению, считаю, что этого не может быть достигнуто исключительно в CSS. Я знаю, что я могу сделать это на JavaScript довольно легко, но я хочу, чтобы это можно было сделать только в CSS.

Возможно ли, или я вынужден использовать JavaScript?

Редактировать: Я исследовал, пробовал и тестировал так много техник, но похоже, что это невозможно. Похоже, мне придется вернуться к JavaScript.

ответ

0

ОК так что это, безусловно, работает на me:

html { 
    height: 100%; 
} 

body { 
    min-height: 100%; 
    display: flex; 
} 

#wrapper { 
    width: 100%; /* Necessary because of side-effect of flex */ 
    height: 100%; 
} 

Точно то, что я пробовал раньше, но я думал, что дам эту новую функцию CSS «flex», и она сделала трюк. Таким образом, похоже, что менеджеры/создатели CSS, наконец, решили эти критические проблемы с динамической высотой и вертикальным центрированием.

Я надеюсь, что это поможет кому-то еще застрять в этом вопросе.

0

Вы можете использовать собственность min-height css.

html, body { 
    min-height: 100%; 
} 
+0

Это, кажется, растягивает объект html до размера окна просмотра (хорошо), но, к сожалению, тело также не растягивается. Я пробовал сделать html min-height 100% и тело 100%, но это дает тот же результат. – pleasedesktop

0
min-height: 100%; /* other browsers */ 
height: auto !important; /* other browsers */ 
height: 100%; /* IE6: treated as min-height*/ 
+0

Какое правило/элемент следует применять также? Я пробовал html сам по себе и html и body; ничто не работает. – pleasedesktop

+0

Ваша потребность в использовании html, body –

+0

Как я уже сказал, я пробовал это, – pleasedesktop

0

Вдохновляясь вопрос, который, кажется, почти так же, как у меня: Make body have 100% of the browser height

Это работает для меня:

html { 
    height: 100%; 
} 
body { 
    min-height: 100%; 
} 
+0

Argghhh тоже не работает, потому что тогда контейнеры внутри тела не могут быть вертикально растянуты с помощью процентных высот, потому что CSS утверждает, что высота работает только, если у родителя есть фиксированная высота (т. е. тело не может иметь минимальную высоту, но нуждается в высоте). Итак ... вернемся к квадрату. – pleasedesktop

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