Układ CSS staje się inteligentniejszy dzięki funkcji calc()

Alex Danilo

Tworzenie ładnego układu CSS zaczyna się od przypisania rozmiarów wszystkim elementom umieszczanym w aplikacji internetowej. Bardzo pożądaną funkcją była zawsze możliwość określania rozmiarów przy użyciu mieszanki jednostek rozmiarów. Dobrze byłoby na przykład mieć możliwość zarezerwowania 50% obszaru oraz stałej ilości miejsca, np. 10 pikseli. Teraz możesz to zrobić za pomocą właściwości calc(). Możesz korzystać z tej funkcji wszędzie tam, gdzie jest stosowana długość lub liczba. Można jej używać do określania pozycji lub w wartościach kolorów w rgb(). Dzięki temu ma wiele zalet w arkuszu stylów.

Do czego służy funkcja calc()?

Właściwość calc() możesz używać w każdym miejscu, w którym w arkuszu stylów znajduje się długość lub numer CSS.

Oferuje 2 główne funkcje, dzięki którym układ jest bardziej elastyczny:

  • Łączenie procentów i wartości bezwzględnych.
  • Różne jednostki rozmiaru.

Mieszanie procentów z jednostkami bezwzględnymi

Spójrzmy na przykład łączenia wartości procentowych z jednostkami bezwzględnymi. Załóżmy, że chcemy przydzielić 50% dostępnego obszaru mniej ustalonej liczby pikseli, a później możemy zapisać wynik w ten sposób:

#foo {
    width: calc(50% - 100px);
}
<div id="foo">Always 100 pixels less than half the available area</div>

Gdyby tło miało kolor zielony, wyglądałoby to tak:

a po zmniejszeniu rozmiaru nadrzędnego wyglądałby on tak:

Fajne jest to, że zawsze wiemy, że prawa krawędź treści znajduje się 100 pikseli na lewo od środka obszaru zawierającego dane. Możliwość łączenia różnych typów wartości w ten sposób pozwala aplikacji internetowej obsługiwać układ na urządzeniach o różnych rozmiarach i mieć znacznie większą kontrolę niż wcześniej.

Jednostki miksowania

Inną świetną zaletą jest możliwość łączenia jednostek o różnych miarach, aby uzyskać odpowiedni rozmiar. Możesz na przykład ustawić rozmiary w odniesieniu do bieżącego rozmiaru czcionki, łącząc jednostki „em” i „px”.

#bar {
    height: calc(10em + 3px);
}

Świetne przykłady łączenia wartości znajdziesz tutaj i tutaj.

Wypróbuj

Dzięki calc() możesz dodawać, odejmować, mnożyć i dzielić wartości za pomocą +, -, * oraz /. To daje różne możliwości. calc() możesz używać wszędzie tam, gdzie można użyć długości lub liczby arkusza CSS. Pracujemy też nad dodaniem właściwości calc() dla właściwości kąta i częstotliwości. Właściwość calc() dotycząca długości jest teraz dostępna w Chrome 19 (wersja deweloperska) za pomocą właściwości -webkit-calc. W Firefoksie od wersji 8 użyto właściwości -moz-calc, a w Internet Explorerze od wersji 9 bez prefiksu. Podziel się z nami swoją opinią, dodając komentarz poniżej.