Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
tolerant
7 лет назад

Записки HTML-верстальщика: прaктическое применение CSS свойства calc()

Всем добрый день!

Пока Киев заметает снегом, я продолжаю подсказывать начинающим версталам (и не только начинающим) некоторые полезные вещи, которые встречаются в повседневной верстальщицкой деятельности.



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

Так вот, функция calc() позволяет нам задавать размеры чего-либо: текста, отступов, других размеров не какой-либо фиксированной величиной, а при помощи математического простого выражения. 

К примеру, 

.block {



   width: calc(100px + 50px);



}


Для чего такие извращения, спросите вы) Фишка в том, что эта функция умеет работать с разными типами размеров. К примеру, очень часто попадается ситуация, когда нам нужно, к примеру, чётко определить ширину какого-нибудь элемента, который занимает ровно на 50 пикселей меньше, чем вся ширина какого-либо блока. Сделать это нам поможет calc():

.block {



   width: calc(100% - 50px);



}


Это лишь маленький пример того, как мы можем использовать эту функцию. Ниже приведу еще пару примеров, где calc() может пригодиться: 

.block {



   width: calc(50vmax + 3rem);

   padding: calc(1vw + 1em);

   transform: rotate( calc(1turn + 28deg) );

   background: hsl(100, calc(3 * 20%), 40%);

   font-size: calc(50vw / 3);



}


На практике очень часто можно увидеть использование этого свойства для адаптации размеров текста под разные устройства:

html {  

   font-size: calc(100vw / 30);

}


Наиболее частое использование свойства calc() можно увидеть при разработке какой-либо сетки. К примеру, вместо  

.foo {

   width: 16.666666667%;

}

можно написать: 

.foo {

   width: calc(100% / 6);

}

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


Что касается поддержки браузерами - тут всё чётенько. Идём на caniuse, и видим: 


На этом всё :)

Спасибо за внимание :)   

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

2
123.578 GOLOS
На Golos с November 2016
Комментарии (0)
Сортировать по:
Сначала старые