HTML'de metin nasıl ortalanır
Metni tutan elementte CSS özelliği text-align: center kullan:
text-align elementin içindeki her satırı, linkler, resimler ve butonlar gibi satır içi şeyler dahil, ortalar. Miras alınır, yani onu bir kapsayıcıya vermek içindeki her şeydeki metni ortalar.
span'e değil, bloğa yaz
text-align blok kapsayıcılarda çalışır: <p>, <div>, başlıklar, tablo hücreleri. Bir <span> ya da <a> üzerinde hiçbir şey yapmaz, çünkü satır içi bir element yalnızca metni kadar geniştir ve içinde ortalanacak yer yoktur:
Çözüm her zaman aynıdır: text-align: center değerini üstteki bloğa taşı.
Bloğu ortala, satırları sola hizala
Birkaç satırlık bir paragrafta tamamen ortalanmış metin okunması zordur, çünkü her satır farklı bir yerden başlar. Yaygın bir kalıp, bloğu sayfada ortalamak ve metnini başa hizalı tutmaktır:
margin-inline: auto genişliği olan bir bloğu ortalar, text-align ise içindeki satırları ortalar. Kutuları ortalamak (flexbox, grid ya da margin ile) div ortalama sayfasında anlatılıyor.
Metni dikey olarak ortalamak
text-align yalnızca yatayda çalışır. Metni bir kutunun içinde dikey olarak ortalamak için kutuyu bir flex kapsayıcı yap:
align-items: center dikey olarak ortalar, justify-content: center yatay olarak ortalar, text-align: center ise birkaç satır olduğunda satırları birbirine göre ortalamaya devam eder. line-height yöntemi yalnızca yüksekliği bilinen bir kutudaki tek satırlık metin için çalışır.
Tüm text-align değerleri
| Değer | Sonuç |
|---|---|
start (varsayılan) | Satırlar baş kenardan başlar: İngilizcede sol, Arapça ve İbranicede sağ |
end | Satırlar son kenarda biter |
center | Satırlar ortalanır |
justify | Satırlar iki kenara da değecek şekilde yayılır (son satır hariç) |
left, right | Dil ne olursa olsun her zaman sol ya da her zaman sağ |
left ve right yerine start ve end tercih et: son kutunun gösterdiği gibi, sağdan sola yazılan dillerde otomatik olarak yön değiştirirler.
Eski center etiketi
Eski sayfalar metni <center> ile ya da bir align özelliğiyle ortalar:
<center>Old way</center>
<p align="center">Also old</p>
İkisi de artık kullanılmıyor. Tarayıcılar eski siteler bozulmasın diye onları hâlâ gösterir, ama güncel HTML'de geçersizdirler ve yerleşimi işaretlemeye karıştırırlar. CSS'te text-align: center kullan.
Metne girinti vermek
HTML'de girinti etiketi yoktur ve yazılan boşluklar birleşir (HTML'de boşluk sayfasına bak). Girintiler CSS'in işidir:
| Girinti | CSS |
|---|---|
| Yalnızca ilk satır | text-indent: 2em |
| Bütün blok | padding-inline-start: 2em ya da margin-inline-start: 2em |
| Asılı (ilk satır dışarıda) | padding-inline-start: 2em; text-indent: -2em |
em girintiyi yazı boyutuna bağlar, yani metinle birlikte ölçeklenir.
Sık yapılan hatalar
- Satır içi bir elemente
text-alignvermek. Onu üstteki bloğa ver. text-alignile bir kutunun ortalanmasını beklemek. Genişliği olan bir bloğu değil, metni ve satır içi içeriği ortalar. Kutular içinmargin-inline: autoya da flexbox kullan.<center>ya daalign="center"kullanmak. Artık kullanılmıyor. CSS kullan.- Uzun paragrafları ortalamak. Başlıkları ve kısa satırları ortala; gövde metnini başa hizalı tut.
ya da boşluklarla girinti vermek.text-indentya da padding kullan.
Sıkça Sorulan Sorular
HTML'de metin nasıl ortalanır?
Metni içeren elemente text-align: center ekle, örneğin <p style="text-align: center"> ya da h1 { text-align: center; } gibi bir CSS kuralı. O elementin içindeki her metin satırını ve satır içi içeriği ortalar.
text-align: center span üzerinde neden çalışmıyor?
Span satır içidir, yani yalnızca metni kadar geniştir ve içinde ortalanacak yer yoktur. text-align: center değerini üstteki bloğa (onu saran <p> ya da <div>) ver ya da span'i display: block yap.
Metni dikey olarak nasıl ortalarım?
Kapsayıcıyı bir flex kutusu yap: display: flex; align-items: center; (yatay olarak da ortalamak için justify-content: center ekle). Sabit yükseklikte bir kutudaki tek satır için yüksekliğe eşit bir line-height de çalışır.
<center> etiketi hâlâ geçerli mi?
Hayır. <center> ve align="center" özelliği artık kullanılmıyor. Tarayıcılar eski sayfalar için onları hâlâ gösterir, ama yeni kodda CSS'te text-align: center kullanılmalı.
HTML'de metne nasıl girinti verilir?
CSS kullan. text-indent: 2em bir paragrafın ilk satırına girinti verir, padding-inline-start: 2em ya da margin-inline-start: 2em bütün bloğa girinti verir. Metindeki boşluklar ya da güvenilir bir girinti değildir.