Menu

External CSS ve Internal CSS: link ve style Etiketi

External CSS, her sayfanın <link rel="stylesheet"> ile bağladığı bir .css dosyasında durur; internal CSS ise tek bir sayfanın içindeki <style> elementindedir. İkisini de, dosya yollarının nasıl çalıştığını ve karşılaştıklarında hangi kuralın kazandığını öğren.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Tek satırda external CSS

External CSS ayrı bir .css dosyasıdır. Ona ihtiyaç duyan her sayfanın <head> kısmından bağlarsın:

<head>
  <link rel="stylesheet" href="styles.css">
</head>

Dosyanın kendisi, etrafında HTML etiketi olmayan düz CSS kuralları içerir:

/* styles.css */
body {
  font-family: system-ui, sans-serif;
  color: #111827;
}

.card {
  border: 2px solid #2563eb;
  border-radius: 8px;
  padding: 12px 16px;
}

Aşağıdaki önizlemenin yükleyeceği ikinci bir dosya yok, bu yüzden aynı CSS'i bir <style> elementine koyuyor. Bu internal CSS'tir ve bağlanan dosyanın vereceği sonucun aynısını gösterir:

Internal CSS: style elementi

Internal CSS (gömülü CSS de denir), sayfanın içindeki bir <style> elementidir. Stiller body çizilmeden önce bilinsin diye onu <head> içine koy. Bütün sayfaya uygulanır ve kuralları seçici kullanır, inline style öznitelikleri ise bunu yapamaz.

Bir etiketin üzerine gel: :hover burada çalışır, çünkü gerçek bir kuraldır. Üçüncü yol olan style özniteliği inline CSS sayfasında anlatılıyor.

Internal ve external CSS farkı

External (<link>)Internal (<style>)
NeredeBir .css dosyasındaHTML sayfasının içinde
KapsamOnu bağlayan her sayfaTek bir sayfa
ÖnbellekBir kez indirilir, sayfalar arasında tekrar kullanılırHer sayfayla yeniden gönderilir
Sitenin görünümünü değiştirmekTek dosyayı değiştirHer sayfayı değiştir
Ek istekEvet, dosya başına bir taneHayır
Uygun olduğu yerGerçek web siteleriDemolar, tek sayfalar, HTML e-posta, kritik CSS

Özgüllük ikisinde de aynıdır: bir <style> elementindeki kural ile bağlanan dosyadaki aynı kural tam olarak aynı ağırlıktadır. Eşit olduklarında belgede daha sonra gelen kazanır.

Sıra: sonraki stil dosyası kazanır

Stil dosyaları, <link> ve <style> fark etmeksizin belge sırasıyla okunur. Aynı özgüllükteki iki kuraldan sonraki kazanır. Aşağıdaki iki <style> bloğu, bağlanan bir dosyayı ve ardından gelen sayfa düzeyinde bir ezmeyi temsil ediyor:

Buton ilk kuraldan padding'i ve beyaz yazıyı korur, ikinciden yalnızca arka planı alır. Bir sitenin kendi stil dosyasının bir framework'ünkinden sonra gelmesinin nedeni budur: önce kütüphaneyi, sonra kendi dosyanı <link> ile bağla.

href içindeki dosya yolları

Bir <link> etiketinin href değeri, HTML dosyasının konumuna göre çözümlenen bir URL'dir.

hrefYüklediği
styles.cssSayfayla aynı klasördeki bir dosya
css/styles.cssSayfanın yanındaki css klasörü
../styles.cssBir üst klasör
/styles.cssSitenin kökünden
https://example.com/a.cssBaşka bir sunucudaki tam URL

Sayfaları farklı derinliklerde duran bir sitede kök göreli biçim (/css/styles.css), tek bir yolun her sayfada çalışmasını sağlar.

Yazdırma ve diğer ortamlar için stil dosyaları

Bir media özniteliği, stil dosyasını eşleşen koşullarla sınırlar. <link> de <style> de onu kabul eder:

<link rel="stylesheet" href="print.css" media="print">
<link rel="stylesheet" href="wide.css" media="(min-width: 900px)">

Önizleme bir ekran olduğu için şerit görünür. Gerçek bir sayfada şerit çıktıdan kaybolur; DevTools'ta print medya türünü taklit ederek (Rendering paneli) aynısını görebilirsin.

Sık yapılan hatalar

  • Yanlış yol. href içindeki bir yazım hatası hiçbir şey yüklemez ve sayfa stilsiz görünür. DevTools'u aç, Network sekmesine geç ve .css dosyası için bir 404 ara.
  • rel="stylesheet"'i unutmak. O olmadan <link href="styles.css"> bir stil dosyası yüklemez.
  • .css dosyasının içinde HTML. Bir .css dosyası yalnızca kural içerir. İçindeki <style> etiketleri geçerli CSS değildir ve yanlarındaki kuralı bozar.
  • Kendi stil dosyanı framework'ünkinden önce koymak. Eşit özgüllükte sonraki dosya kazanır, bu yüzden kendi CSS'ini en son bağla.
  • Eski bir sürümü görmek. Tarayıcılar stil dosyalarını önbelleğe alır. Sert yenileme yap ya da bir değişikliği yayına alırken URL'e bir sürüm ekle (styles.css?v=2).

Sıkça Sorulan Sorular

External CSS nedir?

External CSS, kendi .css dosyasına kaydedilen ve sayfanın <head> kısmında <link rel="stylesheet" href="styles.css"> ile yüklenen bir stil dosyasıdır. Dosyayı bağlayan her sayfa aynı stilleri alır ve tarayıcı dosyayı sayfalar arasında önbellekte tutar.

Internal CSS nedir?

Internal CSS, diğer adıyla gömülü CSS, HTML belgesinin içindeki bir <style> elementine, genellikle <head> içine yazılan CSS'tir. Yalnızca o sayfaya uygulanır.

CSS dosyasını HTML'e nasıl bağlarım?

<head> içine <link rel="stylesheet" href="styles.css"> ekle. href, HTML dosyasına göre göreli bir yoldur: css/styles.css yanındaki css klasörünü gösterir, /styles.css ise sitenin kökünden başlar.

Internal mı external CSS mi daha iyi?

Birden fazla sayfası olan her şey için external CSS: düzenlenecek tek dosya vardır ve tarayıcılar onu bir kez indirip tekrar kullanır. Internal CSS tek bir sayfaya, bir demoya ya da ilk yanıtta olmasını istediğin küçük bir kritik stil bloğuna uyar.

External CSS'im neden çalışmıyor?

Genel nedenler yanlış bir href yolu (Network sekmesinde 404 olup olmadığına bak), eksik rel="stylesheet", .css dosyasının içine yazılmış <style> etiketleri ya da seninkini ezen daha sonraki bir kuraldır. Sert bir yenileme, önbellekteki eski bir kopyayı devre dışı bırakır.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA