Перевод статьи «CSS Properties – Max-width, Min-width, Max-height, and Min-height Explained with Examples».

При создании сайта одна из самых важных задач — сделать его отзывчивым. То есть сайт должен хорошо выглядеть на экранах разных размеров. Для этого вам нужно управлять шириной и высотой элементов. А делать это при помощи медиа-запросов может быть непростой задачей.
В некоторых ситуациях вас могут выручить относительные единицы измерения, такие как проценты, но не всегда. Порой их применение приводит к катастрофическим результатам.
Помогут вам CSS-свойства max-width, min-width, max-height и min-height. Они позволяют решать некоторые задачи изменения размеров элементов без использования медиа-запросов.
Свойство max-width
С помощью свойства max-width можно установить максимальную ширину элемента. Это означает, что элемент может наращивать ширину, пок ане достигнет установленного предела (предел может быть как в абсолютных, так и в относительных единицах). Достигнув указанного ограничения, ширина фиксируется.
Рассмотрим пример. Представьте, что мы устанавливаем ширину элемента в 80% от зоны просмотра. Если зона просмотра — 375px, наш элемент будет иметь ширину 300px. При такой ширине качество не потеряется.
(80/100) * 375 = 300px
Но если зона просмотра у нас существенно больше, скажем, 1300px, ширина элемента станет 1040px.
(80/100) * 1300 = 1040px
Вот здесь нам пригодится свойство max-width. При использовании относительных единиц (процентов) добавление свойства max-width позволит увеличивать ширину элемента при увеличении размера зоны просмотра только до указанного предела.
Пример:
See the Pen max-width-example by King nelson (@D_kingnelson) on CodePen.
Обратите внимание: размер карточки ни при каких условиях не превышает 350px. Так работает свойство max-width. Благодаря ему можно обеспечить увеличение размера карточки на маленьких экранах.
Если ширина экрана меньше 350px, карточка займет 80% от имеющейся ширины. Но если достигнута планка в 350px, ширина перестает увеличиваться.
Вот как выглядит код:
.card{
margin:0 auto;
padding:1.5em;
width:80%;
max-width:350px;
height:50%;
background: #FFFFFF;
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
border-radius:4px;
overflow:hidden;
}
Свойство min-width
В противоположность свойству max-width, свойство min-width определяет минимальную ширину элемента.
В некоторых случаях вам может быть нужно, чтобы элемент имел гибкую ширину, поэтому вы задаете ее в относительных единицах, например, в процентах. Но при уменьшении размера экрана размер элемента тоже уменьшается, и порой слишком сильно.
Здесь вам поможет свойство min-width. С его помощью вы можете установить минимальный размер, до которого может уменьшиться элемент. Это важно, например, для кнопок.
See the Pen min-width-example by King nelson (@D_kingnelson) on CodePen.
Здесь элемент карточки не может стать меньше, чем 250px в ширину.
.card{
margin:0 auto;
padding:1.5em;
width:80%;
max-width:350px;
//here we set the min-width property
min-width : 250px;
height:50%;
background: #FFFFFF;
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
border-radius:4px;
overflow:hidden;
}
Свойство max-height
Свойство max-height работает аналогично свойству max-width, но регулирует не ширину, а высоту элемента.
Пример:
See the Pen max-height-example by King nelson (@D_kingnelson) on CodePen.
Здесь высота элемента фиксируется при достижении определенной высоты.
.card{
margin:0 auto;
padding:1.5em;
width:80%;
max-width:350px;
height:70%;
//here we set the max-height for the card.
max-height: 400px;
background: #FFFFFF;
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
border-radius:4px;
overflow:hidden;
}
Свойство min-height
В противоположность max-height, свойство min-height позволяет установить минимальную высоту элемента.
Действие свойства проявляется, когда размер зоны просмотра уменьшается, а высота элемента уменьшается только до указанного предела.
See the Pen min-height by King nelson (@D_kingnelson) on CodePen.
.element{
height:40vh;
min-height:200px;
}
Заключение
Отзывчивость — важный фактор в веб-разработке. Отслеживать все варианты изменения размеров элементов в зависимости от размеров экранов может быть сложной задачей, но CSS-свойства max-width, min-width, max-height и min-height помогут вам ее решить. С их помощью можно установить граничные размеры элементов и обойтись без медиа-запросов.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]


