htmlcssverstka
@htmlcssverstka
Верстка сайтов

Как адаптировать сайт по высоте?

https://moydon.ru/
нужно что бы при любом расширении экрана страница по высоте была без скрола. Сейчас на больших расширениях экрана хорошо всё, а на меньших - страницы не помещаются.
Как это правильно сделать? Под какие расширения писать media-запросы.
  • Вопрос задан
  • 1659 просмотров
Решения вопроса 1
yarhosting
@yarhosting
Заказывайте программинг: PHP,SQL, JS,jQuery,Joomla
Лучше всего сделать разбивку согласно стандартным расширениям экрана на несколько групп, аналогично как это сделано в bootstrap по ширине (https://bootstrap-4.ru/docs/4.1/layout/overview/)

Потом в эту разбивку по высоте проще будет подгонять все страницы и элементы дизайна

например:

Некий блок в верху главной страницы, например с менюшкой или главным слоганом должен красиво смотреться имея разный шрифт, отступ и ширину - будет выглядеть примерно так:

@media screen and (max-height: 600px) { 
	.div{
		font-size:10px;
		height:40px;
		margin-top:30px;
	}
}
@media screen and (min-height: 600px) and (max-height: 768px) { 
	.div{
		font-size:10px;
		height:50px;
		margin-top:50px;
	}
}
@media screen and (min-height: 768px) and (max-height: 960px) { 
	.div{
		font-size:14px;
		height:100px;
		margin-top:70px;
	}
}
@media screen and (min-height: 960px) and (max-height: 1024px) { 
	.div{
		font-size:16px;
		height:150px;
		margin-top:100px;
	}
}
@media screen and (min-height: 1024px) { 
	.div{
		font-size:18px;
		height:180px;
		margin-top:150px;
	}
}


Как правило, чтобы не путаться с плавающими по высоте блоками делают их: position:absolute; width:100% и задают им top или margin-top а уже внутри делают контейнер с плавающей шириной и margin: 0 auto;. Под эти блоки как правило делают див с фоновой картинкой в размер экрана

section {
	position:absolute;
	width: 100%; /* ширина секции равна ширине области просмотра */
	height: 100vh; /* высота секции равна высоте области просмотра */
}


Из важного: не ленитесь писать screen, чтобы эти правила распространялись только на экранную разбивку и делайте в конце отдельно printверсию с совершенно другим дизайном под А4 ;)

Вот пример разбивки блоков по высоте (шапка на главной) https://cf-dynamite.ru/

Если плавающих по высоте элементов не много (например какойто текст призывающий к действию и кнопка на фоне картинки с весь экран), то можно использовать проценты от высоты экрана height: XXXvh; и распределить элементы относительными блоками внутри блока с размерами экрана.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sk1llmuf
@sk1llmuf
frontend
Уменьшать отступы и все что только есть
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы