HTML sahifa elementlarining o'lchamlarini o'rnatish uchun CSS kengligi va balandligi parametrlari. CSS - Blok balandligi uning kengligiga nisbatan Kenglik va balandlikni hisoblash xususiyatlari

The balandligi CSS xususiyati elementning balandligini belgilaydi. Odatiy bo'lib, xususiyat kontent maydonining balandligini belgilaydi. Agar box o'lchami border-box ga o'rnatilgan bo'lsa, u o'rniga chegara maydoni balandligini belgilaydi.

Ushbu interaktiv misol uchun manba GitHub omborida saqlanadi. Agar siz interaktiv misollar loyihasiga o'z hissangizni qo'shmoqchi bo'lsangiz, iltimos, https://github.com/mdn/interactive-examples klonlang va bizga tortish so'rovini yuboring.

Minimum balandlik va maksimal balandlik xususiyatlari balandlikni bekor qiladi.

Sintaksis

/* Kalit so'z qiymati */ balandligi: auto; /* qiymatlar */ balandligi: 120px; balandligi: 10 m; /* Qiymat */ balandligi: 75%; /* Global qiymatlar */ balandlik: meros; balandligi: boshlang'ich; balandlik: sozlanmagan;

Qiymatlar

CSS ma'lumotlar turi masofa qiymatini ifodalaydi. Uzunliklardan kenglik, balandlik, chekka, to'ldirish, chegara kengligi, shrift o'lchami va matn soyasi kabi ko'plab CSS xususiyatlarida foydalanish mumkin."> Balandlikni mutlaq qiymat sifatida belgilaydi. CSS ma'lumotlar turi foiz qiymatini ifodalaydi. U ko'pincha elementning asosiy ob'ektiga nisbatan o'lchamni aniqlash uchun ishlatiladi. Ko'p xususiyatlar kenglik balandligi chegarasini to'ldirish va shrift o'lchami kabi foizlardan foydalanishi mumkin.> Balandlikni o'z ichiga olgan blok balandligining foizi sifatida belgilaydi. avtomatik Brauzer belgilangan element uchun balandlikni hisoblab chiqadi va tanlaydi. max-content Ichki afzal qilingan balandlik. min-content Ichki minimal balandlik. fit-content( CSS ma'lumotlari turi a bo'lishi mumkin bo'lgan qiymatni ifodalaydi yoki a ."> ) Mavjud bo'sh joy belgilangan argument bilan almashtirilgan holda fit-kontent formulasidan foydalanadi, ya'ni. min(maksimal tarkib, maksimal(min-tarkib,)).

Rasmiy sintaksis

CSS ma'lumotlar turi foiz qiymatini ifodalaydi. U ko'pincha elementning asosiy ob'ektiga nisbatan o'lchamni aniqlash uchun ishlatiladi. Ko'p xususiyatlar kenglik balandligi chegarasini to'ldirish va shrift o'lchami kabi foizlardan foydalanishi mumkin.> chegara-box kontent-quti mavjud min-tarkib maksimal-kontent mos-kontent avtomatik

Misol

HTML

Mening bo'yim 50 piksel.
Mening bo'yim 25 piksel.
Men ota-onamnikining yarmiga tengman.

CSS

div (kenglik: 250px; chekka-pastki: 5px; hoshiya: 2px toʻliq koʻk; ) #uzunroq (balandlik: 50px; ) #qisqaroq (balandlik: 25px; ) #ota-ona (balandlik: 100px; ) #child (boʻyi: 50% ; kengligi: 75%; )

Natija

Foydalanish imkoniyati bilan bog'liq muammolar

Matn hajmini oshirish uchun sahifa kattalashtirilganda balandlik bilan o'rnatilgan elementlar kesilmasligiga va/yoki boshqa kontentni berkitmasligiga ishonch hosil qiling.

Texnik xususiyatlari

