Middle
CSS-ში საზღვრების ჩამოშლა რა არის?
sobes.tech AI
პასუხი AI-სგან
სხლოპვა საზღვრების (margin collapsing) — ეს CSS-ით გამოვლენაა, როდესაც ორი ან მეტი მიმდებარე ბლოკის ვერტიკალური საზღვრები ერთიანდება ერთ საზღვრად. ამ საერთო საზღვრების ზომა განსაზღვრულია ამ სხლოპვის საზღვრების უმაღლესი მნიშვნელობით.
სხლოპვის ძირითადი წესები:
- სხლოპვა ეხება მხოლოდ ვერტიკალურ საზღვრებს (
margin-topდაmargin-bottom). ჰორიზონტალური საზღვრები არ სხლოპებიან. - სხლოპვა ხდება მხოლოდ მეზობელი ელემენტების საზღვრებს შორის, თუ მათ შორის სხვა ელემენტები, შევსება (
padding), საზღვრები (border) ან ბლოკური შინაარსი არ არის. - პირველი შვილის ზედა საზღვარი სხლოპდება მის მშობელთან ერთად, თუ მათ შორის არ არის
padding,borderან სხვა შინაარსი. - ბოლო შვილის ქვედა საზღვარი სხლოპდება მის მშობელთან ერთად, თუ მათ შორის არ არის
padding,borderან სხვა შინაარსი. - ცარიელი ელემენტის ზედა და ქვედა საზღვრები შეიძლება ერთმანეთს სხლოპდნენ, თუ მათ შორის არ არის
padding,borderან შინაარსი. - თუ ერთ-ერთი სხლოპვის საზღვარი უარყოფითია, საბოლოო ზომა განისაზღვრება დადებითი და უარყოფითი მნიშვნელობების ჯამით (ან აბსოლუტური მნიშვნელობით, თუ ორივე უარყოფითია და ჯამური მნიშვნელობა ნაკლებია ნულზე).
მაგალითი:
<div class="box1">ელემენტი 1</div>
<div class="box2">ელემენტი 2</div>
.box1 {
margin-bottom: 20px;
}
.box2 {
margin-top: 30px;
}
ამ შემთხვევაში box1 და box2 შორის ვერტიკალური დაშორება იქნება 30px (მეტია 20px და 30px-ის უმაღლესი), არა 50px.
სხლოპვის თავიდან აცილების მეთოდები:
- დაამატეთ
paddingანborderელემენტებს შორის. - შექმენით ახალი ფორმატირების ბლოკი (მაგალითად,
overflow: hidden,display: flow-rootან ფლოტირებული ელემენტები). - გამოიყენეთ
display: inline-block,display: flexანdisplay: gridელემენტებისთვის. - გამოიყენეთ აბსოლუტური პოზიციონირება.