4.1 Əsas konsepsiyalar
CSS-dəyişənlər və media-sorğular müxtəlif ekran ölçüləri və cihazlar üçün avtomatik uyğunlaşan adaptiv veb-dizayn yaratmaq üçün güclü alətlər təmin edir. Dəyişənlər üslubları mərkəzləşdirilmiş şəkildə idarə etməyə imkan yaradır, media-sorğular isə bu üslubları ekranın genişliyi kimi şərtlərə görə dəyişdirməyə imkan verir.
Əsas Konsepsiyalar
- CSS-dəyişənlər: CSS-də təkrar istifadə olunacaq dəyərləri təyin etməyə imkan verir. Onlar müxtəlif kontekstlərdə, məsələn, media-sorğularında dəyişdirilə bilər ki, bu da xüsusilə adaptiv dizayn üçün çox faydalıdır.
- Media-sorğular: Cihazın xüsusiyyətlərinə görə, məsələn, ekranın eni və ya hündürlüyünə görə CSS üslublarını tətbiq etməyə imkan verir. Bu, veb-səhifənin görünüşünü və davranışını fərqli cihazlara uyğunlaşdırmağa imkan yaradır.
Media-sorğulara dəyişənlərin tətbiqi
CSS-dəyişənlər media-sorğuların daxilində üslub dəyərlərini şərtlərə görə dəyişdirmək üçün istifadə oluna bilər. Bu, daha çevik və saxlamağı asan olan adaptiv dizaynlar yaratmağa imkan verir.
Media-sorğulara dəyişənlərin tətbiqinə misal:
:root {
--main-bg-color: #f0f0f0;
--main-text-color: #333;
--primary-color: #3498db;
--font-size: 16px;
}
body {
background-color: var(--main-bg-color);
color: var(--main-text-color);
font-size: var(--font-size);
}
a {
color: var(--primary-color);
}
@media (max-width: 600px) {
:root {
--main-bg-color: #e0e0e0;
--font-size: 14px;
}
}
@media (min-width: 601px) and (max-width: 1200px) {
:root {
--main-bg-color: #d0d0d0;
--font-size: 15px;
}
}
@media (min-width: 1201px) {
:root {
--main-bg-color: #f0f0f0;
--font-size: 16px;
}
}
<body>
<p>Bu, <a href="#">Example.com</a> linkinə malik bir paraqrafdır.</p>
</body>
İzah:
Bu nümunədə dəyişənlərin dəyərləri ekranın genişliyinə görə dəyişir:
- 600px-dək genişlikdə ekranlar üçün fon daha tünd ton alır, şrift ölçüsü isə kiçilir.
- 601px-dən 1200px-dək genişlikdə ekranlar üçün fon orta ton alır, şrift ölçüsü bir qədər artır.
- 1200px-dən böyük genişlikdə ekranlar üçün ilkin dəyişən dəyərləri tətbiq olunur.
4.2 Mediya-sorğularda dəyişənlərin nümunələri
Nümunə 1: Adaptiv marjlar və font ölçüləri
:root {
--padding: 20px;
--font-size: 16px;
}
.container {
padding: var(--padding);
font-size: var(--font-size);
}
@media (max-width: 600px) {
:root {
--padding: 10px;
--font-size: 14px;
}
}
@media (min-width: 601px) and (max-width: 1200px) {
:root {
--padding: 15px;
--font-size: 15px;
}
}
@media (min-width: 1201px) {
:root {
--padding: 20px;
--font-size: 16px;
}
}
<div class="container">
<p>Bu adaptiv marjlar və font ölçüləri olan bir konteynerdir.</p>
</div>
İzah:
- Bu nümunədə
.container
konteyneri ekranın eni dəyişdikdə marjlarını və font ölçüsünü dəyişir
Nümunə 2: Dəyişənlər və mediya-sorğularla saytın teması
:root {
--bg-color: #ffffff;
--text-color: #000000;
--link-color: #3498db;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
a {
color: var(--link-color);
}
@media (prefers-color-scheme: dark) {
:root {
--bg-color: #000000;
--text-color: #ffffff;
--link-color: #9b59b6;
}
}
<body>
<p>Bu mətn və keçid istifadəçinin rəng sxeminə uyğunlaşacaq. Ziyarət edin <a href="#">Example.com</a>.</p>
</body>
İzah:
- Bu nümunədə sayt istifadəçinin seçiminə uyğun olaraq rəng sxemini dəyişir (
prefers-color-scheme: dark
). Arxa fonun, mətnin və keçidlərin rəngləri işıq və qaranlıq tema arasında avtomatik dəyişir
4.3 Uyğunlaşan şəbəkə
Dəyişənlərdən və mediya-sorğularından istifadə edərək uyğunlaşan şəbəkə nümunəsi:
:root {
--columns: 1fr;
--gap: 10px;
}
.grid-container {
display: grid;
grid-template-columns: var(--columns);
gap: var(--gap);
}
@media (min-width: 600px) {
:root {
--columns: 1fr 1fr;
}
}
@media (min-width: 900px) {
:root {
--columns: 1fr 1fr 1fr;
}
}
<div class="grid-container">
<div>Element 1</div>
<div>Element 2</div>
<div>Element 3</div>
<div>Element 4</div>
</div>
İzah:
- Bu nümunədə ekranın eni ilə əlaqədar olaraq sütunların sayını dəyişən uyğunlaşan bir şəbəkədən istifadə olunur. Dar ekranlarda (600px-ə qədər) şəbəkədə bir sütun var, orta ekranlarda (600px-dən 900px-ə qədər) iki sütun, və geniş ekranlarda (900px-dən çox) üç sütun var.
GO TO FULL VERSION