Spetsifikatsiya Holat Izoh
CSS-ning ichki va tashqi o'lchamlari moduli 4-darajali
Tahririyat loyihasi
CSS ichki va tashqi o'lcham moduli 3-darajali
Ushbu spetsifikatsiyadagi "balandlik" ta'rifi.
Ishchi qoralama max-content , min-content , fit-content kalit so'zlari qo'shildi.
CSS o'tishlari
Ushbu spetsifikatsiyadagi "balandlik" ta'rifi.
Ishchi qoralama Balandlikni animatsiya sifatida ko'rsatadi.
CSS 2 darajasi (1-nashr)
Ushbu spetsifikatsiyadagi "balandlik" ta'rifi.
Tavsiya CSS ma'lumotlar turini qo'llab-quvvatlaydi masofa qiymatini ifodalaydi. Uzunliklardan kenglik, balandlik, chekka, to'ldirish, chegara kengligi, shrift o'lchami va matn soyasi kabi ko'plab CSS xususiyatlarida foydalanish mumkin."> qiymatlari va qaysi elementga tegishliligi aniq.
CSS 1-daraja
Ushbu spetsifikatsiyadagi "balandlik" ta'rifi.
Tavsiya Dastlabki ta'rif.
Boshlang'ich qiymatavto
ga tegishlibarcha elementlar, lekin almashtirilmagan ichki elementlar, jadval ustunlari va ustun guruhlari
Meroslanganyo'q
FoizlarFoiz hosil qilingan blokning balandligi bo'yicha hisoblanadi. Agar o'z ichiga olgan blokning balandligi aniq ko'rsatilmagan bo'lsa (ya'ni, bu tarkib balandligiga bog'liq) va bu element mutlaqo joylashmagan bo'lsa, qiymat hisoblab chiqiladi. Ildiz elementidagi foiz balandligi boshlang'ich o'z ichiga olgan blokga nisbatan.
OAVingl
Hisoblangan qiymatfoiz yoki avtomatik yoki mutlaq uzunlik
Animatsiya turiCSS ma'lumotlar turi haqiqiy, suzuvchi nuqtali raqamlar sifatida interpolyatsiya qilinadi.">uzunlik , CSS ma'lumotlar turi haqiqiy, suzuvchi nuqtali raqamlar sifatida interpolyatsiya qilinadi.">foiz yoki calc();
Kanonik tartibrasmiy grammatika tomonidan aniqlangan noyob noaniq tartib

Brauzer mosligi

Ushbu sahifadagi muvofiqlik jadvali tuzilgan ma'lumotlardan yaratilgan. Agar siz maʼlumotlarga oʻz hissangizni qoʻshmoqchi boʻlsangiz, iltimos, https://github.com/mdn/browser-compat-data manziliga tashrif buyuring va bizga tortish soʻrovini yuboring.

GitHub-da muvofiqlik ma'lumotlarini yangilang

Ish stoliMobil
ChromeChetFirefoxInternet ExplorerOperaSafariAndroid veb-ko'rinishiAndroid uchun ChromeAndroid uchun FirefoxAndroid uchun OperaIOS uchun SafariSamsung Internet
balandligiChrome toʻliq qoʻllab-quvvatlash 1Edge to'liq qo'llab-quvvatlash 12Firefox to'liq qo'llab-quvvatlash 1IE To'liq qo'llab-quvvatlash 4Opera to'liq qo'llab-quvvatlash 7Safari to'liq qo'llab-quvvatlash 1WebView Android to'liq qo'llab-quvvatlash 1Chrome Android to'liq qo'llab-quvvatlash 18Firefox Android to'liq qo'llab-quvvatlash 4Opera Android to'liq qo'llab-quvvatlash 10.1Safari iOS to'liq qo'llab-quvvatlash 1Samsung Internet Android To'liq qo'llab-quvvatlash 1.0
mos tarkibChrome toʻliq qoʻllab-quvvatlash 46Edge Yo'q. Yo'qFirefox Yo'q. Yo'qIE Qo'llab-quvvatlash yo'qOpera to'liq qo'llab-quvvatlash 33Safari To‘liq qo‘llab-quvvatlash 11 To‘liq qo‘llab-quvvatlash 11 To‘liq qo‘llab-quvvatlash 9

Prefiksli

Prefiksli
Opera Androidmi?Safari iOS Toʻliq qoʻllab-quvvatlash 11 Toʻliq qoʻllab-quvvatlash 11 Toʻliq qoʻllab-quvvatlash 9

Prefiksli

Prefiksli Sotuvchi prefiksi bilan amalga oshiriladi: -webkit-
maksimal tarkibChrome toʻliq qoʻllab-quvvatlash 46Edge Yo'q. Yo'q

Prefiksli

Prefiksli
IE Qo'llab-quvvatlash yo'qOpera to'liq qo'llab-quvvatlash 44Safari to'liq qo'llab-quvvatlash 11WebView Android to'liq qo'llab-quvvatlash 46Chrome Android toʻliq qoʻllab-quvvatlash 46

Prefiksli

Prefiksli Sotuvchi prefiksi bilan amalga oshiriladi: -moz-
Samsung Internet Android to'liq qo'llab-quvvatlash 5.0
minimal tarkibChrome toʻliq qoʻllab-quvvatlash 46Edge Yo'q. Yo'qFirefox Toʻliq qoʻllab-quvvatlash 66 Toʻliq qoʻllab-quvvatlash 66 Toʻliq qoʻllab-quvvatlash 3

Prefiksli

