بااستفاده از این توابع CSS که بهخوبی پشتیبانی میشوند، با نحوه کنترل اندازه عناصر، حفظ فاصلهگذاری مناسب، و پیادهسازی تایپوگرافی سیال آشنا شوید.
با دقیقتر شدن طراحی واکنشگرا، CSS بهطور مداوم درحال تکامل است تا به نویسندگان کنترل بیشتری بدهد. توابع min()،
max()، و
clamp()،
که اکنون در همه مرورگرهای نو پشتیبانی میشوند، از جدیدترین ابزارها برای پویاتر و واکنشگراتر کردن
وبسایتها و برنامههای تألیفی هستند. میتوانید از این توابع برای کنترل اندازه و تغییر اندازه عناصر، حفظ فاصله بین عناصر، و ایجاد تایپوگرافی انعطافپذیر و روان استفاده کنید.
توابع ریاضی
مقادیر و واحدهای CSS سطح ۴calc()،min()،max()، وclamp()امکان استفاده از عبارتهای ریاضی با جمع (+)، تفریق (-)، ضرب (*)، و تقسیم (/) را بهعنوان مقادیر مؤلفه فراهم میکنند
پشتیبانی مرورگر
min()
max()
clamp()
کاربرد
میتوانید از min()، max()، و clamp() در سمت راست هر عبارت CSS که منطقی باشد استفاده کنید. برای min() و max()، شما یک
فهرست آرگومان از مقادیر ارائه میدهید و مرورگر تعیین میکند کدامیک
کوچکترین یا بزرگترین است. برای مثال، در مورد width: min(1rem, 50%, 10vw)،
مرورگر محاسبه میکند که کدامیک از این واحدهای نسبی کوچکترین است و از
آن مقدار برای عرض عنصر استفاده میکند.
تابع max() همین کار را برای مقدار حداکثر انجام میدهد.
برای استفاده از clamp()، سه مقدار وارد کنید: مقدار حداقل، مقدار ایدهآل برای
محاسبه، و مقدار حداکثر.
میتوانید از این توابع در هر جایی که <length>، <frequency>،
<angle>، <time>، <percentage>، <number>، یا <integer> مجاز است استفاده کنید. میتوانید
از آنها بهتنهایی (مانند font-size: max(0.5vw, 50%, 2rem))، با
calc() (مانند font-size: max(calc(0.5vw - 1em), 2rem))، یا بهصورت ترکیبی (مانند
font-size: max(min(0.5vw, 1em), 2rem)) استفاده کنید.
در زیر چند نمونه از نحوه استفاده از این توابع آورده شده است.
عرض بینقص
طبق کتاب The Elements of Typographic Style نوشته رابرت برینگهورست، «هر چیزی از ۴۵ تا ۷۵ نویسه بهطور گسترده بهعنوان طول خط رضایتبخش برای صفحه تکستونی تنظیمشده در قلم سریفدار در اندازه نوشتار درنظر گرفته میشود.»
برای اطمینان از اینکه عرض بلوکهای نوشتاری شما بین ۴۵ تا ۷۵ نویسه باقی میماند، از
clamp() و واحد ch (پیشروی نویسه با عرض صفر)
استفاده کنید:
p {
width: clamp(45ch, 50%, 75ch);
}
این کار به مرورگر اجازه میدهد عرض پاراگراف را تعیین کند. این گزینه عرض را بهطور پیشفرض روی ۵۰٪ تنظیم میکند. اگر ٪۵۰ کوچکتر از 45ch باشد، بهجای آن از 45ch بهعنوان عرض استفاده میکند،
و اگر ٪۵۰ پهنتر از 75ch باشد، از 75ch استفاده میکند.
همچنین میتوانید این کار را فقط بااستفاده از min() یا max() انجام دهید. اگر میخواهید
عنصر همیشه در عرض 50% باشد و در صفحهنمایشهای بزرگتر از عرض 75ch فراتر نرود،
از width: min(75ch, 50%); برای تنظیم حداکثر اندازه استفاده کنید.
به همین ترتیب، میتوانید بااستفاده از تابع max()، حداقل اندازه را برای نوشتار خوانا تنظیم کنید، مانند width: max(45ch, 50%);. در اینجا، مرورگر هر مقداری را که بزرگتر باشد انتخاب میکند، یعنی عنصر باید 45ch یا پهنتر باشد.
مدیریت حاشیه داخلی
همچنین میتوانید از max() برای تنظیم حداقل اندازه حاشیه داخلی استفاده کنید. این مثال از
CSS Tricks گرفته شده است،
که در آن Caluã de Lacerda Pataca، خواننده، این ایده را همرسانی کرده است: اجازه دهید یک عنصر
در اندازههای بزرگتر صفحهنمایش، حاشیه داخلی اضافی داشته باشد، اما در اندازههای کوچکتر صفحهنمایش،
حداقل حاشیه داخلی را حفظ کند. برای انجام این کار، از calc() یا max() استفاده کنید و حداقل حاشیه داخلی را از هر دو طرف عنصر کم کنید: calc((100vw - var(--contentWidth)) / 2)، یا max(2rem, 50vw - var(--contentWidth) / 2). در برگه سبک شما، باید
به این شکل باشد:
footer {
padding: var(--blockPadding) max(2rem, 50vw - var(--contentWidth) / 2);
}
نویسهنگاری سیال
برای فعال کردن تایپوگرافی سیال،
مایک ریتمولر تکنیکی را رواج داد
که از تابع clamp() برای تنظیم حداقل اندازه قلم، حداکثر اندازه قلم،
و امکان مقیاسبندی بین این اندازهها استفاده میکند.
پیشاز clamp(),، طراحی مقیاسبندی قلم به رشتههای سبک پیچیده نیاز داشت. اکنون،
میتوانید اجازه دهید مرورگر کار را برایتان انجام دهد. حداقل اندازه قلم قابلقبول (برای مثال، 1.5rem برای عنوان)، حداکثر اندازه (مانند 3rem)، و اندازه ایدهآل (مانند 5vw) را تنظیم کنید. اکنون تایپوگرافیای دارید که با عرض نمای صفحه مقیاسبندی میشود تا زمانی که به مقادیر حداقل و حداکثر محدودکننده برسد، بااستفاده از کد بسیار کمی:
p {
font-size: clamp(1.5rem, 5vw, 3rem);
}