Домашняя » кодирование » Руководство по CSS Viewport Units vw, vh, vmin, vmax

    Руководство по CSS Viewport Units vw, vh, vmin, vmax

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

    Хотя Документация W3C в единицах окна просмотра содержится все, что можно ввести в теорию, оно не очень многословно. Итак, в этой статье мы рассмотрим, как эти модули CSS работать на практике.

    Высота окна просмотра (В.Х.) & ширина области просмотра (оч.сл.)

    W3C определяет область просмотра как “размер исходного содержащего блока”. Другими словами, область просмотра является областью содержится в окне браузера или любая другая область просмотра на экране.

    оч.сл. а также В.Х. единицы стоять в процентах от ширины и высоты фактического окна просмотра. Они могут принять значение от 0 до 100 согласно следующим правилам:

     100vw = 100% ширины области просмотра 1vw = 1% ширины области просмотра 100vh = 100% высоты области просмотра 1vh = 1% высоты области просмотра 
    Различия в процентах

    Итак, чем же отличаются единицы просмотра в процентах от единиц измерения в процентах? Процентные единицы наследовать размер своего родительского элемента в то время как единицы просмотра окна не делают. Единицы просмотра всегда рассчитываются как процент от размера области просмотра. В результате элемент, определяемый единицами просмотра, может превышать размер своего родителя..

    Пример: полноэкранные разделы

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

    HTML довольно прост; у нас просто есть три раздела друг под другом и мы хотим, чтобы каждый из них покрыть весь экран (но не более).

      

    В CSS мы используем 100vh как рост значение и 100% как ширина. Мы не используем оч.сл. блок здесь как по умолчанию, полосы прокрутки также добавлены в размер области просмотра. Итак, если мы использовали ширина: 100 кВт; править горизонтальная полоса прокрутки появится на нижняя часть окна браузера.

     * поле: 0; отступы: 0;  раздел background-size: cover; background-position: center; ширина: 100%; высота: 100vh;  .section-1 background-image: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img1.jpg');  .section-2 background-image: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img2.jpg');  .section-3 background-image: url ('https://assets.hongkiat.com/uploads/css-viewport-units-vw-vh-wmin-vmax/img3.jpg');  

    На демоверсии GIF ниже, вы можете увидеть, что В.Х. является действительно отзывчивый блок.

    Согласно документам W3C, вышеупомянутые горизонтальная полоса прокрутки может быть решена путем добавления переполнение: авто; Правило для корневого элемента. Это решение работает только частично, хоть. Горизонтальная полоса прокрутки, действительно, исчезает, но ширина является по-прежнему рассчитывается на основе ширины области просмотра (боковая панель включена), поэтому элементы будут немного больше, чем должны быть.

    Я бы сказал, я бы не посмел использовать оч.сл. блок на подбор полноэкранных элементов по этой причине. Нам это даже не нужно, так как ширина: 100%; Правило работает отлично. С полноэкранными макетами настоящей проблемой всегда было то, как установить правильное значение высоты и В.Х. блок дает блестящее решение для этого.

    Другие варианты использования

    Если вы заинтересованы в другие варианты использования оч.сл. а также В.Х. У Lullabot есть отличная статья, в которой перечислены горстка реальных примеров (с демонстрационными примерами Codepen), такими как:

    • Карты с фиксированным соотношением.
    • Держать элемент короче экрана.
    • Масштабирование текста.
    • Вырваться из контейнера.

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

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

    Окно просмотра мин (Vmin) & макс. область просмотраVmax)

    Vmin а также Vmax единицы позволяют вам получить доступ к размер меньшей или большей стороны окна просмотра, в соответствии со следующими правилами:

     100vmin = 100vw или 100vh, в зависимости от того, что меньше 1vmin = 1vw или 1vh, в зависимости от того, что меньше 100vmax = 100vw или 100vh, в зависимости от того, что больше 1vmax = 1vw или 1vh, в зависимости от того, что больше 

    Итак, в случае книжная ориентация, 100vmin равно 100vw, как окно просмотра меньше по горизонтали, чем по вертикали. По той же причине, 100vmax будет равен 100vh.

    Точно так же в случае альбомная ориентация, 100vmin равно 100vh, как окно просмотра меньше по вертикали, чем по горизонтали. И, конечно же,, 100vmax будет равен 100vw Вот.

    Пример: сделать тексты героев удобочитаемыми на каждом экране

    Vmin а также Vmax единицы гораздо менее широко известны, чем оч.сл. а также В.Х.. Тем не менее, они могут быть превосходно использованы в качестве заменить ориентацию @средства массовой информации запросы. Например, Vmin а также Vmax может пригодиться, если у вас есть элементы, которые могут выглядеть странно в разных пропорциях.

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

    Вот основная идея их решения:

     h1 font-size: 20vmin; семейство шрифтов: авенир, без засечек; вес шрифта: 900; выравнивание текста: по центру;  

    В демоверсии Codepen вы можете проверить, как Vmin решает проблему читабельности текстов героев. Доступ к “Полная страница” посмотреть на Codepen, то изменить размер окна вашего браузера как по горизонтали, так и по вертикали, чтобы увидеть, как меняется текст героя.

    Поддержка браузера

    Как вы можете видеть на графике CanIUse ниже, поддержка браузера относительно хорошая для единиц просмотра. Однако имейте в виду, что некоторые версии IE и Edge не поддерживают Vmax. Кроме того, iOS 6 и 7 имеют проблемы с В.Х. единица измерения, который был исправлен в iOS 8.