Как изменить высоту html страницы

I have a div element with ID="container". I want to set this element to be the size of the viewable area in the browser window. I am using the following JS to do so. var container= document.

I have a div element with ID=»container». I want to set this element to be the size of the viewable area in the browser window. I am using the following JS to do so.

var container= document.getElementById("container");
container.style.height=(window.innerHeight);
container.style.width=window.innerWidth;

However, the browser window size is larger than the viewable size and horizontal and vertical scroll bars appear. How do I make it so that my HTML page fits into the browser window without a need for scroll bars?

EDIT:

I am basically asking, how can I make the document size the same as the viewport size?

BoltClock's user avatar

BoltClock

687k158 gold badges1373 silver badges1349 bronze badges

asked Mar 1, 2012 at 3:48

moesef's user avatar

This should work.

<!DOCTYPE html>
<html>
    <head>
        <title>Hello World</title>
        <style>
            html, body {
                width: 100%;
                height: 100%;
                margin: 0;
                padding: 0;
                background-color: green;
            }
            #container {
                width: inherit;
                height: inherit;
                margin: 0;
                padding: 0;
                background-color: pink;
            }
            h1 {
                margin: 0;
                padding: 0;
            }
        </style>
    </head>
    <body>
        <div id="container">
            <h1>Hello World</h1>
        </div>
    </body>
</html>

The background colors are there so you can see how this works. Copy this code to a file and open it in your browser. Try playing around with the CSS a bit and see what happens.

The width: inherit; height: inherit; pulls the width and height from the parent element. This should be the default and is not truly necessary.

Try removing the h1 { ... } CSS block and see what happens. You might notice the layout reacts in an odd way. This is because the h1 element is influencing the layout of its container. You could prevent this by declaring overflow: hidden; on the container or the body.

I’d also suggest you do some reading on the CSS Box Model.

answered Mar 1, 2012 at 5:48

twaddington's user avatar

twaddingtontwaddington

11.6k5 gold badges33 silver badges46 bronze badges

1

You could use width: 100%; in your css.

answered Mar 1, 2012 at 3:59

yvoyer's user avatar

yvoyeryvoyer

7,4365 gold badges32 silver badges37 bronze badges

1

<html>
<head >
<title>Welcome</title>    
<style type="text/css">
#maincontainer 
{   
top:0px;
padding-top:0;
margin:auto; position:relative;
width:950px;
height:100%;
}
  </style>
  </head>
<body>
 <div id="maincontainer ">
 </div>
</body>
</html>

answered Aug 13, 2013 at 11:12

Vikash pathak's user avatar

Using meta tags:

<!doctype html>
<html>
<head>
<meta content=“width=device-width”>
<title><—-!your title here!—></title>
</head>
<body>
<—-!stuffgoeshere!—->
</body>
</html>

answered Mar 10, 2022 at 12:17

someRandomCoder's user avatar

1

You could try:

<html>
    <head>
        <style>
            #main {
                width: 500; /*Set to whatever*/
                height: 500;/*Set to whatever*/
            }
        </style>
    </head>
    <body id="main">
    </body>
</html>

answered May 6, 2020 at 19:22

Foo's user avatar

В этой статье рассмотрим, как можно задавать ширину и какими свойствами стоит делать это. Для первого примера возьмём блочный элемент div. По умолчанию он имеет высоту равную нулю (если ничего не содержит) и занимает 100% ширины родительского элемента. Попробуем задать ему ширину в 200 пикселей и высоту в 150. Для этого используем CSS свойства width (ширина) и height (высота):

<div style="width: 200px; height:150px;"></div>

Получится такой результат:


Можно задавать ширину не только в пикселях, но и в процентах от ширины родительского элемента. Попробуем сделать это:

<div style="width: 40%; height:150px;"></div>

Получится такой результат:


К сожалению, задать высоту для блочного элемента в процентах не получится. Если написать «height:50%;», то в разных браузерах будет диаметрально противоположный результат, поэтому лучше считать такую запись ошибкой.

Только у одного элемента можно задать свойство height в процентах, а точнее у псевдоэлементов :before и ::after. Читайте о них в статье Псевдоэлементы (:before, ::after)

Максимальная и минимальная ширина (max-width и min-width)

Жёсткое ограничение ширины — это не лучший способ строить сайт. Потому что в таком случае появятся проблемы с адаптацией под мобильные и планшеты: ширина экрана может быть меньше ширины блока. Тогда часть сайта будет выходить пределы вёрстки сайта и появится горизонтальная прокрутка, чего у версии сайта на мобильном быть не должно. Поэтому вместо жёсткого задания ширины используется ограничение сверху через CSS свойство max-width. Мы знаем, что блочный элемент div пытается занять всю ширину родительского элемента, как будто по умолчанию у него есть свойство width и оно имеет значение 100%.

<div style="max-width: 400px; height:50px;"></div>

Результат будет аналогичен предыдущему примеру:


Но теперь, если вы возьмёте окно своего браузера и сузите до 400 пикселей и меньше, то увидите как контейнер div уменьшает свои размеры, чтобы не выпрыгивать за пределы вёрстки. Если же изменить «max-width:400px;» на «width:400px», то блок будет выходить за пределы родительского элемента:


По смыслу свойство min-width является диаметрально противоположным к max-width. Оно ограничивает минимальную ширину элемента, но не ограничивает максимальную.

Максимальная и минимальная высота (max-height и min-height)

Для блока div можно задать максимальную высоту. Это делается в том случае, если контента в блоке будет слишком много и есть вероятность, что он испортит вёрстку сайта. Ведь у контейнера div высота изменяется автоматически в зависимости от того, сколько занимает места его дочерние элементы.

Рассмотрим наглядный пример необходимости использования max-height. Допустим, что нам надо сделать чат, где пользователи сайта смогут обмениваться текстовыми сообщениями. Для этого нужно создать контейнер, который будет расти по мере появления в нём новых сообщений. Но как только div достигает определённой высоты, то перестаёт расти и появится полоса прокрутки. Используем следующий CSS код:

<div style="width: 300px; max-height: 100px; 
overflow-y: scroll;"  contenteditable="true">
   Тише, мыши, кот на крыше,
   а котята ещё выше.
   Кот пошёл за молоком,
   а котята кувырком.
   Кот пришёл без молока,
   а котята ха-ха-ха. 
</div>

Весь текст не вместится в div. Поэтому из-за свойства «overflow-y: scroll;» появится полоса прокрутки:

Тише, мыши, кот на крыше, а котята ещё выше. Кот пошёл за молоком, а котята кувырком. Кот пришёл без молока, а котята ха-ха-ха.

Благодаря атрибуту contenteditable=»true» у тега div в примере, Вы можете изменить текст внутри контейнера. Попробуйте удалить и добавить несколько строк. Размер контейнера будет подстраиваться под количества текста в нём до тех пор, пока не станет быть равен 100px. Затем появится полоса прокрутки.

По смыслу свойство min-height является диаметрально противоположным к max-height. Оно ограничивает минимальную высоту элемента, но не ограничивает максимальную.

  • Назад
  • Обзор: Building blocks
  • Далее

В предыдущих уроках вы познакомились с некоторыми способами изменения размеров элементов на веб-странице с помощью CSS. Понимание того, насколько велики будут различные элементы в вашем дизайне — важно, и в этом уроке мы подведем итог по различным способам задания размеров элементов с помощью CSS и расскажем о некоторых терминах, связанных с размерами, которые помогут вам в будущем.

Необходимые условия: Базовая компьютерная грамотность, Установка базового ПО, базовые знания работы с файлами, основы HTML (Введение в HTML), и общее представление о том, как работает CSS (Введение в CSS.)
Цель: Изучить различные способы задания размеров объектов в CSS.

Размер по умолчанию или внутренний размер

Элементы HTML имеют размеры по умолчанию, заданные до того, как на них повлияет какое-либо правило CSS. Простой пример — изображение. Изображение имеет ширину и высоту, определенные в файле изображения. Этот размер называется — внутренний размер, он исходит из самого изображения.

Если вы разместите изображение на странице и не измените его высоту и ширину, используя атрибуты тега <img> или CSS, оно будет отображаться с использованием этого внутреннего размера. В примере ниже, мы установили для изображения рамку, чтобы вы могли видеть размер файла.

С другой стороны, пустой <div> не имеет собственного размера. Если вы добавите <div> в свой HTML-код без содержимого, а затем установите для него рамку, как мы это делали с изображением, вы увидите линию на странице. Это схлопнувшиеся границы элемента — содержимое, которое могло бы удерживать ее в открытом состоянии, отсутствует. В нашем примере ниже эта граница растягивается на всю ширину контейнера, потому что это элемент блочный, поведение которого должно быть вам знакомо. У него нет высоты, потому что нет содержимого.

В приведенном выше примере попробуйте добавить текст внутри пустого элемента. Этот текст теперь становится охваченным границами, потому что высота элемента определяется содержимым. Следовательно, размер этого <div> устанавливается размером содержимого. Как и в предыдущем примере, этот размер является внутренним размером — размер элемента определяется размером его содержимого.

Присваивание определенного размера

Конечно, мы можем задать элементам нашей страницы определенный размер. Размер, который присваивается элементу (содержимое, которого затем должно соответствовать этому размеру), называется внешним размером. Возьмите наш <div> из примера выше и установите ему специальные значения width и height и теперь он будет иметь эти размеры, независимо от того, какого размера содержимое в него помещается. Как мы узнали в нашем предыдущем уроке о переполнении, заданная высота блока может вызвать переполнение содержимого, если размер содержимого больше, чем внутреннее пространство элемента.

Из-за этой проблемы перекрытия, жестко задавать высоту элементов с помощью длины или процентного соотношения — это то, что нужно делать с большой осторожностью.

Использование процентного соотношения

Во многих отношениях проценты действуют как единицы длины, и, как мы обсуждали в уроке, посвященном значениям и единицам, они часто могут использоваться как взаимозаменяемые с длиной. При использовании процентов вы должны знать, от чего этот процент рассчитывается. В случае блока внутри другого блока, если вы зададите дочернему блоку процентную ширину, это будет процент от ширины родительского контейнера.

Это потому, что проценты рассчитываются в зависимости от размера содержащего элемент блока. Если процентное соотношение не применяется, наш <div> будет занимать 100% доступного пространства, так как это элемент блочного типа. Если мы зададим ему ширину в процентах, он займет процент от пространства, которое он обычно заполняет.

Margins и paddings в процентах

Если вы установите margins и padding в процентах, вы можете заметить странное поведение. В приведенном ниже примере у нас есть блок. Мы присвоили внутреннему блоку margin 10% и padding 10%. Padding и margin сверху и снизу имеют тот же размер, что и margins слева и справа.

Например, вы можете ожидать, что процентное значение верхнего и нижнего margins будет в процентах от высоты элемента, а процентное левое и правое margins — в процентах от ширины элемента. Тем не менее, это не так!

При использовании margins и padding, заданных в процентах, значение рассчитывается на основе inline размера блока — следовательно, ширины при работе с горизонтальным языком. В нашем примере все поля и отступы составляют 10% width. Это означает, что вы будете иметь margins и padding одинакового размера по всему полю. Этот факт стоит запомнить, если вы действительно пользуетесь процентами.

Минимальные и максимальные размеры

Помимо возможности установить фиксированный размер, мы можем использовать CSS чтобы задать элементу минимальный или максимальный размер. Если у вас есть блок, который может содержать разное количество содержимого, и вы хотите, чтобы он всегда был определенной минимальной высоты, вы можете установить для него свойство min-height. Блок всегда будет минимальной заданной высоты, пока содержимого не станет больше, чем места в блоке.

