Inline CSS nedir
Inline CSS, style özniteliğiyle doğrudan bir HTML elementinin üzerine yazılan CSS'tir. Değer bir bildirim listesidir, property: value; biçiminde, ve yalnızca o elemente uygulanır.
Seçici de süslü parantez de yoktur: özniteliğin durduğu element hedeftir. Bildirimleri noktalı virgülle ayır. Son noktalı virgül isteğe bağlıdır, ama onu bırakmak bir sonraki bildirimi eklemeyi güvenli hale getirir.
Söz dizimi
<element style="property: value; property: value;">
| Parça | Örnek | Notlar |
|---|---|---|
| Öznitelik | style="..." | Genel bir öznitelik: her HTML elementinde kullanılabilir |
| Bildirim | color: #2563eb; | Stil dosyasındaki bir kuralın içindekiyle aynı söz dizimi |
| Birden fazla bildirim | padding: 8px; border: 1px solid #e5e7eb; | ; ile ayrılır |
| İçeride tırnak | style="font-family: 'Courier New', monospace;" | Çift tırnaklı özniteliğin içinde tek tırnak kullan |
Bildirim olmayan hiçbir şeye izin verilmez. :hover, ::before, @media ve seçicilerin bir style özniteliğinde yeri yoktur.
HTML'e CSS eklemenin 3 yolu
CSS bir sayfaya üç yoldan ulaşır. Bu sayfa ilkini anlatıyor; external ve internal CSS için ayrı bir sayfa var.
| Yöntem | CSS'in durduğu yer | Kapsam | Tipik kullanım |
|---|---|---|---|
| Inline | Tek bir elementteki style özniteliği | O element | Tek seferlik değerler, JavaScript'in yazdığı değerler |
| Internal | Sayfadaki <style> elementi | O sayfa | Tek sayfalık demolar, e-posta şablonları, kritik CSS |
| External | <link> ile bağlanan bir .css dosyası | Onu bağlayan her sayfa | Bütün bir sitenin stili |
Aynı paragrafın üç yolla da stillenmiş hali (önizlemenin yükleyeceği ikinci bir dosya olmadığı için external dosya yorum olarak gösteriliyor):
Üçüncü paragraf .note kuralından gelen padding ve köşe yuvarlaklığını korur ve yalnızca arka planı değiştirir, çünkü inline stil sadece o tek özelliği ayarlıyor.
Inline stiller neden kazanır
Bir stil dosyası kuralı ve bir inline stil aynı özelliği ayarladığında inline stil kazanır. Seçicinin ne kadar özgül olduğu fark etmez: bir ID seçici bile kaybeder.
Tek istisna !important'tır. !important ile işaretlenmiş bir stil dosyası bildirimi normal bir inline bildirimi yener, inline bir !important ise ikisini de yener. Inline stillerin bir sitenin bakımını zorlaştırmasının nedeni budur: onları stil dosyasından değiştirmek için !important gerekir ve bu bir tırmanışı başlatır. Sıralamanın tamamı !important sayfasında anlatılıyor.
Inline CSS ne zaman doğru araçtır
Inline stiller, değer tasarım değil veri olduğunda uygundur: element başına değişir ve bir şablon ya da JavaScript tarafından yazılır.
Görünüm (renkler, yükseklik, köşe yuvarlaklığı) stil dosyasında durur. Yalnızca çubuktan çubuğa değişen genişlik inline'dır. JavaScript aynı özniteliği element.style üzerinden yazar:
Tıklamadan sonra paragrafın HTML'i style="color: rgb(245, 158, 11); font-weight: bold;" olur. Tire içeren özellik adları JavaScript'te camelCase'e dönüşür (font-weight, fontWeight olur).
Çoğu zaman en temiz orta yol bir CSS değişkenidir: inline olarak yalnızca değişkeni ayarla, style="--progress: 35%", ve stil dosyasının onu kullanmasına izin ver. Bkz. CSS değişkenleri.
Inline CSS'in yetersiz kaldığı yerler
- Durum ya da sözde element yok. Bir
styleözniteliğine:hover,:focusya da::beforeyazamazsın. - Medya sorgusu yok. Inline bir genişlik telefonda değişemez.
- Tekrar. Aynı inline stile sahip on buton, düzenlenecek on yer demektir.
- Ezmesi zor. Onu yalnızca stil dosyasındaki
!importantyener. - Content Security Policy.
style-srciçinde'unsafe-inline'olmayan katı bir CSP, HTML'e yazılmışstyleözniteliklerini engeller.
Sık yapılan hatalar
styleiçine seçici ya da süslü parantez yazmak.style="p { color: red }"yok sayılır. Oraya yalnızca bildirimler girer.:yerine=kullanmak. Doğrusucolor: red,color=reddeğil.- Çift tırnakları iç içe koymak.
style="font-family: "Arial""özniteliği erken bitirir. İçeride tek tırnak kullan. - Birimi unutmak.
style="width: 200"yok sayılır;200pxyaz. Birimini atabilen tek uzunluk0'dır. - Bütün siteyi inline stillemek. Tekrar eden stilleri stil dosyasındaki bir class'a taşı, inline stilleri element başına değişen değerlere bırak.
Sıkça Sorulan Sorular
Inline CSS nedir?
Inline CSS, bir elementin style özniteliğine yazılan CSS'tir, örneğin <p style="color: red;">. Bildirimler seçici olmadan yalnızca o elemente uygulanır.
HTML'e CSS eklemenin 3 yolu nedir?
Inline, bir elementteki style özniteliğiyle; internal, sayfadaki bir <style> elementiyle; external ise <head> içindeki <link rel="stylesheet" href="styles.css"> ile bağlanan ayrı bir .css dosyasıyla. Bütün bir site için genelde external dosya tercih edilir.
Inline CSS, external CSS'i ezer mi?
Çoğu durumda evet. style özniteliğindeki bir bildirim, özgüllüğü ne olursa olsun stil dosyasındaki her seçiciyi yener. Stil dosyasının kazanmasının tek yolu !important'tır; inline bir !important ise onu da yener.
Inline CSS kötü bir uygulama mı?
Bütün bir sitenin stili için evet: kendini tekrar eder, :hover ya da medya sorguları kullanamaz ve ezilmesi zordur. İlerleme çubuğu genişliği ya da kullanıcının seçtiği bir renk gibi JavaScript'in veya bir şablonun yazdığı tek seferlik değerler için sorun yoktur.
Inline CSS'te hover kullanılabilir mi?
Hayır. style özniteliği yalnızca bildirim kabul eder, bu yüzden :hover gibi sözde sınıflar, ::before gibi sözde elementler ve @media kuralları oraya yazılamaz. Bunları bir <style> elementine ya da stil dosyasına koy.