CSS Math Functions
In this page:
selector {
width: min(value1, value2);
width: max(value1, value2);
width: clamp(minimum, preferred, maximum);
}
calc() Function
calc() आपको एक ही expression में percentages और pixels जैसी units mix करने देता है, ताकि आप किसी fluid container width में से एक fixed sidebar width घटा सकें। यह responsive layouts के लिए सबसे उपयोगी CSS functions में से एक है, क्योंकि यह mixed-unit sizes calculate करने के लिए JavaScript की ज़रूरत हटा देता है।
- calc() के अंदर + और - के दोनों तरफ़ हमेशा एक space छोड़ें; वरना operator को unit के हिस्से के रूप में parse किया जाएगा।
- Accepted values:
- calc(<expression>) — + - * / के साथ arithmetic
- calc(100% - 40px) — percentages और lengths mix करता है
- calc(2 * 1rem) — multiplication को एक तरफ़ एक plain number चाहिए
- + और - के आस-पास spaces — ज़रूरी
उदाहरण: The calc() Function
<style>
.box {
width: calc(100% - 50px);
background: lightblue;
padding: 10px;
}
</style>
<div class="box">Fluid width minus a fixed sidebar</div>
min() Function
min() एक comma separated list में से सबसे छोटी value चुनता है, ताकि कोई box एक fixed maximum से कभी ज़्यादा हुए बिना छोटे screens पर shrink हो सके। इसे आमतौर पर किसी value को maximum पर cap करने के लिए इस्तेमाल किया जाता है जबकि उसे छोटे screens पर freely shrink होने भी दिया जाता है।
- किसी fluid width को cap करने के लिए min() इस्तेमाल करें, उदाहरण के लिए min(90%, 600px) कभी 600px से ज़्यादा wide नहीं होता।
- Accepted values:
- min(<value>, <value>, ...) — सबसे छोटी resolved value
- min(90%, 600px) — flexible लेकिन capped
- min(1rem, 5vw) — unit types mix करता है
- नोट: किसी भी length property में काम करता है
उदाहरण: The min() Function
<style>
.box {
width: min(90%, 600px);
background: lightblue;
padding: 10px;
}
</style>
<div class="box">Never wider than 600px, shrinks freely below that</div>
max() Function
max() एक list में से सबसे बड़ी value चुनता है, दूसरी values के shrink होने पर भी एक minimum size guarantee करते हुए। यह min() का mirror image है, आमतौर पर एक comfortable minimum readable font size enforce करने के लिए इस्तेमाल होता है।
- readable text guarantee करने के लिए max() को viewport units के साथ combine करें, max(16px, 1vw) कभी 16px से नीचे नहीं जाता।
- Accepted values:
- max(<value>, <value>, ...) — सबसे बड़ी resolved value
- max(50%, 300px) — एक floor के साथ flexible
- max(1rem, 2vw) — कभी 1rem से छोटा नहीं
- नोट: किसी भी length property में काम करता है
उदाहरण: The max() Function
<style>
p {
font-size: max(16px, 1vw);
}
</style>
<p>Never smaller than 16px</p>
clamp() Function
clamp(minimum, preferred, maximum) किसी value को एक floor और एक ceiling के बीच fix कर देता है जबकि preferred value को बीच में flex होने देता है, fluid typography के लिए ideal। एक single clamp() call अक्सर उन कई media queries को replace कर देता है जो वरना अलग-अलग breakpoints पर किसी value को adjust करने के लिए चाहिए होतीं।
- headings के लिए clamp() इस्तेमाल करें ताकि text कई media queries की ज़रूरत के बिना viewport के साथ smoothly scale हो।
- Accepted values:
- clamp(min, preferred, max) — min और max के बीच रहने वाली value
- clamp(1rem, 2.5vw, 2rem) — fluid font-size
- clamp(300px, 50%, 800px) — fluid width
- तीनों arguments — ज़रूरी
उदाहरण: The clamp() Function
<style>
h1 {
font-size: clamp(1.5rem, 4vw, 3rem);
}
</style>
<h1>Scales fluidly between a floor and a ceiling</h1>
Math Functions को Custom Properties के साथ Combine करना
Math functions CSS custom properties को reference कर सकते हैं, आपको एक base value को centralize करने और उससे कई related sizes derive करने देते हुए। यह pattern किसी पूरे design system की spacing या type scale को consistent रखता है, हर size को एक shared variable से derive करते हुए।
- एक custom property में एक base spacing unit store करें, फिर consistent spacing के लिए अपनी पूरी stylesheet में उस variable के साथ calc() reuse करें।
- Accepted values:
- calc(var(--gap) * 2) — किसी custom property को scale करता है
- clamp(var(--min), 5vw, var(--max)) — tokens के साथ fluid
- min(var(--w), 100%) — एक token से capped
- var(--name) — एक valid value पर resolve होनी चाहिए
उदाहरण: Combining Math Functions With Custom Properties
<style>
:root {
--base: 8px;
}
.box {
padding: calc(var(--base) * 2);
background: lightblue;
}
</style>
<div class="box">Derived from one shared base value</div>
- calc() के अंदर + और - operators के आस-पास ज़रूरी spaces भूल जाना, calc(100% - 20px) के बजाय calc(100%-20px) लिखना।
- यह मान लेना कि clamp() arguments किसी भी order में हो सकते हैं; syntax हमेशा clamp(minimum, preferred, maximum) है।
- यह realize किए बिना incompatible units mix करना कि calc() उन्हें combine कर सकता है, एक expression में % और px combine करने के मौके गँवाना।
- calc() किसी CSS value के अंदर सीधे अलग-अलग units के बीच arithmetic करता है।
- min() और max() values की एक list में से सबसे छोटी या सबसे बड़ी चुनते हैं, responsive limits के लिए उपयोगी।
- clamp(min, preferred, max) दोनों को combine करता है, एक fluid value देते हुए जो set bounds से कभी छोटी या बड़ी नहीं होती।
calc(), min(), max(), और clamp() Chrome, Firefox, Safari, और Edge सहित हर modern browser द्वारा supported हैं।
Chapter Quiz — Complete all 25 topics to unlock
0/25 topics done
Complete these topics first:
- CSS Container Queries
- CSS Subgrid
- CSS Logical Properties
- CSS Logical Sizing
- CSS Writing Modes
- CSS Aspect Ratio
- CSS Object Fit
- CSS object-position
- CSS Masking
- CSS Math Functions
- CSS Motion Path
- CSS @supports
- CSS @property
- CSS At-Rules
- CSS Cursor
- CSS Will Change
- CSS User Interface
- CSS Print Styles
- CSS Pagination (Print)
- CSS Dark Mode
- CSS Accessibility
- CSS Performance
- CSS Preprocessors
- CSS Frameworks Overview
- CSS Interview Prep