Prefiksli Sotuvchi prefiksi bilan amalga oshiriladi: -moz-
IE Qo'llab-quvvatlash yo'qOpera to'liq qo'llab-quvvatlash 44Safari to'liq qo'llab-quvvatlash 11WebView Android to'liq qo'llab-quvvatlash 46Chrome Android toʻliq qoʻllab-quvvatlash 46Firefox Android Toʻliq qoʻllab-quvvatlash 66 Toʻliq qoʻllab-quvvatlash 66 Toʻliq qoʻllab-quvvatlash 4

Prefiksli

Prefiksli Sotuvchi prefiksi bilan amalga oshiriladi: -moz-
Opera Android to'liq qo'llab-quvvatlash 43Safari iOS to'liq qo'llab-quvvatlash 11Samsung Internet Android to'liq qo'llab-quvvatlash 5.0
cho'zishChrome toʻliq qoʻllab-quvvatlash 28

Webkit-to'ldirish-mavjud">Muqobil ism

To'liq qo'llab-quvvatlash 28

Webkit-to'ldirish-mavjud">Muqobil ism

Webkit-to'ldirish-mavjud">Muqobil ism

Edge Yo'q. Yo'qFirefox Yo'q. Yo'qIE Qo'llab-quvvatlash yo'qOpera to'liq qo'llab-quvvatlash 15

Webkit-to'ldirish-mavjud">Muqobil ism

To'liq qo'llab-quvvatlash 15

Webkit-to'ldirish-mavjud">Muqobil ism

Webkit-to'ldirish-mavjud">Muqobil ism Nostandart nomdan foydalanadi: -webkit-fill-available

Safari to'liq qo'llab-quvvatlash 9

Webkit-to'ldirish-mavjud">Muqobil ism

To'liq qo'llab-quvvatlash 9

Webkit-to'ldirish-mavjud">Muqobil ism

Webkit-to'ldirish-mavjud">Muqobil ism Nostandart nomdan foydalanadi: -webkit-fill-available

WebView Android to'liq qo'llab-quvvatlash 4.4

Webkit-to'ldirish-mavjud">Muqobil ism

To'liq qo'llab-quvvatlash 4.4

Webkit-to'ldirish-mavjud">Muqobil ism

Webkit-to'ldirish-mavjud">Muqobil ism Nostandart nomdan foydalanadi: -webkit-fill-available

Chrome Android to'liq qo'llab-quvvatlash 28

Webkit-to'ldirish-mavjud">Muqobil ism

To'liq qo'llab-quvvatlash 28

Webkit-to'ldirish-mavjud">Muqobil ism

Webkit-to'ldirish-mavjud">Muqobil ism Nostandart nomdan foydalanadi: -webkit-fill-available

Firefox Android Qo'llab-quvvatlanmaydiOpera Androidmi?Safari iOS to'liq qo'llab-quvvatlash 9

Webkit-to'ldirish-mavjud">Muqobil ism

To'liq qo'llab-quvvatlash 9

Webkit-to'ldirish-mavjud">Muqobil ism

Webkit-to'ldirish-mavjud">Muqobil ism Nostandart nomdan foydalanadi: -webkit-fill-available

Samsung Internet Android to'liq qo'llab-quvvatlash 5.0

Webkit-to'ldirish-mavjud">Muqobil ism

To'liq qo'llab-quvvatlash 5.0

Webkit-to'ldirish-mavjud">Muqobil ism

Webkit-to'ldirish-mavjud">Muqobil ism Nostandart nomdan foydalanadi: -webkit-fill-available

Afsona

To'liq qo'llab-quvvatlash To'liq qo'llab-quvvatlash Qo'llab-quvvatlash yo'q Qo'llab-quvvatlash yo'q Moslik noma'lum Moslik noma'lum Nostandart nomdan foydalanadi. Nostandart nomdan foydalanadi. Foydalanish uchun sotuvchi prefiksi yoki boshqa nom talab qilinadi. Foydalanish uchun sotuvchi prefiksi yoki boshqa nom talab qilinadi.

Salom, aziz o'quvchilar! Bugun biz CSS xususiyatlaridan foydalangan holda veb-sahifadagi blok elementlarining o'lchamlarini qanday o'rnatishni va agar u elementga mos kelmasa, kontentning ko'rinishini sozlashni ko'rib chiqamiz.

eni va balandligi - CSS-dagi elementlarning kengligi va balandligi

Kenglik va balandlik uslubi atributlaridan foydalanib, mos ravishda blok elementlarining kengligi va balandligini o'rnatishingiz mumkin:

kengligi: avtomatik |<ширина>|meros
balandlik: avtomatik |<ширина>|meros

Qiymat sifatida siz css-da mavjud bo'lgan har qanday o'lchov birliklaridan foydalanishingiz mumkin - masalan, piksel (px), dyuym (dyuym), nuqta (pt) va boshqalar:

p (kenglik: 200px; balandlik: 150px)

