CSS Seçiciler Tam Referansı
Bu kapsamlı CSS seçiciler rehberi, geliştiricilerin tüm CSS seçicilerini doğru ve hızlı bir şekilde kullanabilmeleri için tasarlanmıştır. Rehber, temel, kombinatör, nitelik, yapısal ve kullanıcı etkileşimli pseudo-sınıflar, form durumları, bağlantı durumları, mantıksal ve ileri seviye seçiciler ile pseudo-elementler ve medya sorguları gibi tüm kategorileri kapsar. Geliştiriciler bu referansı stil dosyalarını optimize etmek, hatasız CSS yazmak ve modern, duyarlı kullanıcı arayüzleri oluşturmak için etkin bir şekilde kullanabilir. Her kategori, gerçek dünya örnekleri ve tarayıcı desteği ile birlikte sunularak, hızlı başvuru ve kod yazımı için ideal bir kaynak oluşturur.
📊 Basic Selectors
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
* | * | Tüm elemanları seçen evrensel seçici | * { margin: 0; } | Tüm tarayıcılar |
element | tagname | Belirli türdeki tüm elemanları seçer | p { color: blue; } | Tüm tarayıcılar |
.class | .classname | Belirli sınıfa sahip elemanları seçer | .highlight { background: yellow; } | Tüm tarayıcılar |
\#id | #idname | Belirli ID'ye sahip elemanı seçer | #header { width: 100%; } | Tüm tarayıcılar |
📊 Combinator Selectors
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
descendant | A B | B öğesini A içindeyse seçer | div p { margin: 10px; } | Tüm tarayıcılar |
child | A > B | B öğesini doğrudan A'nın çocuğuysa seçer | ul > li { list-style: none; } | IE7+ |
adjacent sibling | A + B | B öğesi A'nın hemen ardından geliyorsa seçer | h1 + p { font-weight: bold; } | IE7+ |
general sibling | A \~ B | B öğesi A'dan sonra gelen tüm kardeşler | h1 \~ p { color: gray; } | IE7+ |
📊 Attribute Selectors
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
\[attribute] | \[attr] | Belirtilen özniteliğe sahip elemanları seçer | \[disabled] { opacity: 0.5; } | IE7+ |
\[attribute=value] | \[attr=val] | Özniteliğin değerine eşit olan elemanları seçer | \[type="text"] { border: 1px solid; } | IE7+ |
\[attribute\~=value] | \[attr\~=val] | Özniteliği belirtilen kelimeyi içeriyorsa seçer | \[class\~="button"] { cursor: pointer; } | IE7+ |
\[attribute^=value] | \[attr^=val] | Özniteliği belirtilen değerle başlıyorsa seçer | \[href^="https"] { color: green; } | IE7+ |
\[attribute\$=value] | \[attr\$=val] | Özniteliği belirtilen değerle bitiyorsa seçer | \[src\$=".jpg"] { border: 2px solid; } | IE7+ |
\[attribute*=value] | \[attr*=val] | Özniteliği belirtilen değeri herhangi bir yerde içeriyorsa seçer | \[title*="important"] { font-weight: bold; } | IE7+ |
\[attribute="value" i] | \[attr="val" i] | Büyük/küçük harf duyarsız eşleşme | \[type="EMAIL" i] { text-transform: lowercase; } | Modern tarayıcılar |
📊 Pseudo-class Selectors - Structural
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
:first-child | :first-child | İlk çocuk öğeyi seçer | p:first-child { margin-top: 0; } | IE7+ |
:last-child | :last-child | Son çocuk öğeyi seçer | p:last-child { margin-bottom: 0; } | IE9+ |
:nth-child(n) | :nth-child(n) | n'inci çocuk öğeyi seçer | tr:nth-child(2n) { background: #f0f0f0; } | IE9+ |
:nth-last-child(n) | :nth-last-child(n) | Sondan n'inci çocuğu seçer | li:nth-last-child(2) { color: red; } | IE9+ |
:nth-of-type(n) | :nth-of-type(n) | Türüne göre n'inci öğeyi seçer | h2:nth-of-type(odd) { color: blue; } | IE9+ |
:nth-last-of-type(n) | :nth-last-of-type(n) | Türüne göre sondan n'inci öğeyi seçer | p:nth-last-of-type(1) { font-weight: bold; } | IE9+ |
:first-of-type | :first-of-type | Türüne göre ilk öğeyi seçer | img:first-of-type { float: left; } | IE9+ |
:last-of-type | :last-of-type | Türüne göre son öğeyi seçer | p:last-of-type { margin-bottom: 20px; } | IE9+ |
:only-child | :only-child | Tek çocuk öğeyi seçer | p:only-child { text-align: center; } | IE9+ |
:only-of-type | :only-of-type | Tek tür öğeyi seçer | img:only-of-type { display: block; } | IE9+ |
:empty | :empty | Hiç çocuğu olmayan öğeyi seçer | div:empty { display: none; } | IE9+ |
📊 Pseudo-class Selectors - User Action
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
:hover | :hover | Fare üzerine geldiğinde seçer | a:hover { color: red; } | Tüm tarayıcılar |
:active | :active | Tıklanıldığında seçer | button:active { transform: scale(0.95); } | Tüm tarayıcılar |
:focus | :focus | Klavye ile odaklandığında seçer | input:focus { outline: 2px solid blue; } | Tüm tarayıcılar |
:focus-visible | :focus-visible | Görsel olarak odaklandığında seçer | button:focus-visible { outline: 2px solid; } | Modern tarayıcılar |
:focus-within | :focus-within | Odaklanan öğeyi içeren öğeyi seçer | form:focus-within { border: 1px solid blue; } | Modern tarayıcılar |
📊 Pseudo-class Selectors - Form States
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
:enabled | :enabled | Etkin form öğelerini seçer | input:enabled { background: white; } | IE9+ |
:disabled | :disabled | Devre dışı bırakılmış form öğelerini seçer | input:disabled { background: #f5f5f5; } | IE9+ |
:checked | :checked | İşaretlenmiş checkbox/radio | input:checked + label { font-weight: bold; } | IE9+ |
:indeterminate | :indeterminate | Belirsiz checkbox | input:indeterminate { opacity: 0.5; } | IE9+ |
:valid | :valid | Geçerli form öğelerini seçer | input:valid { border-color: green; } | IE10+ |
:invalid | :invalid | Geçersiz form öğelerini seçer | input:invalid { border-color: red; } | IE10+ |
:required | :required | Zorunlu form öğelerini seçer | input:required { border-left: 3px solid red; } | IE10+ |
:optional | :optional | İsteğe bağlı form öğelerini seçer | input:optional { border-left: 3px solid gray; } | IE10+ |
:read-only | :read-only | Salt okunur öğeleri seçer | input:read-only { background: #f9f9f9; } | Modern tarayıcılar |
:read-write | :read-write | Düzenlenebilir öğeleri seçer | input:read-write { background: white; } | Modern tarayıcılar |
:placeholder-shown | :placeholder-shown | Placeholder gösteren öğeleri seçer | input:placeholder-shown { font-style: italic; } | Modern tarayıcılar |
:in-range | :in-range | Değeri aralıkta olan öğeleri seçer | input:in-range { border-color: green; } | Modern tarayıcılar |
:out-of-range | :out-of-range | Değeri aralık dışında olan öğeleri seçer | input:out-of-range { border-color: red; } | Modern tarayıcılar |
📊 Pseudo-class Selectors - Link States
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
:link | :link | Ziyaret edilmemiş bağlantıları seçer | a:link { color: blue; } | Tüm tarayıcılar |
:visited | :visited | Ziyaret edilmiş bağlantıları seçer | a:visited { color: purple; } | Tüm tarayıcılar |
:any-link | :any-link | Tüm bağlantıları seçer | a:any-link { text-decoration: underline; } | Modern tarayıcılar |
:target | :target | Mevcut URL hedefi öğeyi seçer | :target { background: yellow; } | IE9+ |
📊 Pseudo-class Selectors - Logical
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
:not(selector) | :not(sel) | Seçici ile eşleşmeyen öğeleri seçer | p:not(.special) { color: gray; } | IE9+ |
:is(selector) | :is(sel1, sel2) | Herhangi bir seçici ile eşleşen öğeleri seçer | :is(h1, h2, h3) { margin-top: 0; } | Modern tarayıcılar |
:where(selector) | :where(sel1, sel2) | :is ile aynı ama 0 özgüllük | :where(h1, h2) { color: blue; } | Modern tarayıcılar |
:has(selector) | :has(sel) | Seçici içeren öğeleri seçer | div:has(img) { border: 1px solid; } | Modern tarayıcılar |
📊 Pseudo-element Selectors
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
::before | ::before | Öğe öncesi içerik ekler | p::before { content: "→ "; } | IE9+ (tek iki nokta IE8+) |
::after | ::after | Öğe sonrası içerik ekler | p::after { content: " ←"; } | IE9+ (tek iki nokta IE8+) |
::first-line | ::first-line | İlk satırı seçer | p::first-line { font-weight: bold; } | IE9+ (tek iki nokta IE6+) |
::first-letter | ::first-letter | İlk harfi seçer | p::first-letter | |
::selection | ::selection | Seçilen metni seçer | ::selection { background: yellow; } | IE9+ |
::placeholder | ::placeholder | Placeholder metnini seçer | input::placeholder { color: #999; } | Modern tarayıcılar |
::backdrop | ::backdrop | Tam ekran öğe arka planı | dialog::backdrop { background: rgba(0,0,0,0.5); } | Modern tarayıcılar |
::marker | ::marker | Liste işaretçilerini seçer | li::marker { color: red; } | Modern tarayıcılar |
📊 Advanced Selectors
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
:root | :root | Belge kökünü seçer | :root { --main-color: blue; } | IE9+ |
:scope | :scope | Kapsam öğesini seçer | :scope > p { margin: 0; } | Modern tarayıcılar |
:defined | :defined | Tanımlı özel öğeleri seçer | custom-element:defined { opacity: 1; } | Modern tarayıcılar |
:host | :host | Shadow host öğesini seçer | :host { display: block; } | Modern tarayıcılar |
:host(selector) | :host(sel) | Belirli host öğesini seçer | :host(.active) { color: red; } | Modern tarayıcılar |
:host-context(selector) | :host-context(sel) | Belirli bağlamdaki host öğesini seçer | :host-context(.dark) { color: white; } | Modern tarayıcılar |
::slotted(selector) | ::slotted(sel) | Slot içeriğini seçer | ::slotted(p) { margin: 0; } | Modern tarayıcılar |
📊 Media Query Selectors
Selector | Syntax | Description | Example | Browser Support |
---|---|---|---|---|
@media | @media (condition) | Media koşullarına göre stil uygular | @media (max-width: 768px) { .nav { display: none; } } | IE9+ |
@supports | @supports (property: value) | Özellik destekliyorsa stil uygular | @supports (display: grid) { .layout { display: grid; } } | Modern tarayıcılar |
@container | @container (condition) | Kapsayıcı boyutuna göre stil uygular | @container (min-width: 400px) { .card { flex-direction: row; } } | Modern tarayıcılar |
Quick Examples
css/* Temel seçici kombinasyonu */
.header nav ul li a:hover {
color: #007bff;
text-decoration: none;
}
/* Formlar için öznitelik seçicileri */
input\[type="email"]:focus:valid {
border-color: green;
box-shadow: 0 0 5px rgba(0,255,0,0.3);
}
/* Pseudo-element ile gelişmiş stil */
.quote::before {
content: "“";
font-size: 2em;
color: #999;
}
/* Yapısal gelişmiş seçiciler */
.grid-item:nth-child(3n+1) {
margin-left: 0;
}
/* Modern mantıksal seçiciler */
:is(h1, h2, h3):not(.no-margin) {
margin-top: 2rem;
}
En iyi uygulamalar ve ipuçları:
Spesifik seçiciler kullanarak istenmeyen stil çatışmalarını önleyin. Yeniden kullanılabilirlik için ID yerine sınıf seçicilerini tercih edin. CSS dosya boyutunu azaltmak için seçicileri verimli şekilde birleştirin. Farklı tarayıcılarda pseudo-class seçicileri test edin. :not() seçicisini dikkatli kullanın; performansı etkileyebilir. Pseudo-elementler DOM içinde sanal öğeler oluşturur. Karmaşık seçici kombinasyonlarında özgüllüğü göz önünde bulundurun. Dinamik form stilleri için öznitelik seçicilerini kullanın. Yeni seçicileri (:has(), :is()) tarayıcı desteğine göre test edin. İlgili seçicileri gruplandırarak kod organizasyonunu iyileştirin. Descendant seçicilerini dikkatli kullanın, aşırı iç içe geçmeyi önleyin. Bazı pseudo-class’lar yalnızca belirli öğelerde çalışır.
🧠 Bilginizi Test Edin
Reference Knowledge Check
CSS seçicileri ve kullanımlarını test edin.
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek