CSS’da inheritance borligini bilarmidingiz?
Biz CSS’da inheritance holatiga deyarli har doim duch kelamiz, lekin ko‘pincha buni payqamaymiz.
Keling, avvalo inheritance nima ekanligini, CSS kontekstida tushunib olaylik.
Inheritance, ya’ni me’ros olish - bu bir elementga berilgan uslub(style) uning ichidagi elementlarga ham o’tishini anglatadi. Oddiyroq qilib aytganda, parent elementga berilgan still child elementlarga ham ta’sir qiladi.
Masalan, font-size
xususiyatini(property) olaylik.
Tasavvur qiling: siz <body>
HTML elementiga font-size: 10px
degan qiymatini berdingiz va bu qiymat <body>
ichidagi barcha elementlarga me’ros bo’lib o’tadi, agar ichki elementlarning birida yangi font-size
qiymati ko’rsatilmagan bo’lsa.
HTML
<body>
Body element ichidagi text
<div> Div element ichidagi text </div>
</body>
CSS
body {
font-size: 10px // body elementiga ham, div elementiga ham ta'sir qiladi.
}
Biroq, CSS’dagi xususiyatlarning(properties) hammasi ham inheritance - ya’ni me’ros bo’lib o’tish qobiliyatiga ega emas.
Masalan, padding
xususiyatini olaylik.
Agar siz <body>
elementiga padding: 20px
qiymat bersangiz, bu qiymat ichki elementlarga o’tmaydi. Sababi, padding
inheritance xususiyatiga ega bo’lmagan property hisoblanadi.
HTML
<body>
Body element ichidagi text
<div> Div element ichidagi text </div>
</body>
CSS
body {
padding: 20px // faqat body elementiga ta'sir qiladi.
}
Shunday qilib, CSS’da barcha xususiyatlar ikki turga bo‘linadi: meros qilinadigan (inherited) va meros qilinmaydigan (non-inherited). Hop, biz buni qanday bilib olamiz? Web tool orqali debugging qilish jarayonida.
Yana bir boshqa misol:
<body style="color: red; border: 2px solid black">
<div>
<p>Hello world</p>
</div>
</body>
font-size
xususiyati aniq va yorqin rangda ko‘rinadi, chunki u meros qilib olingan property hisoblanadi.