Mutlaq birliklarga qo'shimcha ravishda siz elementlarning nisbiy hajmini foiz sifatida belgilashingiz mumkin. Bunday holda, elementning kengligi va balandligi asosiy elementning kengligi va balandligiga bog'liq bo'ladi. Agar ota-ona aniq ko'rsatilmagan bo'lsa, o'lchamlar brauzer oynasiga bog'liq bo'ladi.

div (kengligi: 40%;)

Avtomatik qiymat element o'lchamlarini boshqarishni veb-brauzerga qoldiradi va standart qiymatdir. Bunday holda, elementning o'lchamlari uning barcha tarkibiga to'liq mos keladigan darajada bo'ladi.

Keling, bir nechta misollarni ko'rib chiqaylik.





kengligi va balandligi




Bizning avtomobil veb-saytimizga xush kelibsiz. Bu yerda siz avtomobillar, ularning texnik xususiyatlari va xususiyatlari haqida ko'plab qiziqarli va foydali maqolalarni topasiz.




Natija:

Ushbu misolda biz div yaratdik va ichiga matnli p paragrafni joylashtirdik. Div uchun biz o'lchamlarni 300 dan 300 pikselgacha o'rnatamiz. P elementi kenglik va balandlik xossalarining qiymatlari avtomatikga teng, shuning uchun siz skrinshotda ko'rib turganingizdek, uning kengligi asosiy elementning kengligiga teng bo'lib o'rnatiladi va balandligi shunday bo'ladiki, u barcha matnga mos keladi. paragraf.

Endi p paragraf uchun CSS sozlamalarini o'zgartiramiz va qat'iy o'lchamlarni o'rnatamiz:

2-qavat(
fon: #eee;
kengligi: 250px;
}

Natija:

Ko'rib turganingizdek, paragrafning kengligi toraydi va 250 pikselga teng bo'ldi va balandligi parametri avtomatik bo'lganligi sababli matn mos bo'lishi uchun balandligi oshdi.

Endi paragrafning balandligi va kengligini foizlarda belgilaymiz:

2-qavat(
fon: #eee;
kengligi: 50%;
balandligi: 50%;
}

Natija:

Rasmda ko'rib turganingizdek, p elementining kengligi div elementining yarmiga teng bo'ldi. Va balandligi oshdi va div balandligining 75 foiziga teng bo'ldi.

Har qanday elementlarning kengligi va balandligini nisbiy birliklarda belgilashda siz minimal va maksimal mumkin bo'lgan o'lchamlarni ko'rsatishingiz kerak bo'lishi mumkin. Axir, masalan, brauzer oynasining o'lchamini o'zgartirganda, elementning o'lchamlari kamayishi va shu qadar kattalashishi mumkinki, saytning o'qish qobiliyati juda past bo'ladi.

Minimal kenglik va balandlikni min-width va min-height atributlari yordamida belgilashingiz mumkin:

min-kenglik:<ширина>
min balandligi:<высота>

Maksimal kenglik va maksimal balandlikdagi o'xshash uslub atributlari maksimal o'lchamlarni o'rnatishga imkon beradi:

maksimal kenglik:<ширина>
maksimal balandlik:<высота>

Balandlik va kenglik uchun maksimal va minimal qiymatlarni o'rnatishda elementning o'lchamlari maksimaldan kattaroq va minimal qiymatlardan kichik bo'lishi mumkin emasligi aniq.

Vazifani tushuntirishga arziydi balandlik va kenglik parametrlari faqat blok teglari uchun mantiqiy, chunki inline elementlar uchun bu parametrlar brauzer tomonidan qayta ishlanmaydi.

Elementning balandligi va kengligi uchun qattiq parametrlarni o'rnatishda uning tarkibi cheklangan maydonga mos kelmasligi mumkin.

Masalan, yuqorida ko'rib chiqilgan misollardan p paragraf hajmini 100 pikselgacha kamaytiraylik:

2-qavat(
fon: #eee;
kengligi: 100px;
balandligi: 100px;
}

Natija:

Ko'rib turganingizdek, matn paragrafning chegarasidan tashqariga chiqdi va u juda chiroyli ko'rinmaydi. Bunday holatlarning oldini olish uchun CSS qoidasi mavjud - toshib ketish.

Kontentni yashirish (yashirin, ko'rinadigan) yoki aylantirish (aylantirish, avtomatik) uchun ortiqcha parametr

Elementning kengligi va balandligi cheklangan bo'lsa, kontent to'lib ketishi mumkin. Keling, ikkita paragrafni ko'rib chiqaylik:

Birinchi xatboshi matni


Ikkinchi xatboshi matni

Natija:

Paragraflarning kengligi ham, balandligi ham ko'rsatilmaganligi sababli, brauzer avtomatik qiymatni o'z tushunishiga asoslanib, ularni mustaqil ravishda hisoblab chiqadi. Natijada, paragraflar mavjud bo'lgan barcha bo'sh joyni ular tarkibiga mos ravishda kengligi va balandligi bo'yicha egalladi.

Endi birinchi xatboshining kengligini cheklaylik:

Birinchi xatboshi matni


Ikkinchi xatboshi matni

Natija:

Paragrafning kengligi kutilgan edi, balandligi esa butun matnni sig'dirish uchun o'rnatildi.

Xo'sh, endi birinchi xatboshining balandligini cheklaylik:

Birinchi xatboshi matni


Ikkinchi xatboshi matni

Natijada, matn bunday cheklangan paragrafga to'g'ri kelmasligi ma'lum bo'ldi va shuning uchun u pastki qo'shni hududiga yugurdi. Shunga ko'ra, matnni birinchi yoki ikkinchi xatboshilarda o'qish deyarli mumkin emas. Bu shunday vaziyatlarda tarkibning xatti-harakatlarini nazorat qilishdir toshib ketish qoidasi:

toshib ketish: ko'rinadigan|yashirin|aylantirish|avtomatik|meros

Odatiy bo'lib, overflow ko'rinadigan qilib o'rnatiladi, bu brauzerga konteynerga sig'maydigan tarkibni ko'rsatishni bildiradi. Natijani yuqoridagi misolda ko'rish mumkin.

Qoida konteynerga sig'maydigan hamma narsani yashiradi:

O'tkazish qiymati elementda vertikal va gorizontal aylantirish satrlarini ko'rsatadi, hatto barcha tarkib mos bo'lsa ham:

Birinchi xatboshi matni


Ikkinchi xatboshi matni

Agar siz konteyner uchun aylantirish chiziqlarini yasashingiz kerak bo'lsa, eng mashhur va mantiqiy yechim bu qiymatdir avto. Bunday holda, brauzerning o'zi qachon va qaysi o'qlarda aylantirish satrlarini ko'rsatishi kerakligini aniqlaydi:

Birinchi xatboshi matni


Ikkinchi xatboshi matni

Natija:

O'tkazish panelini sozlash uchun siz alohida o'qlarda aylantirish ko'rinishini sozlash imkonini beruvchi overflow-x va overflow-y uslubi atributlaridan ham foydalanishingiz mumkin. Shuning uchun javobgar gorizontal o'q, va uchun vertikal o'q.

Shuning uchun, masalan, hech qachon paragrafda ko'rinmaslik uchun gorizontal aylantirish kerak bo'lsa va vertikal aylantirish faqat kerak bo'lganda paydo bo'lishi uchun quyidagi CSS qoidasini yozing:

p(toshib-x:yashirin;toshib-y:avto;)

Va muammo hal qilinadi.

Ana xolos. Keyingi safargacha. Blog yangilanishlariga obuna bo'lishni unutmang va agar siz ijtimoiy tarmoq tugmalaridan foydalansangiz, men minnatdor bo'laman.

Element balandligi va kengligi hisoblangan miqdorlardir. Veb-sahifaning har bir elementi to'rtburchaklar maydonni hosil qiladi, bu esa o'z navbatida bir nechta sohalardan iborat - tarkib sohalari, to'ldirish joylari, ramka joylari Va dala maydonlari element.

Element mazmuni va uning chegarasi o'rtasida chekinish to'ldirish, element chegarasidan tashqarida - dalalar marj. Har bir element uchun kontent maydoni mavjud; boshqa joylar ixtiyoriy.

Guruch. 1. Elementning blokli modeli

1. Element balandligi

height xususiyati blok elementi tarkibining balandligini belgilaydi va inline elementlarni ko'rsatishga ta'sir qilmaydi: inline; . Inline elementlarning balandligi ular tarkibining balandligiga teng. Salbiy qiymatlarga ruxsat berilmaydi. Mulk meros qilib olinmaydi.

Sintaksis

P (balandligi: 100px;)

2. Element kengligi

width xususiyati blok elementi tarkibining kengligini belgilaydi va inline elementlarni ko'rsatishga ta'sir qilmaydi: inline; . Inline elementlarning kengligi ularning tarkibining kengligiga teng. Salbiy qiymatlarga ruxsat berilmaydi. Mulk meros qilib olinmaydi.

Sintaksis

P (kengligi: 100px;)

3. Mutlaq joylashtirilgan elementning balandligi va kengligi

Mutlaq joylashtirilgan element pozitsiyasining kengligi va balandligini o'rnating: mutlaq; har doim ham kerak emas, chunki bu holda balandlik va kenglik elementning ofseti bilan aniq belgilanadi. Agar elementda chegaralar va chekkalar belgilangan bo'lsa, ular kontent maydoni hajmini tegishli qiymatlar bilan kamaytiradi.

Div (fon: #6A7690; pozitsiya: mutlaq; tepa: 0; pastki: 0; chap: 50%; o'ng: 0; ) /*bu holda elementning balandligi 100%, kengligi 50% ni tashkil qiladi. asosiy blok*/
Guruch. 2. Mutlaq joylashtirilgan elementning balandligi va kengligi

4. Elementlarni to‘ldirish

padding xususiyatidan foydalanib, bir vaqtning o'zida elementning bir necha tomoni uchun quyidagi tartibda to'ldirishni o'rnatishingiz mumkin: . Agar element fonga ega bo'lsa, u to'ldirish uchun ham qo'llaniladi. Salbiy qiymatlarga ruxsat berilmaydi. Mulk meros qilib olinmaydi.

Agar uchta qiymat berilgan bo'lsa, masalan, div (to'ldirish: 10px 20px 30px;), ular quyidagi tartibda taqsimlanadi: birinchi qiymat - yuqori to'ldirish, ikkinchisi - o'ng va chap to'ldirish, uchinchisi pastki qoplama hisoblanadi.
Agar ikkita qiymat berilgan bo'lsa, masalan, div (to'ldirish: 10px 20px;), keyin birinchisi yuqori va pastki to'ldirishni o'rnatadi, ikkinchisi o'ng va chapni o'rnatadi.
div (padding: 10px;) kabi bitta qiymat elementning barcha tomonlarida bir xil toʻldirishni oʻrnatadi.

