Bunun yerine kullanmanın align-self: center
kullanımını align-items: center
.
Değiştirmeye flex-direction
veya kullanmaya gerek yok text-align
.
İşte tüm bunların çalışması için kodunuz, tek bir ayarlama ile:
ul {
height: 100%;
}
li {
display: flex;
justify-content: center;
/* align-self: center; <---- REMOVE */
align-items: center; /* <---- NEW */
background: silver;
width: 100%;
height: 20%;
}
Tesis esnek ürünleralign-self
için geçerlidir . Bunun dışında , üst öğesi ( veya) olmadığından veya uygulanmadığından esnek bir öğe değildir .li
ul
display: flex
display: inline-flex
Bu nedenle, ul
esnek bir kap li
değil, esnek bir öğe değildir ve align-self
hiçbir etkisi yoktur.
align-items
Mülkiyet benzer align-self
o uygulanır dışında esnek kaplarda .
Bu yana li
bir esnek konteyner, align-items
dikey olarak alt öğeleri merkezi kullanılabilir.
* {
padding: 0;
margin: 0;
}
html, body {
height: 100%;
}
ul {
height: 100%;
}
li {
display: flex;
justify-content: center;
/* align-self: center; */
align-items: center;
background: silver;
width: 100%;
height: 20%;
}
<ul>
<li>This is the text</li>
</ul>
kodlama demosu
Teknik olarak, işte nasıl align-items
ve align-self
çalışıyor ...
align-items
Mülkiyet (taşıyıcılar) varsayılan değerini belirler align-self
(öğeler üzerinde). Bu nedenle, align-items: center
tüm esnek öğelerin olarak ayarlanacağı anlamına gelir align-self: center
.
Ancak, align-self
öğeleri ayrı ayrı ayarlayarak bu varsayılanı geçersiz kılabilirsiniz .
Örneğin, eşit yükseklik sütunları isteyebilirsiniz, bu nedenle kap olarak ayarlanır align-items: stretch
. Ancak, bir öğenin üstüne sabitlenmesi gerekir, bu nedenle olarak ayarlanır align-self: flex-start
.
misal
Metin nasıl esnek bir öğe?
Bazı insanlar nasıl bir metin akışı merak ediyor olabilir ...
<li>This is the text</li>
'nin alt öğesidir li
.
Bunun nedeni, satır içi düzey öğesi tarafından açıkça sarılmamış olan metnin, satır içi kutu tarafından algoritmik olarak sarılmasıdır. Bu, onu ebeveynin anonim satır içi öğesi ve alt öğesi yapar .
CSS spesifikasyonundan:
9.2.2.1 Anonim satır içi kutular
Bir blok kabı öğesinin içinde doğrudan bulunan tüm metinler, anonim satır içi öğe olarak değerlendirilmelidir.
Flexbox özelliği benzer davranışlar sağlar.
4. Esnek Ürünler
Esnek bir kabın her akış içi alt öğesi, bir esnek öğe haline gelir ve doğrudan bir esnek kabın içinde bulunan her bitişik metin akışı, anonim bir esnek öğeye sarılır.
Bu nedenle, içindeki metin li
esnek bir öğedir.
align-items: baseline
. Farklı unicode karakterlerden vb. Gelen farklı yükseklikler için iyi