Propriedade align-self
A propriedade align-self define o alinhamento
ao longo do eixo transversal para um bloco flex individual
e ao longo do eixo vertical para um elemento individual
em um grid.
Essencialmente, esta propriedade representa
a propriedade
align-items,
mas para um bloco específico.
Sintaxe
seletor {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
Valores
| Valor | Descrição |
|---|---|
flex-start |
O bloco é alinhado ao início do eixo transversal. |
flex-end |
O bloco é alinhado ao final do eixo transversal. |
center |
O bloco é centralizado no eixo transversal. |
baseline |
O bloco é alinhado de acordo com sua linha de base.
A linha de base é uma linha imaginária,
que passa pela borda inferior dos caracteres sem considerar os descendentes,
por exemplo, como nas letras 'p', 'q', 'y',
'g'.
|
stretch |
O bloco é esticado, ocupando todo o espaço disponível ao longo do eixo transversal,
mas ainda são considerados min-width e max-width,
se definidos. Se a largura e a altura forem definidas para o elemento -
stretch será ignorado.
|
auto |
O bloco será alinhado conforme definido na propriedade
align-items.
|
Valor padrão: auto.
Exemplo . Valor stretch
Neste exemplo, o valor flex-start foi definido para todos os blocos (propriedade align-items),
e para o terceiro bloco - align-self com o valor
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;
}
:
Exemplo . Valor flex-end
Neste exemplo, o valor flex-start foi definido para a propriedade
align-items para todos os blocos,
e para o terceiro bloco - align-self com o valor
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;
}
:
Exemplo . Alinhamento no início do eixo vertical no grid
Vamos definir o alinhamento para o primeiro elemento no início do eixo vertical:
<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;
}
:
Exemplo . Alinhamento no centro do eixo vertical no grid
Vamos definir o alinhamento do primeiro elemento no centro do eixo vertical:
<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;
}
:
Exemplo . Alinhamento no final do eixo vertical no grid
Vamos definir o alinhamento do nosso primeiro elemento no grid para o final do eixo vertical:
<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;
}
:
Veja também
-
propriedade
flex-direction,
que define a direção dos eixos dos blocos flex -
propriedade
justify-content,
que define o alinhamento ao longo do eixo principal -
propriedade
align-items,
que define o alinhamento ao longo do eixo transversal -
propriedade
flex-wrap,
que define a quebra de linha dos blocos flex -
propriedade
flex-flow,
abreviação para flex-direction e flex-wrap -
propriedade
order,
que define a ordem dos blocos flex -
propriedade
flex-basis,
que define o tamanho de um bloco flex específico -
propriedade
flex-grow,
que define a capacidade de crescimento dos blocos flex -
propriedade
flex-shrink,
que define a capacidade de redução dos blocos flex -
propriedade
flex,
abreviação paraflex-grow,flex-shrinkeflex-basis