თანამედროვე CSS-მა დაამატა ფუნქციები და თვისებები, რომლებიც ცვლიან მედია-მოთხოვნის და JavaScript აკმეების მთელ კატეგორიებს. ყველაზე მნიშვნელოვანი:
clamp() — სითხე, შეზღუდული მნიშვნელობები
h1 { font-size: (, , ); }
თანამედროვე CSS-მა დაამატა ფუნქციები და თვისებები, რომლებიც ცვლიან მედია-მოთხოვნის და JavaScript აკმეების მთელ კატეგორიებს. ყველაზე მნიშვნელოვანი:
h1 { font-size: (, , ); }
clamp(min, preferred, max) იძლევა სითხე ტიპოგრაფია/ინტერვალი, რომელიც გლუვად მასშტაბდება viewport-ის მიხედვით, მაგრამ რჩება საზღვრებში — ჩანაცვლებს font-size მედია-მოთხოვნის რამდენიმე ბრეკპოინტი ერთი ხაზით.
.video { aspect-ratio: 16 / 9; width: 100%; } /* height auto-computed to keep 16:9 */
.avatar { aspect-ratio: 1; } /* perfect square at any width */
ამის წინ, რეაქტიული 16:9 ყუთის შენარჩუნება მოითხოვდა ცნობილ padding-bottom: 56.25% აკმეს. ახლა ეს არის ერთი დეკლარაცია — და ის რეზერვირებს ადგილს (კარგი CLS-ისთვის) სურათების ჩატვირთვამდე.
.container { width: min(90%, 1200px); } /* whichever is SMALLER → fluid but capped */
.box { padding: max(1rem, 3vw); } /* whichever is LARGER → a minimum floor */
min()/max() აირჩევს მნიშვნელობების პატარა/დიდ ნაწილს, ერთი თვისება რეაქტიული გახდეს მედია-მოთხოვნის გარეშე (მაგ. "90% სიგანე, მაგრამ არა 1200px-ზე მეტი").
.card { display: grid; grid-template-rows: subgrid; grid-row: span 3; }
subgrid სშუამავალი ქსელი აშინებს მშობლის ტრეკის ხაზებს, ასე რომ ცალკეული ბარათების (სათაურები, თხა, კვამლი) ელემენტები სრულყოფილად სწორდება დიაგნოზის ხაზებზე — ადრე ფიქსირებული სიმაღლის გარეშე შეუძლებელი იყო.
.flex { display: flex; gap: 1rem; } /* gap now works in flexbox, not just grid */
ეს ფიჩარები აღმოფხვრის დიდხანს გამოყენებულ აკმეებს: clamp()/min()/max() ცვლიან მედია-მოთხოვნის დასტის სითხე ზომის აღმოსავლეთით, aspect-ratio ცვლიან padding აკმეს და იცავს განლაგების ცვლას, და subgrid აგვარებს კომპონენტების ჯვრის სწორებას.
ისინი აკეთებენ რეაქტიულ, პროპორციულ განლაგებას დრამატულად მარტივ და გამძლე — თანამედროვე CSS აკეთებს დეკლარატიულად ის, რაც დრე JS-ის ან მკრთალო ტრიკების საჭიროება იყო.