Использование функции CSS calc()

Использование функции CSS calc()

18 февраля 2020 CSS

С появлением функции calc() стало возможным делать математические расчёты, такие как сложение, вычитание, умножение, деление прямо в CSS. Рассмотрим некоторые примеры её использования, которые могут пригодиться.

Выравнивание по центру

Наверное самый распространённый случай использования. Чтобы отцентрировать элемент, необходимо отступить 50% от левой стороны и отнять половину ширины самого элемента. А при центрировании по вертикали 50% от высоты контейнера и минус половину высоты элемента. В примере ниже блок центрируется по горизонтали и вертикали с помощью функции calc():

<div class="center-block">
    <p>Текст</p>
</div>

<style>
.center-block {
   position: absolute;
   top: calc(50% - 200px / 2);
   left: calc(50% - 200px / 2);
   width: 200px;
   height: 200px;

   background: rgba(0, 0, 0, 0.4);
   color: #fff;
   font-size: 16px;
   text-transform: uppercase;
   display: flex;
   align-items: center;
   justify-content: center;
}
</style>

Прижать footer к низу окна браузера

* {
	margin: 0;
	padding: 0;
}
.content {
	min-height: calc(100vh - 80px);
}

100vh — это высота окна браузера, а 80px — высота footer. И с помощью функции calc() мы вычитаем вторую величину из первой, тем самым прижимая footer к низу.

Резиновый блок рядом с фиксированным

<div class="container">
	<div class="block element-1">100% - 50px</div>
	<div class="block element-2">50px</div>
</div>

<style>
html {
  box-sizing: border-box;
}

:root {
  background-color: #373150;
  font-size: 16px;
  font-weight: 400;
  text-rendering: geometricPrecision;
  line-height: 1.4;
  text-decoration-skip: ink;
  font-family: -apple-system-headline, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

*, *:before, *:after {
  box-sizing: inherit;
}

body {
  margin:0;
  padding:0;
}

.block {
  display:inline-block;
  background-color:#EF6174;
  color:white;
  font-size:0.8em;
  text-align:center; 
  line-height:4em;
}

.container {
  display:block;
  max-width:900px;
  margin:0 auto 20px auto;
}

.element-1 {
  float:left;
  height:50px;
  width: calc( 100% - 50px );
}

.element-2 {
  float:left;
  width: 40px;
  height:50px;
  margin-left:10px;
}
</style>

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Похожие записи
Как использовать animate.css

Посмотрим правде в глаза, новые функции CSS3, которые впервые привлекли наше внимание, были анимации и переходы. Это то, чего у нас никогда не было раньше без включения JavaScript. И только то, что это CSS, не означает, что нет библиотек, которые Читать далее

Как использовать фильтры CSS

Фильтры CSS - это мощный инструмент, который позволяет нам создавать удивительные визуальные эффекты с нашими элементами. Особенно они хороши для hover эффектов. Фильтры предоставляют нам методы для изменения рендеринга базового элемента DOM. Они позволяют сделать такие эффекты, как например, размытие, Читать далее

Как сделать прогресс бар на CSS

Прогресс бар начал использоваться в интернете с тех пор, как мы поняли, что не все будет загружаться мгновенно. Он служит для уведомления пользователя о ходе выполнения конкретной задачи на вашем веб-сайте, такой как загрузка, выгрузка, загрузка приложения и т.д. Раньше Читать далее

Прижать футер с помощью Flexbox

Создание прилипающего футера является одной из самых распространенных задач веб-разработки, которую вы легко можете решить с помощью Flexbox. Без прилипающего футера, если у вас недостаточно содержимого на странице, футер «подпрыгивает» до середины экрана, что может полностью испортить взаимодействие с пользователем. Читать далее

CSS animation

Свойство animation в CSS можно использовать для анимации многих других свойств CSS, таких как цвет, цвет фона, высота или ширина. В этой статье рассмотрим на примерах, как использовать анимацию на чистом CSS с помощью этого свойства. Каждую анимацию необходимо определить Читать далее

CSS transition

CSS transition - это свойство, с помощью которого можно сделать плавные эффекты перехода элемента из одного состояния в другое. Ну например плавное изменение цвета блока при наведении. Выглядит это современно, а применяется очень просто и не надо использовать JavaScript. В Читать далее

Добавить комментарий

*

code