nastya97core
@nastya97core
Начинающий программист

С помощью каких стилей или скриптов можно добиться масштабирования сайта?

Здравствуйте. Я уже давно сижу во вконтакте с масштабом 150% и иначе сайт уже не воспринимаю. Вот так он выглядит в оригинале на fullhd мониторе:
60551f128b21e907842949.png
а вот так сайт обычно вижу я
60551f241b5cb285919201.png
Такой масштаб я получаю, крутя колёсико с зажатым Ctrl.

У меня возник вопрос: а как получить такой же эффект, но используя лишь код?
В голову сразу пришла мысль: сделать
// но только для блоков, а не для body
transform: scale(1.5);
transform-origin: top;

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

Для чего это надо?
А нужно мне это для адаптивности. Порой не хочется делать отдельную версию для fullhd, и ограничиться самым большим макетом в 1000px. На fullHd это выглядит мелко и нелепо. Масштаб бы исправил ситуацию.

Скажите, с помощью каких стилей или скриптов можно организовать грамотный масштаб?
  • Вопрос задан
  • 313 просмотров
Пригласить эксперта
Ответы на вопрос 3
serjikz
@serjikz
web-developer
Можно сделать полностью резиновый сайт, который будет вменяемо смотреться на любом разрешении и получится как раз то, что вы хотите.

Да, будет много @media, в частности сейчас у нас на проекте 21 media с изменениями размера шрифта, а все размеры полностью в rem и сайт резиновый.

Да, это долбеж с размерами шрифта, да есть нюансы с выстраиванием некоторых элементов, но это вполне реально и сайт выглядит правильно. Хочется прям что-то дико огромное типа 8k – пожалуйста, просто больше @media.

По итогу ваша задача – выбрать нужные размеры для всех разрешений, посмотреть, на каких @media нужно менять размер шрифта и на какое значение (шаг в px у нас к примеру иногда 2 иногда 1.5 иногда 1).

Если хочется пример – ну вот такой балаган будет:
Хотите вы с этим возиться? Если да – то видимо вам хорошо платят за это, но за 100k я б таким не морочился.
Ответ написан
ThunderCat
@ThunderCat Куратор тега CSS
{PHP, MySql, HTML, JS, CSS} developer
возможно вам надо плясать от этого: https://stackoverflow.com/questions/24209628/how-t...
Ответ написан
tundramani
@tundramani
сделай весь контент в КОНТЕЙНЕРЕ с фиксированными размерами
например для фул хд это: 960х540 цсс пикселей

в этом контейнере сделай прокрутку

и вызывай эту функцию при начальной загрузке и при изменении размера экрана:

var адаптировать_размер = function()
	{

		var ширина = document.body.clientWidth
		var высота = document.body.clientHeight

		if(высота >= ширина)
			{
				var отношение = ширина / 960
				КОНТЕЙНЕР.style.transform = "scale("+ отношение +")"
			}
		else
			{	
				var соотношение = ширина / высота
				if(соотношение > 1.77)
				{
					var отношение = высота / 540
					КОНТЕЙНЕР.style.transform = "scale("+ отношение +")"

				}
				else
				{
					var отношение = ширина / 960
					КОНТЕЙНЕР.style.transform = "scale("+ отношение +")"
				}
			}
	}


стили:
body 
  { 
    position: fixed;    
    bottom: 0px;
    left: 0px;
display: flex;
justify-content: center;
align-items: center;
}
#КОНТЕЙНЕР
	{
		width: 960px;
		height: 540px;
		flex-shrink:0; 
	}


в итоге контейнер будет всегда в центре экрана и занимает всю ширину экрана
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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