Funkcja calc()
- Data publikacji
- Ostatnio edytowano
W tej części kursu CSS poznamy funkcję calc(), która służy do obliczania wartości danej właściwości CSS.
To, które przeglądarki internetowe i w jakiej wersji, obsługują funkcję calc(), możemy sprawdzić tutaj.
Funkcja calc() wymaga od nas abyśmy podali równanie, które ma zostać obliczone. W naszym równaniu możemy wykorzystać różne wartości wraz z różnymi jednostkami CSS oraz następujące operatory matematyczne:
+dodawanie, np.calc(50% + 100px)-odejmowanie, np.calc(100% - 33%)*mnożenie, np.calc(10px * 10)/dzielenie, np.calc(4em / 2)- nasze równanie może być również bardziej złożone, np.
calc((100% - 30% + 50px) / 2)
Powyższą funkcję calc() możemy użyć wraz z dowolną właściwością CSS, która wymaga od nas abyśmy podali jakąś wartość liczbową, np. width:calc(100% / 5); Przeglądarka widząc taki zapis, sama sobie obliczy daną wartość właściwości width. W tym wypadku będzie to wartość 20%, czyli szerokość elementu HTML będzie równa 20% szerokości elementu rodzica.
Uwaga Gdy chcemy wykonać mnożenie lub dzielenie, to przynajmniej jedna dzielona lub mnożona wartość musi być liczbą (czyli wartością bez jednostki, np. 1, 2, 3 ,4 itd.).
W jednej z poprzednich części tego kursu CSS określaliśmy wartości właściwości font-size, dla poszczególnych elementów HTML, za pomocą jednostek em. W pewnym momencie musieliśmy dokonać pewnego obliczenia. Dzieliliśmy wartość właściwości font-size, danego elementu HTML, przez wartość właściwości font-size elementu rodzica, następnie otrzymaną wartość zamienialiśmy na jednostkę em.
Dzięki funkcji calc() możemy osiągnąć taki sam rezultat, w nieco inny sposób. Musimy określić o ile procent wartość 1em, czyli wartość elementu rodzica, ma zostać powiększona, dla danego elementu HTML.
body {
font-size:15px;
}
h1 {
font-size:calc(1em + 60%);
}
p {
font-size:calc(1em + 20%);
}
ul {
font-size:calc(1em);
}
W efekcie uzyskamy następujący rezultat:
To Jest Przykładowy Element H1
to jest przykładowy tekst umieszczony w elemencie - p
- to jest przykładowy element listy HTML
- to jest przykładowy element listy HTML
- to jest przykładowy element listy HTML
Kod dokumentu HTML został umieszczony poniżej:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Darmowy Kurs CSS</title>
<style>
body {
font-size:15px;
}
h1 {
font-size:calc(1em + 60%);
}
p {
font-size:calc(1em + 20%);
}
ul {
font-size:calc(1em);
}
</style>
</head>
<body>
<div>
<h1>To Jest Przykładowy Element H1</h1>
<p>
to jest przykładowy tekst umieszczony w elemencie - p
</p>
<ul>
<li>to jest przykładowy element listy HTML</li>
<li>to jest przykładowy element listy HTML</li>
<li>to jest przykładowy element listy HTML</li>
<ul>
</div>
</body>
</html>
Ponadto zapis margin: calc() calc() calc() calc(); również jest możliwy, w tym wypadku zostaną obliczone wszystkie cztery marginesy zewnętrzne dla danego elementu HTML.