Css height 100 не работает — Dudom
Обычно свойство height , указанное в процентах, означает высоту относительно внешнего блока.
Однако, всё не так просто. Интересно, что для произвольного блочного элемента height в процентах работать не будет!
Чтобы лучше понимать ситуацию, рассмотрим пример.
Пример
Наша цель – получить вёрстку такого вида:
При этом блок с левой стрелкой должен быть отдельным элементом внутри контейнера.
Это удобно для интеграции с JavaScript, чтобы отлавливать на нём клики мыши.
То есть, HTML-код требуется такой:
Как это реализовать? Подумайте перед тем, как читать дальше…
Придумали. Если да – продолжаем.
Есть разные варианты, но, возможно, вы решили сдвинуть .toggler влево, при помощи float:left (тем более что он фиксированной ширины) и увеличить до height: 100% , чтобы он занял всё пространство по вертикали.
Вы ещё не видите подвох? Смотрим внимательно, что будет происходить с height: 100% …
Демо height:100% + float:left
А теперь – посмотрим этот вариант в действии:
Как видно, блок со стрелкой вообще исчез! Куда же он подевался?
Ответ нам даст спецификация CSS 2. 1 пункт 10.5.
«Если высота внешнего блока вычисляется по содержимому, то высота в % не работает, и заменяется на height:auto . Кроме случая, когда у элемента стоит position:absolute .»
В нашем случае высота .container как раз определяется по содержимому, поэтому для .toggler проценты не действуют, а размер вычисляется как при height:auto .
Какая же она – эта автоматическая высота? Вспоминаем, что обычно размеры float определяются по содержимому (10.3.5). А содержимого-то в .toggler нет, так что высота нулевая. Поэтому этот блок и не виден.
Если бы мы точно знали высоту внешнего блока и добавили её в CSS – это решило бы проблему.
Почему, когда в height пишешь в px всё нормально, а когда в процентах, как на рисунке, ничего не работает? height в процентах нельзя делать?
4 ответа 4
Если вы берете проценты, их нужно брать от чего то Т.е. либо пропишите, как сказано выше
либо укажите в родительском элементе тоже самое
Конечно 100% можно использовать, но я бы вам советовал использовать так называемые viewport меры. (vh, vw, vmin, vmax)
Не хватает только прописать body, html .
Стереть можно , у меня так получилось.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками html вёрстка css стиль или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.10.35756
Пишу такие стили
в итоге body не 100%в высоту и соответсветнно intro тоже не растягивается
- Вопрос задан более трёх лет назад
- 2245 просмотров
Что делает этот код? Для чего все эти свойства?
Для чего вы и так блочным элементам даёте 100% ширину? Так как в данном коде width: 100% ну вообще не нужно!
По делу:
Учите наследование! % всегда берутся от родительского элемента. И если размер у родителя не указан, то и проценты не сработают!
У body родитель html, а у html окно браузера. Что бы растянуть body на 100%, нужно сначала html дать 100%, а потом body, а потом вашему #intro. Вот тогда #intro растянется на 100%.
Как сделать div со 100% height
Программирование на Python для начинающих
Бесплатный курс по Python даст Вам всю необходимую базу для начала программирования на языке Python. В курсе Вас ждёт множество уроков (больше 4-х часов видео), исходников и упражнений.
Чтобы получить Видеокурс,
заполните форму
E-mail: | |
Имя: | |
Другие курсы
Как создать профессиональный Интернет-магазин
После семинара:
— Вы будете знать, как создать Интернет-магазин.
— Вы получите бесплатный подарок с подробным описанием каждого шага.
— Вы сможете уже приступить к созданию Интернет-магазина.
Записаться
Другие курсы
Научитесь любить ад и окажетесь в раю.
Пифагор
При блочной вёрстке часто требуется сделать у блока div высоту 100%
. Простым указанием height=100% в div не получится добиться желаемого результата, поэтому тут есть определённая методика, о которой я в этой статье расскажу.Прежде чем приводить код, объясню принцип его работы. Его суть состоит в том, чтобы указывать height=100% у всех родительских блоков, в том числе, и у html. Например, вот этот код позволяет сделать div с высотой 100%:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>DIV со 100% height</title>
<style type="text/css">
html, body {
height: 100%;
}
div {
height:100%;
background-color: #f00;
}
div div {
background-color: #0f0;
width: 50px;
}
</style>
</head>
<body>
<div>
<div>Текст</div>
</div>
</body>
</html>
В результате, оба div будут высотой 100%. Обратите внимание, что если убрать у html height 100%, то уже ничего не выйдет. Аналогично, если у верхнего div убрать height 100%, а у внутреннего оставить, то внутренний не будет со 100% высотой. То есть помните, чтобы сделать div со 100% height необходимо каждый родительский блок так же сделать со 100% высотой.
- Создано 03.05.2013 12:01:09
- Михаил Русаков
Предыдущая статьяСледующая статья
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
<a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a>Она выглядит вот так:
- Текстовая ссылка:
<a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a> - BB-код ссылки для форумов (например, можете поставить её в подписи):
[URL=»https://myrusakov.ru»]Как создать свой сайт[/URL]
html — Сделать тело равным 100% высоты браузера
Большинство других решений, размещенных здесь, будут , а не хорошо работать в устаревших браузерах! И некоторые из опубликованного кода вызовут неприятное переполнение текста выше 100% высоты в современных браузерах, где текст выходит за пределы цветов фона, что является плохим дизайном! Поэтому, пожалуйста, попробуйте мое кодовое решение.
Приведенный ниже код CSS должен корректно поддерживать гибкие настройки высоты веб-страницы во всех известных браузерах, как в прошлом, так и в настоящем:
HTML { высота: 100%; /* Резервный CSS для IE 4-6 и более старых браузеров. Примечание. Без этого параметра высота тела ниже не может достигать 100 %. */ height: 100vh;/* Переопределяет 100% высоту в современных браузерах HTML5 и использует высоту области просмотра. Работает только в современных браузерах HTML5 */ } тело { высота: авто; /* Позволяет содержимому выходить за пределы страницы без переполнения */ ширина: авто; /* Позволяет содержимому выходить за пределы страницы без переполнения */ минимальная высота: 100%; /* Начинает веб-страницу со 100% высотой. Запасной вариант для IE 4-6 и более старых браузеров */ min-height: 100vh;/* Начинает веб-страницу со 100% высотой. Использует высоту области просмотра. Работает только в современных браузерах HTML5 */ overflow-y: scroll;/* Необязательно: Добавляет пустую полосу прокрутки к правому краю на случай, если содержимое будет расти вертикально, создавая полосу прокрутки. Позволяет лучше рассчитывать ширину, так как браузер предварительно вычисляет ширину до появления полосы прокрутки, избегая смещения содержимого страницы.*/ маржа: 0; заполнение: 0; background:yellow;/* добавьте текст на страницу и убедитесь, что этот цвет фона всегда заполняет экран! */ }
ПРИМЕЧАНИЯ К КОДУ ВЫШЕ
Во многих старых, а также в новых браузерах, если вы не установите 100% высоты в селекторе
, body никогда не достигнет 100% высоты! Так что здесь это критично.
Новые единицы области просмотра («vh») являются избыточными в селекторе body и не нужны, если вы установили селектор
html
на высоту 100%
или 100vh
. Причина в том, что тело
всегда получает свои значения из html
родитель. Исключением являются несколько очень старых браузеров из прошлого, поэтому лучше всего установить какое-то значение высоты для тела.
Некоторые современные браузеры, использующие селектор body
, не знают, как напрямую наследовать высоту окна просмотра. Итак, еще раз, всегда устанавливайте селектор html
на 100% высоты! Однако вы все еще можете использовать единицы «vh» в body
, чтобы обойти родительское значение html
и получить размеры его свойств непосредственно из окна просмотра в большинстве современных браузеров. Но опять же, это необязательно, если родитель или корень 9Селектор 0019 html имеет высоту 100%
, которая body
всегда будет правильно наследоваться.
Обратите внимание, что я установил body
на height:auto
, а не height:100%
. Это изначально сворачивает элемент body
вокруг контента, чтобы он мог расти по мере роста контента. Вы НЕ хотите устанавливать body
height
и width
на
или конкретные значения , поскольку это ограничивает содержимое вертикальными размерами тела. Каждый раз, когда вы назначаете тело height:100%
, как только текст содержимого выходит за пределы высоты браузера, он переполняет контейнер и, следовательно, любые фоны, назначенные исходной высоте области просмотра, создавая уродливый визуальный эффект! height:auto
— ваш лучший друг в CSS!
Но вы по-прежнему хотите, чтобы высота тела по умолчанию равнялась 100%, верно? Вот где min-height:100%
творит чудеса! Это не только позволит вашему элементу body иметь высоту 100% по умолчанию, но это работает даже в самых старых браузерах! Но лучше всего то, что он позволяет вашему фону заполниться на 100% и при этом растянуться дальше вниз, поскольку контент с высотой: автоматически растет по вертикали.
Использование свойств overflow:auto
не требуется, если вы установите height:auto
на теле
. Это говорит странице о том, что содержимое может увеличиваться по высоте до любого необходимого размера, даже за пределы высоты области просмотра, если это необходимо, и содержимое становится длиннее, чем отображение страницы области просмотра. Из кузова
габаритов не вылезет. И это позволяет прокручивать по мере необходимости. overflow-y:scroll
позволяет добавить пустую полосу прокрутки справа от содержимого страницы по умолчанию в каждом веб-браузере. Полоса прокрутки появляется только внутри области полосы прокрутки, если содержимое выходит за пределы 100% высоты области просмотра. Это позволяет браузеру заранее рассчитать ширину страницы и любые поля или отступы и предотвратить смещение страниц, когда пользователи просматривают страницы с прокруткой и страницы без прокрутки. Я часто использую этот трюк, так как он идеально устанавливает ширину страницы для всех сценариев, и ваши веб-страницы никогда не будут смещаться и загружаться молниеносно!
Я считаю, что height:auto
используется по умолчанию для body
в большинстве таблиц стилей браузера UA. Так что поймите, что большинство браузеров по умолчанию используют это значение.
Добавление min-height:100%
дает вам высоту по умолчанию, которую вы хотите иметь body
, а затем позволяет размерам страницы заполнять окно просмотра без выхода содержимого из тела. Это работает только потому, что html
получил свою 100%-ю высоту на основе окна просмотра.
Две КРИТИЧЕСКИЕ части здесь не единицы, как %
или vh
, но убедитесь, что корневой элемент или html
установлен на 100% высоты области просмотра. Во-вторых, важно, чтобы тело имело min-height:100%
или min-height:100vh
, поэтому оно начинает заполнять высоту области просмотра, какой бы она ни была. Больше ничего кроме этого не нужно.
СТИЛИРОВАНИЕ ВЫСОТЫ ДЛЯ УСТАРЕВШИХ БРАУЗЕРОВ
Обратите внимание, что я добавил свойства «отката» для height
и min-height
, так как многие браузеры до 2010 года не поддерживают единицы измерения окна просмотра «vh». Забавно притворяться, что все в веб-мире используют самые последние и лучшие, но реальность такова, что многие устаревшие браузеры все еще используются в крупных корпоративных сетях, и многие до сих пор используют устаревшие браузеры, которые не понимают эти новые устройства. Одна из вещей, о которой мы забываем, это то, что многие очень старые браузеры не знают, как правильно заполнить высоту области просмотра. К сожалению, эти устаревшие браузеры просто должны были иметь height:100%
как для элемента html
, так и для тела
, поскольку по умолчанию они оба свернуты по высоте по умолчанию. Если вы этого не сделаете, цвета фона браузера и другие странные визуальные эффекты будут появляться под контентом, который не заполняет область просмотра. Приведенный выше пример должен решить все это за вас и по-прежнему работать в новых браузерах.
До современных браузеров HTML5 (после 2010 г.) мы решили эту проблему, просто установив height:100%
как для html
, так и для body
селекторов или просто min-height:100%
на body
. Таким образом, любое решение позволяет приведенному выше коду работать в более чем 20-летних устаревших веб-браузерах, а не в нескольких, созданных за последние пару лет. В старых сериях Netscape 4 или IE 4-5 использование min-height:100%
вместо height:100%
в селекторе body все еще могло привести к падению высоты в этих очень старых браузерах и вызвать переполнение цвета фона текста. . Но это была бы единственная проблема, которую я мог видеть с этим решением.
Используя мое решение CSS, вы теперь позволяете своему веб-сайту правильно отображаться в 99,99% браузеров, прошлых и настоящих , а не только в 60%-80% браузеров, созданных за последние несколько лет.
Удачи!
Высота CSS 100 Не работает с примерами кода
Высота CSS 100 не работает с примерами кода
Привет, ребята, в этом посте мы рассмотрим, как найти решение Css Height 100 Not Working в программировании.
.элемент{ высота:100вх; // vh обозначает высоту окна просмотра }
Как мы видели, код проблемы Css Height 100 Not Working был решен с использованием нескольких разных экземпляров.
Как сделать так, чтобы мой рост работал на 100 %?
Высота % основана на его родительском элементе (поэтому вам нужно установить для каждого элемента над целевым элементом значение 100%), однако есть несколько обходных путей. Например, вы можете установить высоту: 100vh; Это создаст элемент на 100% высоты вашего окна. Или вы можете использовать px вместо этого.
Как использовать высоту 100 в CSS?
Синтаксис: Чтобы установить высоту элемента div равной 100% окна браузера, можно просто использовать следующее свойство CSS: height:100vh; Пример: HTML.17 августа 2022 г.
.Почему 100vh не работает?
Это вызвано тем, что поле по умолчанию составляет 8 пикселей, поэтому переопределение его с помощью CSS исправит его.
Что делает высота HTML 100%?
Заключение. Если для HTML-элемента не указано значение высоты, установка высоты и/или минимальной высоты элемента body на 100 % приводит к отсутствию высоты (до добавления содержимого). 17 февраля 2021 г.
Как установить максимальную высоту в CSS?
Свойство max-height в CSS используется для установки максимальной высоты указанного элемента. Авторы могут использовать любые значения длины, если они являются положительным значением. max-height переопределяет высоту, но min-height всегда переопределяет max-height .15-Jan-2021
Как автоматически настроить высоту в CSS?
Если высота: авто; элемент автоматически отрегулирует свою высоту, чтобы его содержимое отображалось правильно. Если для высоты задано числовое значение (например, пиксели, (r) em, проценты), то, если содержимое не соответствует указанной высоте, оно будет переполнено.
Как сделать высоту div 100 относительно родителей?
Ответ: Установите высоту 100 % и для родителей. И все мы знаем, что значение свойства height по умолчанию — auto , поэтому, если мы также установим высоту элементов
и на 100 %, результирующая высота контейнер div становится равным 100% высоте окна браузера.