Bunun yerine kullanmanın align-self: centerkullanımını align-items: center.
Değiştirmeye flex-directionveya 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 .liuldisplay: flexdisplay: inline-flex
Bu nedenle, ulesnek bir kap lideğil, esnek bir öğe değildir ve align-selfhiçbir etkisi yoktur.
align-itemsMülkiyet benzer align-selfo uygulanır dışında esnek kaplarda .
Bu yana libir esnek konteyner, align-itemsdikey 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-itemsve align-selfçalışıyor ...
align-itemsMülkiyet (taşıyıcılar) varsayılan değerini belirler align-self(öğeler üzerinde). Bu nedenle, align-items: centertü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 liesnek bir öğedir.
align-items: baseline. Farklı unicode karakterlerden vb. Gelen farklı yükseklikler için iyi