В приведенном ниже примере вы можете увидеть два блока, обоим задали минимальную высоту в 150 пикселей. Блок слева имеет высоту 150 пикселей несмотря на то что в нем нет текста. В блоке справа есть контент, которому нужно больше места, чем минимальная заданная высота, поэтому он увеличился.

Это очень полезно при работе с переменным объемом контента, избегая при этом переполнения.

Часто max-width применяют для уменьшения масштаба изображений, если недостаточно места для их отображения.

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

Если бы вы вместо этого применили max-width: 100%, и внутренняя ширина изображения была бы меньше, чем его контейнер, изображение не будет принудительно растягиваться и становиться больше, что предотвращает пикселизацию.

В приведенном ниже примере мы использовали одно и то же изображение трижды. Первому изображению было задано width: 100% и оно находится в контейнере, который больше его ширины, поэтому он растягивается до ширины контейнера. Второму изображению задано max-width: 100%, изображение достигло 100% своей ширины не растягивается, чтобы заполнить контейнер. Третье поле снова содержит то же изображение, также с max-width: 100% в этом случае вы можете увидеть, как он уменьшилось, чтобы поместиться в контейнер.

Этот метод используется для создания отзывчивых изображений, чтобы при просмотре на меньшем устройстве они соответствующим образом уменьшались. Однако вам не следует использовать эту технику для загрузки действительно больших изображений с последующим их уменьшением в браузере. Изображения должны иметь соответствующий размер, чтобы быть не больше, чем они должны быть для самого большого размера, отображаемого в дизайне. Загрузка слишком больших изображений замедлит работу вашего сайта и может стоить пользователям больше денег, если они используют лимитированное соединение.

Единицы вьюпорта

Вьюпо́рт — это видимая область вашей страницы в браузере, который вы используете для просмотра сайта. В CSS у нас есть единицы измерения, которые относятся к размеру вьюпорта — vw единицы ширины вьюпорта и vh высоты вьюпорта. Используя эти единицы измерения, вы можете изменять размер чего-либо относительно вьюпорта пользователя.

1vh равен 1% от высоты вьюпорта и 1vw равен 1% ширины вьюпорта. Вы можете использовать эти единицы измерения для размеров блоков, а также текста. В приведенном ниже примере у нас есть блок размером 20vh и 20vw. В блоке есть буква A, которой присвоено значение font-size 10vh.

Если вы измените величину vh и vw — это изменит размер блока или шрифт; изменение размера вьюпорта также изменит их размеры, поскольку они имеют размер заданный относительно вьюпорта. Чтобы увидеть изменение примера при изменении размера вьюпорта, вам нужно будет загрузить пример в новое окно браузера, размер которого можно изменить (поскольку встроенное приложение <iframe>, содержащее показанный выше пример, является его окном просмотра). Откройте пример, измените размер окна браузера и посмотрите, что происходит с размером поля и текста.

Размеры объектов задаваемые в соответствии с вьюпортом могут быть полезны в ваших проектах. Например, если вы хотите, чтобы основная секция отображалась перед остальным контентом, установите для этой части страницы высоту 100vh, это приведет к выталкиванию остального контента ниже видимой области, что означает, что он появится только после того, как страницу прокрутят вниз.

Проверьте свои навыки!

В этой статье мы рассмотрели многое, но можете ли вы вспомнить самую важную информацию? Вы можете найти дополнительные тесты, чтобы убедиться, что вы сохранили эту информацию, прежде чем двигаться дальше — см. Проверка своих навыков: задание размеров (en-US).

Заключение

Этот урок дал вам краткое изложение некоторых ключевых проблем, с которыми вы можете столкнуться при определении размеров объектов в Интернете. Когда вы перейдете к CSS раскладке, изменение размеров станет очень важным для освоения различных методов раскладки, поэтому перед тем, как двигаться дальше, стоит разобраться в концепциях.

  • Назад
  • Обзор: Building blocks
  • Далее