Sintaksis

P (to‘ldirish: 5px 10px 15px 10px;)

4.1. Elementning bir tomonida to'ldirish

Elementning faqat bir tomoniga toʻldirishni oʻrnatish uchun siz padding-top , padding-right , padding-bottom , padding-left xususiyatlaridan birini ishlatishingiz kerak, masalan:

P (chap to'ldirish: 10px;)

5. Element chegaralari

Aksariyat elementlar bir-biridan chegaralar bilan ajratilgan. Margin xossasi elementning maydonlarini quyidagi tartibda qayd etish uchun qisqa shakldir: yuqori, o'ng, pastki, chap. Bir necha tomondan chekka o'rnatish kerak bo'lganda foydalaniladi, lekin to'rtta bo'lishi shart emas. Blok elementlarining vertikal qo'shni chekkalari yiqilib, yuqori va pastki chetlari inline elementlarga ta'sir qilmaydi. Salbiy qiymatlarga ruxsat beriladi. Mulk meros qilib olinmaydi.

Agar uchta qiymat berilgan bo'lsa, masalan, div (chegara: 10px 20px 30px;), u holda ular quyidagi tartibda taqsimlanadi: birinchi qiymat yuqori chet, ikkinchisi o'ng va chap chekka, uchinchisi pastki chegara hisoblanadi.
Agar ikkita qiymat berilgan bo'lsa, masalan, div (chekka: 10px 20px;), keyin birinchisi yuqori va pastki chegaralarni, ikkinchisi o'ng va chapni o'rnatadi.
div (margin: 10px;) kabi bitta qiymat elementning barcha tomonlarida teng chekkalarni o'rnatadi.

(margin: 0 auto;) faqat elementning kengligi aniq ko'rsatilgan bo'lsa ishlaydi.


Guruch. 3. chegara: avtomatik; mutlaqo joylashtirilgan element uchun

Sintaksis

Div (chegara: 5px 10px 2px 5px;)

5.1. Elementning bir tomonidagi chegaralar

margin-top , margin-right , margin-bottom , margin-left xususiyatlari elementning har bir tomonidagi mos keladigan chekkalarni boshqaradi, masalan:

P (chet-chap: 10px;)

6. Kenglik va balandlik chegarasi

CSS shuningdek, veb-sahifa elementlarining balandligi va kengligini o'rnatish bilan bog'liq bo'lgan boshqa xususiyatlarni ham qo'llab-quvvatlaydi: min-balandlik, min-kenglik, maksimal balandlik va maksimal kenglik. Ushbu xususiyatlar elementning kengligi yoki balandligi uchun minimal va maksimal qiymatlarni o'rnatishga imkon beradi, bu elementga mavjud bo'sh joyni to'ldirish qobiliyatini beradi. Xususiyatlar ko'pincha sezgir veb-sahifa dizayni uchun ishlatiladi. Inline va jadval elementlaridan tashqari barcha elementlar uchun amal qiladi. Ular har doim asosiy qoidadan keyin keladi, ya'ni. element balandligi yoki kengligi bergandan keyin. Meros bo'lmagan.

Ba'zi o'lchov birliklari yordamida oddiy o'lchamlarni va boshqa birliklar yordamida o'lcham cheklovlarini belgilashingiz mumkin, masalan:

Div (kenglik: 400px; maksimal kenglik: 50%; )

Agar bu qiymat konteyner blokining kengligining 50% dan oshmasa, element faqat 400px kengligiga ega bo'ladi, aks holda uning kengligi kamayadi.

Ushbu maqolada biz CSS-da blokning balandligini uning kengligining foizi sifatida qanday belgilash mumkinligini ko'rib chiqamiz. Keling, turli o'lchamdagi rasmlardan Bootstrap karuselini (slayder) yaratish misolida ushbu texnologiyadan foydalanishni ko'rib chiqaylik.

Uning kengligining ma'lum bir foizini tashkil etadigan balandlikdagi blokni yaratish

  1. 2 blokdan iborat HTML strukturasini yarating:
    Birinchi blokda 2 ta sinf mavjud. Elementga javob beradigan sinfdan foydalanib, biz blokning nisbiy joylashuvini o'rnatamiz. Buni shunday qilish kerakki, 2-blok (mutlaq joylashuvga ega bo'ladi) unga nisbatan joylashgan. Bundan tashqari, ushbu sinf psevdo-elementni qo'shish uchun ham ishlatiladi: mos keladigan elementlarning mazmunidan oldin (elementga javob beruvchi). Ushbu element padding-top CSS xususiyatidan foydalangan holda uning kengligiga nisbatan kerakli blok balandligini o'rnatadi. Ushbu usulning hiylasi shundaki, agar to'ldirish xususiyati o'rnatilgan bo'lsa piksellarda emas, balki foiz sifatida, keyin uning kengligiga nisbatan brauzer tomonidan hisoblab chiqiladi. Shunday qilib, kerakli balandlikdagi blokni olishingiz mumkin. Keyingi qadam 2-blokga mutlaq pozitsiyani berish va uni birinchi blok bilan tekislashdir.
  2. Sahifaga quyidagi CSS kodini qo'shing: .item-responsive (position: nisbiy; /* nisbiy joylashishni aniqlash */ ) .item-responsive:before ( display: block; /* elementni blok sifatida ko'rsatish */ kontent: "" ; /* psevdo-element tarkibi */ kengligi: 100%; /* element kengligi */ ) .item-16by9 (to‘ldiruvchining tepasi: 56,25%; /* (9:16)*100% */ ) .elementga javob beruvchi >.content ( pozitsiyasi: mutlaq; /* elementning mutlaq pozitsiyasi */ /* elementning holati */ yuqori: 0; chap: 0; o'ng: 0; pastki: 0; ) /* Agar kerak bo'lsa (bloklar uchun bu sinflarga ega) */ .item -4by3 ( padding-top: 75%; /* (3:4)*100% */ ) .item-2by1 ( padding-top: 50%; /* (1:2) *100% */ ) .element -1by1 (to‘ldiruvchi-usti: 100%; /* (1:1)*100% */ )

Bootstrap karuselini yaratish uchun yuqoridagi texnologiyadan foydalanish

Agar siz Bootstrap bilan tanish bo'lmasangiz va u nima ekanligini bilmoqchi bo'lsangiz, Bootstrap-ga kirish maqolasidan foydalanishingiz mumkin.

Keling, Bootstrap karusel slaydlarini ko'rsatish uchun yuqoridagi HTML strukturasi va CSS kodini ishlatadigan misolni ko'rib chiqaylik.

Biz quyidagi fayllardan rasm sifatida foydalanamiz:

  • carousel_1.jpg (kenglik = 736px, balandlik = 552px, tomonlar nisbati (balandlik va kenglik) = 1.33);
  • carousel_2.jpg (kenglik = 1155px, balandlik = 1280px, tomonlar nisbati (balandlik va kenglik) = 0,9);
  • carousel_3.jpg (kenglik = 1846px, balandlik = 1028px, tomonlar nisbati (balandlik va kenglik) = 1.8);
  • carousel_4.jpg (kenglik = 1140px, balandlik = 550px, tomonlar nisbati (balandlik va kenglik) = 2.07);
  • carousel_5.jpg (kenglik = 800px, balandlik = 600px, tomonlar nisbati (balandlik va kenglik) = 1.33);

Biz rasmlarni fon sifatida o'rnatamiz. Bu sizga Bootstrap karuselida tomonlar nisbati teng bo'lmagan 3 ta rasmdan foydalanish imkonini beradi.


Karuselning HTML belgisi:

Carousel CSS kodi:

Elementga javob beruvchi (pozitsiya: nisbiy; /* nisbiy joylashish */ ) .elementga javob beruvchi: oldin ( displey: blok; /* elementni blok sifatida ko'rsatish */ kontent: ""; /* soxta element tarkibi */ kengligi : 100%; /* element kengligi */ ) .item-16by9 (to‘ldiruvchi-usti: 56,25%; /* (9:16)*100% */ ) .item-responsive>.content (joy: mutlaq; /* elementning mutlaq pozitsiyasi * / /* element pozitsiyasi */ tepa: 0; chap: 0; o'ng: 0; pastki: 0; fon o'lchami: qopqoq !muhim; )

Ob'ektga ma'lum bir kenglik va balandlik berilishi uchun CSS-da ikkita xususiyat mavjud - kenglik va balandlik (mos ravishda). Ularning yordami bilan siz elementlar uchun qattiq o'lchamlarni o'rnatishingiz mumkin, u yon panel, rasm, jadval yoki har qanday blok.

Kenglik va balandlikni hisoblash xususiyatlari

Ob'ektning kengligi yoki balandligini aniqlash uchun CSS-da istalgan uzunlik birligidan foydalanishingiz mumkin. Piksellarni tushunish eng oson. Agar siz foiz belgisidan foydalansangiz, ob'ektning kengligi uning ota-onasining kengligiga bog'liq bo'lishini yodda tuting. Agar yo'q bo'lsa, elementning kengligi brauzer oynasining kengligidan kelib chiqqan holda hisoblanadi (agar foydalanuvchi oyna kengligini o'zgartirsa, kenglik qiymati qayta hisoblab chiqiladi).

Siz em birligini kenglik qiymati sifatida ham ishlatishingiz mumkin, bu taxminan matn shrifti o'lchami bilan bir xil, lekin faqat an'anaviy birliklarda. Masalan, siz shrift o'lchamini 24px qilib o'rnatdingiz. Keyin ushbu element uchun 1em 24px ga teng bo'ladi va agar siz kenglik: 2em ni o'rnatsangiz, kenglik bo'ladi. 2x24px = 48 piksel. Agar shrift o'lchami o'rnatilmagan bo'lsa, u meros qilib olinadi.

Foiz sifatida ko'rsatilgan balandlik kenglik bilan bir xil tarzda hisoblanadi, ammo hisoblash asosiy elementning kengligidan ko'ra balandligiga asoslanadi. Agar ota-ona bo'lmasa, balandlik brauzer oynasining balandligiga bog'liq bo'ladi.

Bola elementining foizli kengligi va balandligi ota-onaning o'lchamlari asosida hisoblanadi

Kenglik va balandlikka nima kiradi

Darhol eslash kerakki, kenglik va balandlik xususiyatlari o'ziga xos xususiyatga ega - ular chekka, to'ldirish va chegara qiymatlarini o'z ichiga olmaydi. Kenglik/balandlik uchun o'rnatgan qiymat faqat elementning kontent maydonining kengligi/balandligini bildiradi.

Shunday qilib, masalan, elementning haqiqiy kengligini (u aslida ekranda egallagan bo'sh joy) hisoblash uchun biroz arifmetika talab qilinadi. Haqiqiy kenglik kenglik, to'ldirish, chegara va chekka kabi qiymatlar yig'indisidir. Eslatib o'tamiz, biz ilgari CSS qutisi modeli qanday ko'rinishini ko'rib chiqdik.

Bilimlarni mustahkamlash uchun biz misol keltiramiz. Aytaylik, sizda ushbu uslubga ega element mavjud:

Kengligi: 200px; chap chekka: 15px; chekka o'ng: 15px; padding-chap: 10px; chegara-chap: 3px qattiq #333;

Elementning haqiqiy kengligini hisoblash uchun qo'shimchani bajaring:

kenglik + chekka-chap + chekka-o'ng + to'ldirish-chap + chegara-chap = 200px + 15px + 15px + 10px + 3px = 243px (haqiqiy kenglik)

balandlik xususiyati, masalan, tasvirning balandligini aniq nazorat qilishingiz kerak bo'lsa foydali bo'lishi mumkin. Biroq, konteynerda matn yoki balandligi o'zgarishi mumkin bo'lgan boshqa tarkib bo'lsa, konteyner uchun qattiq balandlikni o'rnatish tavsiya etilmaydi, chunki bunday tartib kutilmagan natijaga olib kelishi mumkin - kontent tepada ko'rsatiladi. boshqa tarkibdan.

Ruxsat etilgan balandlik o'rniga balandlikdan foydalaning: avtomatik - bu yozuv ob'ektning balandligi undagi tarkibga qarab avtomatik ravishda hisoblanishini bildiradi.

Tartibning yiqilishiga yo'l qo'ymaslikning yana bir yo'li to'lib toshganidan foydalanishdir: avtomatik belgi. Bunday holda, agar kontent balandligi uning konteynerining balandligidan oshsa, brauzer konteynerga aylantirish paneli qo'shadi.



Keyingi darsda siz qiziqarli va juda foydali xususiyatdan foydalanib, elementning kengligini qanday bekor qilishingiz mumkinligini bilib olasiz