@ymfront

Как сделать масштабирование верстки при заполнении всей ширины экрана?

Есть страница, которая занимает все свободное пространство и масштабируется по высоте. Но если страница не помещается по ширине, то появляется горизонтальная полоса прокрутки.

LprCpTOq6T-min.gif

Как можно сделать, чтобы страница также масштабировалась и при заполнении всей ширины экрана? И чтобы при этом осталось масштабирование по высоте.

Для тега html указан размер шрифта font-size: 1vmin. И все остальные расчеты размеров идут относительно него.

HTML-код страницы:

<div class="main">

    <img class="logo" src="./img/logo.png" alt="logo">
    <img class="header" src="./img/header.png" alt="header">
    <img class="text" src="./img/text.png" alt="text">

    <div class="wheel_wrapper">
        <img class="wheel" src="./img/wheel.png" alt="wheel">
        <img class="marker" src="./img/marker.png" alt="marker">
        <img class="spin_button" src="./img/spin_button.png" alt="spin button">
    </div>

</div>


CSS-код страницы:

html {
    height: 100%;
    font-size: 1vmin;
}

body {
    height: 100%;
    background: #141414 url("../img/bg_desktop.jpg") center top no-repeat;
    background-size: cover;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    cursor: default;
}

.main {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 4rem 0 0;
    min-height: 100%;
    position: relative;
}

.logo {
    display: block;
    margin: 0 0 5rem;
    width: auto;
    height: 7.8rem;
}

.header {
    display: block;
    margin: 0 0 6rem;
    width: auto;
    height: 11rem;
}

.text {
    display: block;
    width: auto;
    height: 14.2rem;
    position: absolute;
    top: 57rem;
    left: 50%;
    transform: translateX(-49.7%);
}

.wheel_wrapper {
    width: 62rem;
    height: 62rem;
    position: relative;
}

.wheel_wrapper .wheel {
    display: block;
    width: 100%;
    height: auto;
}

.wheel_wrapper .marker {
    display: block;
    width: 5.8rem;
    height: auto;
    position: absolute;
    top: -0.4rem;
    left: 50%;
    transform: translateX(-47%);
}

.wheel_wrapper .spin_button {
    display: block;
    width: 29rem;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-47%, -50%);
}
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
@ymfront Автор вопроса
Пришел к следующему решению:

1. Для тега HTML указываем размер не в vmin, а в vh.

html {
    font-size: 1vh;
}


2. Определяем пропорции ширины контентной части к высоте, и делаем медиазапрос, в котором меняем единицу измерения с vh на vw:

@media screen and (max-width: 113vh ) {
    html {
        font-size: 1vw;
    }
    /* для всех элементов указываем новые размеры относительно ширины экрана, а не высоты */
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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