В этом модуле

likeapimp

6 / 6 / 2

Регистрация: 24.12.2011

Сообщений: 223

1

Как настроить высоту страницы

27.07.2012, 16:19. Показов 8629. Ответов 12

Метки нет (Все метки)


Фон контента отображается по разному на разных страницах. Как сделать чтобы высота всегда одинаковая была?

CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
html {width:100%;height:100%; color:#E8E3D1; font-family:"Verdana", Times, serif; font-size:11pt; font-weight:500}
body { position:relative; height:100%; min-height:100%; height:1400 !important; background-image:url([url]http://by-servers.ru/DLENG/templates/Gemini/img/wrapper-bg.jpg);[/url]
background-color:#000;
background-repeat-x: no-repeat;
background-repeat-y: repeat;
background-attachment:fixed;
background-position-x: 50%;
background-position-y: 0%;
background-origin: initial;
background-clip: initial;
}
 
p{padding-left:10px; padding-right:10px; text-indent:20px; text-align:justify}
#container {position:absolute; width:100%; height:100%; margin:auto; text-align:center}
#main {position:relative; width:950px; min-height:100%; margin:auto; text-align:left; background-color:#333; padding-bottom:0px}
#header {position:relative; width:100%; height:550px; background-color:#333}
#nav {position:absolute; width:100$; height:50px; line-height:50px;}
#nav_item {position:relative; padding:15px; height:50px; color:#C5BC98}
#nav_item:hover {color:#F80}
.choosen {background:#666}
 
#social {position:absolute; height:50px; right:0px; padding-top:10px; padding-right:10px;}
#logo {position:absolute; bottom:0px;}
 
#sidebar {position:relative; width:313px; height:100%; float:right}
#content {position:relative; width:610px; height:100%; padding:9px;}
#footer {height:45px; background:#000; bottom:0px; text-align:center}

Скрин — https://www.cyberforum.ru/atta… 1343391500

Миниатюры

Как настроить высоту страницы
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

27.07.2012, 16:19

Ответы с готовыми решениями:

Отзывчивый дизайн: настроить навигацию, сделать автоматическую высоту страницы
Господа, разбираюсь с отзывчивым дизайном (responsive design), создал страничку, но есть несколько…

Как подогнать высоту страницы под высоту экрана?
Здравствуйте, друзья!
Подскажите, пожалуйста, как сделать так, чтобы высота страницы (например вот…

Как уменьшить высоту страницы?
Сверстал страницу, но появились полосы прокрутки по вертикали и горизонтали. По горизонтали убрал,…

Как сделать сайдбар на всю высоту страницы?
http://arhicentr.com/projects/public_buildings_and_complexes/cafe_50_seats_on_a_street_karasun_quay_…

12

7 / 7 / 0

Регистрация: 27.07.2012

Сообщений: 40

27.07.2012, 16:46

2

Найдите в интернете информацию — «Как прибить Footer к низу». Информации много, пробуйте!)



0



6 / 6 / 2

Регистрация: 24.12.2011

Сообщений: 223

27.07.2012, 17:30

 [ТС]

3

Цитата
Сообщение от AkaVirt
Посмотреть сообщение

Найдите в интернете информацию — «Как прибить Footer к низу». Информации много, пробуйте!)

есть готовый пример?



0



84 / 84 / 1

Регистрация: 19.01.2011

Сообщений: 442

27.07.2012, 17:34

4

Та там не в футере дело, походу. В таких шаблонах часто футер не цепляют жестко к низу. Судя по картинке, я бы прописал в CSS overflow:hidden блоку #main



0



6 / 6 / 2

Регистрация: 24.12.2011

Сообщений: 223

27.07.2012, 17:37

 [ТС]

5

Цитата
Сообщение от rean1mator
Посмотреть сообщение

Та там не в футере дело, походу. В таких шаблонах часто футер не цепляют жестко к низу. Судя по картинке, я бы прописал в CSS overflow:hidden блоку #main

не помогло, когда так прописать получается следующее: отображается фон контенте/потом футер/потом опять контент



0



84 / 84 / 1

Регистрация: 19.01.2011

Сообщений: 442

27.07.2012, 18:15

6

а можно ещё HTML поглядеть?

А вообще сайт в инете есть? проще было бы проблему найти



0



6 / 6 / 2

Регистрация: 24.12.2011

Сообщений: 223

27.07.2012, 18:18

 [ТС]

7

Цитата
Сообщение от rean1mator
Посмотреть сообщение

а можно ещё HTML поглядеть?

А вообще сайт в инете есть? проще было бы проблему найти

отправил л.с.



0



84 / 84 / 1

Регистрация: 19.01.2011

Сообщений: 442

27.07.2012, 18:28

8

блоку #main напишите дополнительно height:100%

И ещё вопрос: А требуется прижатие футера к низу?
У Вас ещё и блок Container не тянется как надо. Грубо говоря, не обращает внимания на вложенные блоки. Вот тут обычно overflow:hidden и спасает. И для чего этому блоку абсолютное позиционирование?

При position:absolute другие блоки ведут себя так, будто блока с position:absolute не существует



1



6 / 6 / 2

Регистрация: 24.12.2011

Сообщений: 223

27.07.2012, 18:38

 [ТС]

9

Цитата
Сообщение от rean1mator
Посмотреть сообщение

блоку #main напишите дополнительно height:100%

И ещё вопрос: А требуется прижатие футера к низу?
У Вас ещё и блок Container не тянется как надо. Грубо говоря, не обращает внимания на вложенные блоки. Вот тут обычно overflow:hidden и спасает. И для чего этому блоку абсолютное позиционирование?

При position:absolute другие блоки ведут себя так, будто блока с position:absolute не существует

не помогло, пропал фон, а ошибка осталась



0



rean1mator

84 / 84 / 1

Регистрация: 19.01.2011

Сообщений: 442

27.07.2012, 19:22

10

попробуйте перед футером поставить

HTML5
1
<div id="clear"></div>

и стиль ему

CSS
1
2
3
4
5
#clear {
        height:0px;
    font-size:1px;
    line-height:0px;
    clear:both;}

Добавлено через 5 минут
А ели футер прижимать к низу, то до футера пишем

HTML5
1
2
3
<div id="clear"></div>
<div id="rasporka">
</div>

а в стиль

CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#clear {
    height:0;
    font-size:1px;
    line-height:0px;
    clear:both;}
 
#rasporka {
    height:89px;}
 
#footer {
    position:relative;
    bottom:0px;
    margin-top:-89px;
    min-width:950px;
    height:89px;

При этом сам футер выносим из всех дивов и, в том числе, из Container

только размеры Ваши ставьте



1



6 / 6 / 2

Регистрация: 24.12.2011

Сообщений: 223

28.07.2012, 14:06

 [ТС]

11

Цитата
Сообщение от rean1mator
Посмотреть сообщение

попробуйте перед футером поставить …

спасибо большое! помогло!



0



9 / 9 / 3

Регистрация: 14.12.2010

Сообщений: 129

28.07.2012, 23:58

12



0



1 / 1 / 0

Регистрация: 15.10.2020

Сообщений: 18

16.04.2022, 17:32

13

Эм…. не думали прописать в css-стилях футера:

Код

position: fixed;
bottom: 0;

????

А чтобы размер нигде не менялся:

используйте именно vw. этот стандарт всегда одиноков для всех компьютеров



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

16.04.2022, 17:32

13

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить высоту grid ячейки
  • Как изменить высокоскоростное подключение на обычное
  • Как изменить вырез лодочка на платье
  • Как изменить вырез камеры на samsung а32
  • Как изменить вырез камеры на samsung a51

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии