Можно ли изменить размер веб-страницы для разных разрешений экрана при сохранении заданного соотношения сторон, заданного заданной высотой и шириной?

0

Я установил высоту и ширину моего родительского div:

width:1060px;
height:650px;

Это дает мне представление о размерах в Chrome на моем ноутбуке 720, но когда я подключаю 1080 ТВ через HDMI, это слишком мало на экране. Интересно, есть ли способ изменить размер родительского div для сохранения того же расстояния, которое я получаю от верхнего/нижнего/правого/левого для отношения 16: 9.

Теги:

3 ответа

0
Лучший ответ

Да, вам нужно каждый раз вызывать изменение размера в контейнере при изменении ориентации с помощью js, а затем вычислять пропорции вашей ширины ширины, а затем изменять размер вашего контейнера на экран. Затем увеличивайте высоту экрана * желаемый аспект, затем этот результат это ваша ширина, а затем проверьте, не ли ваша ширина не меньше ширины экрана, если это не так, если истина делает то же самое, но в обратном направлении, разделяя ширину экрана/желаемое соотношение сторон. наконец, центрируйте свой контейнер на экране с помощью js или css.

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

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

РЕДАКТИРОВАТЬ,

Это что-то типа;

var ratio = 1060/650;

$(window).on('resize', function() {
    $('#container')
        .css({width: screen.width + 'px', height: screen.width*ratio + 'px'});
    if ($('#container').height() > screen.height) {
        $('#container')
            .css({width: screen.height/ratio + 'px',height: screen.height+'px'});
    }
    $('#container').css({left: (screen.width - $('#container').width()) / 2+'px',
                     top: (screen.height - $('#container').height()) / 2+'px'});

});

В jsfiddle не будет приятно, так как это использует экранную ширину (вы также можете использовать innerHeight, зависит от того, будете ли вы в полноэкранном режиме).

Не тестировал, но вот общая идея

  • 0
    Буэнас Сантьяго. Может быть, у вас есть JSFiddle, чтобы у меня была идея получше? (пожалуйста, обратитесь к моему комментарию к ответу Джозана). Грэкиас
  • 0
    @SurvMach проверь мои правки
0

Используйте CSS media Queries, чтобы указать стили для разных разрешений и размеров экрана. Ваш браузер будет выбирать соответствующий стиль в зависимости от размера порта просмотра.

Подробнее об этом читайте здесь → https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries

0

То, что вы хотите, - это отзывчивый дизайн. Чтобы изменить размер страницы, вы должны начать использовать проценты вместо фиксированной ширины.

Например, измените width:1060px; до width:90%; , Высота может оставаться неизменной, но если вы хотите, чтобы она стала выше, вы можете установить height:100% и она настраивается в соответствии с содержанием на странице.

Кроме того, вместо использования px для text-size используйте em. em процентам для текста.

Вот отличный учебник, который очень помог мне с отзывчивым дизайном.

  • 0
    Эй, спасибо за ответ. Дело в том, что я хочу сохранить соотношение сторон изображения, а также чтобы оно не изменялось, когда окно сжимается (и только тогда с полосами прокрутки). Хитрость здесь в том, чтобы сохранить относительный размер при переходе от 720 к 1080.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню