Свойство align-self
Свойството align-self задава подравняване
по напречната ос за отделен
flex-блок и по вертикалната ос за отделен
елемент в грид.
По същество това свойство представлява
свойството
align-items,
но за конкретен блок.
Синтаксис
селектор {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
Стойности
| Стойност | Описание |
|---|---|
flex-start |
Блокът е притиснат към началото на напречната ос. |
flex-end |
Блокът е притиснат към края на напречната ос. |
center |
Блокът е позициониран в центъра на напречната ос. |
baseline |
Блокът се подравнява по своята базова линия.
Базовата линия е въображаема линия,
минаваща по долния ръб на символите без да се вземат предвид провисванията,
например като при буквите 'p', 'q', 'y',
'g'.
|
stretch |
Блокът е разпънат, заемайки цялото налично пространство по напречната ос,
като въпреки това се вземат предвид min-width и max-width,
ако са зададени. Ако са зададени ширина и височина за елемента -
stretch ще бъде игнориран.
|
auto |
Блокът ще бъде подравнен както е зададено в свойството
align-items.
|
Стойност по подразбиране: auto.
Пример . Стойност stretch
В този пример на всички блокове е зададена стойност
flex-start (свойство align-items),
а на третия блок - align-self със стойност
stretch:
<div id="parent">
<div>1</div>
<div>2</div>
<div id="elem">3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
height: 100px;
}
#parent > div {
min-width: 100px;
border: 1px solid #696989;
}
#elem {
align-self: stretch;
}
:
Пример . Стойност flex-end
В този пример за свойството
align-items на всички блокове е зададена стойност flex-start,
а на третия блок - align-self със стойност
flex-end:
<div id="parent">
<div>1</div>
<div>2</div>
<div id="elem">3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
height: 100px;
}
#parent > div {
min-width: 100px;
border: 1px solid #696989;
}
#elem {
align-self: flex-end;
}
:
Пример . Подравняване по началото на вертикалната ос в грид
Нека зададем подравняване за първия елемент по началото на вертикалната ос:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
</div>
#parent {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
#elem1 {
align-self: start;
}
:
Пример . Подравняване по центъра на вертикалната ос в грид
Нека зададем подравняване на първия елемент по центъра на вертикалната ос:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
#parent {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
#elem1 {
align-self: center;
}
:
Пример . Подравняване по края на вертикалната ос в грид
Нека зададем подравняване на нашия първи елемент в грида по края на вертикалната ос:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
#parent {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
#elem1 {
align-self: end;
}
:
Вижте също
-
свойство
flex-direction,
което задава посоката на осите на flex блоковете -
свойство
justify-content,
което задава подравняване по главната ос -
свойство
align-items,
което задава подравняване по напречната ос -
свойство
flex-wrap,
което задава многолинейност на flex блоковете -
свойство
flex-flow,
съкращение за flex-direction и flex-wrap -
свойство
order,
което задава реда на flex блоковете -
свойство
flex-basis,
което задава размера на конкретен flex блок -
свойство
flex-grow,
което задава "алчността" на flex блоковете -
свойство
flex-shrink,
което задава свиваемостта на flex блоковете -
свойство
flex,
съкращение заflex-grow,flex-shrinkиflex-basis