Position (static, relative, absolute)
position property нь элемент хуудасны дотор хэрхэн байрлахыг тодорхойлно. Зөв ойлгосноор элементийг хаана ч байрлуулах боломжтой болно.
position: static (анхдагч)
Бүх элементийн анхдагч утга. Элемент HTML-д бичигдсэн дарааллаараа байрладаг. top, right, bottom, left property нөлөөгүй.
.box {
position: static; /* анхдагч — тусгайлан бичих шаардлагагүй */
}
position: relative
Элемент анхны байрлалдаа харьцангуй шилжинэ. Хуудасны урсгалд байсаар байна — хоосон зай хэвээр үлдэнэ.
.shifted {
position: relative;
top: 20px; /* анхны байрлалаасаа 20px доош */
left: 10px; /* анхны байрлалаасаа 10px баруун тийш */
}
/* Анхны байрлалаас шилжүүлэх */
.nudge {
position: relative;
top: -4px; /* 4px дээш */
}
/* Голчлон absolute хүүхэдэд зориулсан containing block үүсгэхэд хэрэглэнэ */
.card {
position: relative; /* absolute хүүхдийн тулгуур болно */
background-color: #0f172a;
border-radius: 12px;
padding: 24px;
}
position: absolute
Элемент хуудасны ердийн урсгалаас гарна — байрш нь хоосон зай үлдэхгүй. Хамгийн ойрын position: relative (эсвэл absolute/fixed) эцэг элементэд харьцангуй байрладаг.
.parent {
position: relative; /* absolute хүүхдийн тулгуур */
width: 300px;
height: 200px;
background-color: #0f172a;
}
.child {
position: absolute;
top: 0; /* эцгийнхээ дээд ирмэгт */
right: 0; /* эцгийнхээ баруун ирмэгт */
/* эцгийн баруун дээд буланд байрлана */
}
Containing block гэж юу вэ?
absolute элементийн top/right/bottom/left утга containing block-т харьцангуй тооцогдоно. Containing block нь хамгийн ойрын position утгатай (static-аас бусад) эцэг элемент юм.
/* Containing block олох дүрэм */
.grandparent {
position: static; /* тулгуур болохгүй */
}
.parent {
position: relative; /* энэ нь containing block болно */
}
.child {
position: absolute;
top: 10px; /* .parent-аас 10px доош */
left: 10px; /* .parent-аас 10px баруун */
}
Жичлэл: position: relative байхгүй эцэг элемент байвал <body>-д харьцангуй байрладаг.
top / right / bottom / left
.box {
position: absolute;
top: 0; /* дээд ирмэгт наалдах */
right: 0; /* баруун ирмэгт наалдах */
bottom: 0; /* доод ирмэгт наалдах */
left: 0; /* зүүн ирмэгт наалдах */
/* Эцгийг бүхэлд нь дүүргэх */
}
Утга нь px, %, rem, эсвэл тооцоолсон утга байж болно:
.tooltip {
position: absolute;
bottom: calc(100% + 8px); /* эцгийнхээ дээр 8px зайтай */
left: 50%;
transform: translateX(-50%); /* хэвтээгээр голлуулах */
}
Нийтлэг хэрэглээний жишээнүүд
Буланд тэмдэг харуулах
.card {
position: relative;
background-color: #0f172a;
border: 1px solid #1e293b;
border-radius: 12px;
padding: 24px;
}
/* Шинэ тэмдэг */
.badge-new {
position: absolute;
top: -10px;
right: 12px;
background-color: #a78bfa;
color: #0b1120;
font-size: 0.7rem;
font-weight: 700;
padding: 2px 8px;
border-radius: 9999px;
}
Overlay давхарга
.image-wrapper {
position: relative;
border-radius: 12px;
overflow: hidden;
}
.image-wrapper img {
display: block;
width: 100%;
}
/* Дэвсгэр бүрхэх overlay */
.overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.2s;
}
.image-wrapper:hover .overlay {
opacity: 1;
}
Dropdown цэс
.nav-item {
position: relative;
}
.dropdown {
position: absolute;
top: 100%; /* nav-item-ийн доор */
left: 0;
min-width: 160px;
background-color: #0f172a;
border: 1px solid #1e293b;
border-radius: 8px;
padding: 8px;
display: none;
}
.nav-item:hover .dropdown {
display: block;
}
Дараагийн хичээлд:
position: fixed болон position: sticky-г судална — viewport-т наалдсан элемент хийх, scroll хийхэд хамт явдаг navbar, sticky sidebar зэрэг нийтлэг UI загваруудыг практикаар бүтээнэ.