{"id":31834,"date":"2025-10-14T15:41:20","date_gmt":"2025-10-14T12:41:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31834"},"modified":"2025-10-14T15:41:20","modified_gmt":"2025-10-14T12:41:20","slug":"csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/","title":{"rendered":"CSS&#8217;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek"},"content":{"rendered":"<p><body><\/p>\n<h2>CSS&#8217;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek<\/h2>\n<p>Web tasar\u0131m ve geli\u015ftirme s\u00fcre\u00e7lerinde, CSS se\u00e7iciler (selectors) belirli HTML elemanlar\u0131n\u0131 hedeflemek ve onlara stil uygulamak i\u00e7in vazge\u00e7ilmez ara\u00e7lard\u0131r. S\u0131n\u0131flar, ID&#8217;ler, etiket adlar\u0131, \u00f6znitelikler ve \u00e7e\u015fitli pseudo-s\u0131n\u0131flar (s\u00f6zde s\u0131n\u0131flar) arac\u0131l\u0131\u011f\u0131yla elemanlar\u0131 se\u00e7me yetene\u011fi, stil sayfalar\u0131m\u0131z\u0131n g\u00fcc\u00fcn\u00fc ve esnekli\u011fini belirler. Ancak bazen bir eleman\u0131, belirli bir \u00f6zelli\u011fe <em>sahip olmayan<\/em> veya belirli bir kritere <em>uymayan<\/em> di\u011fer elemanlar aras\u0131ndan ay\u0131klamak isteriz. \u0130\u015fte tam da bu noktada CSS&#8217;in g\u00fc\u00e7l\u00fc <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131 devreye girer. <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131, kelimenin tam anlam\u0131yla &#8220;\u015funa uymayan&#8221; anlam\u0131na gelir ve se\u00e7icilerimizin mant\u0131\u011f\u0131n\u0131 tersine \u00e7evirerek, belirli ko\u015fullar\u0131 sa\u011flamayan elemanlar\u0131 hedeflememizi sa\u011flar. Bu makalede, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n temel kullan\u0131m\u0131ndan geli\u015fmi\u015f senaryolar\u0131na, \u00f6zg\u00fcnl\u00fck (specificity) kurallar\u0131ndan pratik \u00f6rneklerine ve dikkat edilmesi gereken noktalara kadar her y\u00f6n\u00fcn\u00fc detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h2>Giri\u015f: <code>:not<\/code> Nedir ve Neden \u00d6nemlidir?<\/h2>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131, CSS3 ile tan\u0131t\u0131lm\u0131\u015f ve modern web geli\u015ftirmenin ayr\u0131lmaz bir par\u00e7as\u0131 haline gelmi\u015f g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Temel amac\u0131, kendisine arg\u00fcman olarak verilen bir se\u00e7iciyi (veya CSS4 ile birden fazla se\u00e7iciyi) kar\u015f\u0131lamayan elemanlar\u0131 se\u00e7mektir. \u00d6rne\u011fin, bir web sayfas\u0131ndaki t\u00fcm <code>div<\/code> elemanlar\u0131n\u0131 se\u00e7mek, ancak \u00f6zel bir <code>highlight<\/code> s\u0131n\u0131f\u0131na sahip olanlar\u0131 hari\u00e7 tutmak istedi\u011finizde <code>:not(.highlight)<\/code> ifadesini kullanabilirsiniz. Bu, kodu daha temiz, daha okunabilir ve daha s\u00fcrd\u00fcr\u00fclebilir hale getirir.<\/p>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n \u00f6nemi birka\u00e7 a\u00e7\u0131dan ele al\u0131nabilir:<\/p>\n<p>*   <strong>Esneklik:<\/strong> Normalde pozitif bir se\u00e7imle (yani &#8220;\u015funa sahip olan\u0131 se\u00e7&#8221;) \u00e7\u00f6zemeyece\u011finiz durumlar i\u00e7in esnek bir \u00e7\u00f6z\u00fcm sunar.<br \/>\n*   <strong>Kod Temizli\u011fi:<\/strong> Karma\u015f\u0131k se\u00e7ici zincirlerinden veya JavaScript m\u00fcdahalelerinden ka\u00e7\u0131narak CSS kodunuzu sadele\u015ftirmenize yard\u0131mc\u0131 olur. \u00d6rne\u011fin, belirli bir eleman hari\u00e7 t\u00fcm karde\u015f elemanlara stil uygulamak i\u00e7in uzun <code>+<\/code> se\u00e7ici zincirleri yerine <code>:not<\/code> kullanmak daha zariftir.<br \/>\n*   <strong>Bak\u0131m Kolayl\u0131\u011f\u0131:<\/strong> Bir \u015feye stil uygulamak yerine, belirli bir \u015feyi hari\u00e7 tutarak stil uygulamak, gelecekteki de\u011fi\u015fikliklerde daha az hata yapma potansiyeli ta\u015f\u0131r. Yeni bir eleman eklendi\u011finde, mevcut <code>:not<\/code> kural\u0131 genellikle otomatik olarak \u00e7al\u0131\u015fmaya devam eder.<\/p>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131, \u00f6zellikle bir eleman listesindeki son veya ilk elemanlara \u00f6zel stil uygulamak, belirli form elemanlar\u0131n\u0131 d\u0131\u015flamak veya bir bile\u015fenin belirli varyantlar\u0131n\u0131 hari\u00e7 tutmak gibi yayg\u0131n senaryolarda hayat kurtar\u0131c\u0131 olabilir.<\/p>\n<h2>Temel Kullan\u0131m ve S\u00f6zdizimi<\/h2>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n temel s\u00f6zdizimi olduk\u00e7a basittir:<\/p>\n<pre><code class=\"language-css\">:not(selector) {\n  \/<em> CSS \u00f6zellikleri <\/em>\/\n}<\/code><\/pre>\n<p>Burada <code>selector<\/code>, hari\u00e7 tutmak istedi\u011finiz eleman\u0131 temsil eden herhangi bir ge\u00e7erli CSS se\u00e7icidir. Bu bir etiket ad\u0131, bir s\u0131n\u0131f, bir ID, bir \u00f6znitelik veya ba\u015fka bir pseudo-s\u0131n\u0131f olabilir.<\/p>\n<p>\u0130\u015fte baz\u0131 temel kullan\u0131m \u00f6rnekleri:<\/p>\n<p>*   <strong>Belirli bir s\u0131n\u0131fa sahip olmayan t\u00fcm paragraflar\u0131 se\u00e7me:<\/strong><\/p>\n<pre><code class=\"language-css\">p:not(.intro) {\n      color: #333;\n      font-weight: normal;\n    }<\/code><\/pre>\n<p>    Bu kural, <code>intro<\/code> s\u0131n\u0131f\u0131na sahip olmayan t\u00fcm <code><\/p>\n<p><\/code> elemanlar\u0131na uygulan\u0131r. <code>intro<\/code> s\u0131n\u0131f\u0131na sahip olanlar ise bu stilden etkilenmez.<\/p>\n<p>*   <strong>Belirli bir ID&#8217;ye sahip olmayan t\u00fcm <code>div<\/code> elemanlar\u0131n\u0131 se\u00e7me:<\/strong><\/p>\n<pre><code class=\"language-css\">div:not(#sidebar) {\n      background-color: #f0f0f0;\n      padding: 20px;\n    }<\/code><\/pre>\n<p>    Bu \u00f6rnek, <code>sidebar<\/code> ID&#8217;sine sahip <code>div<\/code> hari\u00e7 t\u00fcm <code>div<\/code> elemanlar\u0131na arka plan rengi ve dolgu uygular.<\/p>\n<p>*   <strong><code>target=\"_blank\"<\/code> \u00f6zniteli\u011fine sahip olmayan t\u00fcm ba\u011flant\u0131lar\u0131 se\u00e7me:<\/strong><\/p>\n<pre><code class=\"language-css\">a:not([target=\"_blank\"]) {\n      text-decoration: underline;\n      color: blue;\n    }<\/code><\/pre>\n<p>    Bu kural, yeni bir sekmede a\u00e7\u0131lmayan (yani <code>target=\"_blank\"<\/code> \u00f6zniteli\u011fi olmayan) t\u00fcm <code><a><\/code> etiketlerine alt \u00e7izgi ve mavi renk verir.<\/p>\n<p>*   <strong>Belirli bir pseudo-s\u0131n\u0131fa uymayan elemanlar\u0131 se\u00e7me:<\/strong><\/p>\n<pre><code class=\"language-css\">input:not(:disabled) {\n      border: 1px solid #ccc;\n    }<\/code><\/pre>\n<p>    Bu \u00f6rnek, devre d\u0131\u015f\u0131 b\u0131rak\u0131lmam\u0131\u015f (yani <code>:disabled<\/code> pseudo-s\u0131n\u0131f\u0131na sahip olmayan) t\u00fcm <code><input><\/code> elemanlar\u0131na kenarl\u0131k ekler.<\/p>\n<p>Bu \u00f6rnekler, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n temel mant\u0131\u011f\u0131n\u0131 ve ne kadar esnek olabilece\u011fini g\u00f6stermektedir. \u0130\u00e7ine konulan se\u00e7ici ne kadar spesifik olursa olsun, <code>:not<\/code> bu spesifikli\u011fi tersine \u00e7evirerek \u00e7al\u0131\u015f\u0131r.<\/p>\n<h2>Geli\u015fmi\u015f Kullan\u0131m ve \u00c7oklu Se\u00e7iciler<\/h2>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n yetenekleri, CSS Seviye 3&#8217;ten CSS Seviye 4&#8217;e ge\u00e7i\u015fle birlikte \u00f6nemli \u00f6l\u00e7\u00fcde artm\u0131\u015ft\u0131r.<\/p>\n<h3>CSS Seviye 3&#8217;teki S\u0131n\u0131rlamalar<\/h3>\n<p>CSS3&#8217;te, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131 yaln\u0131zca tek bir <em>basit se\u00e7iciyi<\/em> arg\u00fcman olarak kabul edebiliyordu. Basit se\u00e7iciler \u015funlard\u0131r:<\/p>\n<p>*   Etiket se\u00e7iciler (\u00f6rn: <code>p<\/code>, <code>div<\/code>)<br \/>\n*   S\u0131n\u0131f se\u00e7iciler (\u00f6rn: <code>.intro<\/code>)<br \/>\n*   ID se\u00e7iciler (\u00f6rn: <code>#main<\/code>)<br \/>\n*   \u00d6znitelik se\u00e7iciler (\u00f6rn: <code>[type=\"text\"]<\/code>)<br \/>\n*   Baz\u0131 pseudo-s\u0131n\u0131flar (\u00f6rn: <code>:first-child<\/code>, <code>:hover<\/code>)<\/p>\n<p>Bu, \u015fu gibi kullan\u0131mlar\u0131n CSS3&#8217;te <strong>ge\u00e7ersiz<\/strong> oldu\u011fu anlam\u0131na geliyordu:<\/p>\n<pre><code class=\"language-css\">\/<em> CSS3'te GE\u00c7ERS\u0130Z <\/em>\/\np:not(.intro, .highlight) { \/<em> ... <\/em>\/ }\ndiv:not(#sidebar, .ad-block) { \/<em> ... <\/em>\/ }<\/code><\/pre>\n<p>Birden fazla ko\u015fulu hari\u00e7 tutmak istedi\u011finizde, her <code>:not<\/code> ifadesini zincirleme \u015feklinde kullanman\u0131z gerekiyordu:<\/p>\n<pre><code class=\"language-css\">\/<em> CSS3'te ge\u00e7erli olan \u00e7\u00f6z\u00fcm <\/em>\/\np:not(.intro):not(.highlight) {\n  \/<em> Hem .intro hem de .highlight s\u0131n\u0131f\u0131na sahip olmayan paragraflar <\/em>\/\n}<\/code><\/pre>\n<p>Bu zincirleme kullan\u0131m, mant\u0131ksal olarak &#8220;AND&#8221; (VE) operat\u00f6r\u00fc gibi \u00e7al\u0131\u015f\u0131r: eleman, <em>hem<\/em> <code>.intro<\/code> s\u0131n\u0131f\u0131na sahip olmamal\u0131 <em>hem de<\/em> <code>.highlight<\/code> s\u0131n\u0131f\u0131na sahip olmamal\u0131d\u0131r.<\/p>\n<h3>CSS Seviye 4 ile Se\u00e7ici Listeleri<\/h3>\n<p>CSS Seviye 4 ile birlikte, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131 b\u00fcy\u00fck bir iyile\u015ftirme alm\u0131\u015ft\u0131r: art\u0131k arg\u00fcman olarak bir <em>se\u00e7ici listesi<\/em> kabul edebilir. Bu, parantez i\u00e7inde virg\u00fclle ayr\u0131lm\u0131\u015f birden fazla se\u00e7ici kullanabilece\u011finiz anlam\u0131na gelir.<\/p>\n<pre><code class=\"language-css\">\/<em> CSS4'te GE\u00c7ERL\u0130 <\/em>\/\n:not(selector1, selector2, selector3, ...) {\n  \/<em> CSS \u00f6zellikleri <\/em>\/\n}<\/code><\/pre>\n<p>Bu yeni yetenek, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n mant\u0131\u011f\u0131n\u0131 de\u011fi\u015ftirir. <code>:not(selector1, selector2)<\/code> ifadesi, &#8220;selector1 veya selector2&#8217;den herhangi birine uymayan&#8221; elemanlar\u0131 se\u00e7er. Bu, mant\u0131ksal olarak bir &#8220;NOR&#8221; (NE&#8230; NE DE) operat\u00f6r\u00fc gibi d\u00fc\u015f\u00fcn\u00fclebilir: eleman, listedeki se\u00e7icilerin <em>hi\u00e7birine<\/em> uymad\u0131\u011f\u0131nda se\u00e7ilir.<\/p>\n<p>\u00d6rnekler:<\/p>\n<p>*   <strong><code>intro<\/code> veya <code>highlight<\/code> s\u0131n\u0131flar\u0131ndan herhangi birine sahip olmayan paragraflar:<\/strong><\/p>\n<pre><code class=\"language-css\">p:not(.intro, .highlight) {\n      font-size: 1.1em;\n      line-height: 1.6;\n    }<\/code><\/pre>\n<p>    Bu kural, <code>intro<\/code> s\u0131n\u0131f\u0131na sahip olmayan <em>veya<\/em> <code>highlight<\/code> s\u0131n\u0131f\u0131na sahip olmayan paragraflar\u0131 se\u00e7er. E\u011fer bir paragraf\u0131n ne <code>intro<\/code> ne de <code>highlight<\/code> s\u0131n\u0131f\u0131 varsa, bu stil ona uygulan\u0131r. E\u011fer sadece <code>intro<\/code> s\u0131n\u0131f\u0131 varsa veya sadece <code>highlight<\/code> s\u0131n\u0131f\u0131 varsa veya ikisi birden varsa, bu stil uygulanmaz.<\/p>\n<p>*   <strong><code>submit<\/code> veya <code>button<\/code> tipinde olmayan t\u00fcm <code>input<\/code> elemanlar\u0131:<\/strong><\/p>\n<pre><code class=\"language-css\">input:not([type=\"submit\"], [type=\"button\"]) {\n      background-color: #f9f9f9;\n      border: 1px solid #ddd;\n    }<\/code><\/pre>\n<p>    Bu, formdaki metin, \u015fifre, say\u0131 vb. di\u011fer t\u00fcm <code>input<\/code> alanlar\u0131na stil verir, ancak g\u00f6nder ve d\u00fc\u011fme tiplerini hari\u00e7 tutar.<\/p>\n<p>*   <strong><code>h1<\/code>, <code>h2<\/code> veya <code>h3<\/code> etiketleri hari\u00e7 t\u00fcm elemanlara varsay\u0131lan bir stil uygulama:<\/strong><\/p>\n<pre><code class=\"language-css\">*:not(h1, h2, h3) {\n      margin-bottom: 0.8em;\n    }<\/code><\/pre>\n<p>    Bu \u00f6rnek, ba\u015fl\u0131k etiketleri d\u0131\u015f\u0131ndaki t\u00fcm elemanlara alt marj ekler.<\/p>\n<p>CSS4 ile gelen bu se\u00e7ici listesi \u00f6zelli\u011fi, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n kullan\u0131m\u0131n\u0131 daha g\u00fc\u00e7l\u00fc ve daha \u00f6zl\u00fc hale getirmi\u015ftir. Eski CSS3 tarz\u0131 zincirleme <code>p:not(.intro):not(.highlight)<\/code> ve yeni CSS4 tarz\u0131 <code>p:not(.intro, .highlight)<\/code> aras\u0131ndaki fark, genellikle ayn\u0131 sonucu verir, ancak CSS4 s\u00f6zdizimi daha temiz ve okunabilir kabul edilir.<\/p>\n<h2>\u00d6zg\u00fcnl\u00fck (Specificity) ve <code>:not<\/code><\/h2>\n<p>CSS&#8217;te \u00f6zg\u00fcnl\u00fck, birden fazla kural\u0131n ayn\u0131 eleman\u0131 hedeflemesi durumunda hangi kural\u0131n uygulanaca\u011f\u0131n\u0131 belirleyen bir a\u011f\u0131rl\u0131kland\u0131rma sistemidir. <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n \u00f6zg\u00fcnl\u00fck \u00fczerindeki etkisi, s\u0131kl\u0131kla yanl\u0131\u015f anla\u015f\u0131lan ancak kritik bir konudur.<\/p>\n<p><strong>Kural:<\/strong> <code>:not()<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n kendisi \u00f6zg\u00fcnl\u00fc\u011fe <em>s\u0131f\u0131r<\/em> katk\u0131da bulunur. Bunun yerine, se\u00e7icinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc, parantez i\u00e7indeki <em>en spesifik se\u00e7icinin<\/em> \u00f6zg\u00fcnl\u00fc\u011f\u00fc ile belirlenir.<\/p>\n<p>Bu kural\u0131 daha iyi anlamak i\u00e7in \u00f6rneklere bakal\u0131m:<\/p>\n<p>1.  <strong><code>p:not(.intro)<\/code><\/strong><br \/>\n    *   <code>p<\/code> eleman se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,0,0,1<\/code><br \/>\n    *   <code>.intro<\/code> s\u0131n\u0131f se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,0,1,0<\/code><br \/>\n    *   <code>:not(.intro)<\/code> k\u0131sm\u0131n\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc, <code>.intro<\/code>&#8216;nun \u00f6zg\u00fcnl\u00fc\u011f\u00fcd\u00fcr: <code>0,0,1,0<\/code><br \/>\n    *   Toplam \u00f6zg\u00fcnl\u00fck: <code>p<\/code>&#8216;nin \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,0,0,1<\/code>) + <code>:not(.intro)<\/code>&#8216;nun \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,0,1,0<\/code>) = <code>0,0,1,1<\/code>.<\/p>\n<p>2.  <strong><code>div:not(#sidebar)<\/code><\/strong><br \/>\n    *   <code>div<\/code> eleman se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,0,0,1<\/code><br \/>\n    *   <code>#sidebar<\/code> ID se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,1,0,0<\/code><br \/>\n    *   <code>:not(#sidebar)<\/code> k\u0131sm\u0131n\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc, <code>#sidebar<\/code>&#8216;\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fcd\u00fcr: <code>0,1,0,0<\/code><br \/>\n    *   Toplam \u00f6zg\u00fcnl\u00fck: <code>div<\/code>&#8216;in \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,0,0,1<\/code>) + <code>:not(#sidebar)<\/code>&#8216;\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,1,0,0<\/code>) = <code>0,1,0,1<\/code>.<\/p>\n<p>3.  <strong><code>a:not([target=\"_blank\"])<\/code><\/strong><br \/>\n    *   <code>a<\/code> eleman se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,0,0,1<\/code><br \/>\n    *   <code>[target=\"_blank\"]<\/code> \u00f6znitelik se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,0,1,0<\/code><br \/>\n    *   <code>:not([target=\"_blank\"])<\/code> k\u0131sm\u0131n\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc, <code>[target=\"_blank\"]<\/code>&#8216;\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fcd\u00fcr: <code>0,0,1,0<\/code><br \/>\n    *   Toplam \u00f6zg\u00fcnl\u00fck: <code>a<\/code>&#8216;n\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,0,0,1<\/code>) + <code>:not([target=\"_blank\"])<\/code>&#8216;\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,0,1,0<\/code>) = <code>0,0,1,1<\/code>.<\/p>\n<p>4.  <strong><code>p:not(.intro, #main-content)<\/code> (CSS4 se\u00e7ici listesi)<\/strong><br \/>\n    *   <code>p<\/code> eleman se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,0,0,1<\/code><br \/>\n    *   <code>.intro<\/code> s\u0131n\u0131f se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,0,1,0<\/code><br \/>\n    *   <code>#main-content<\/code> ID se\u00e7icisinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc: <code>0,1,0,0<\/code><br \/>\n    *   <code>:not(.intro, #main-content)<\/code> k\u0131sm\u0131n\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc, arg\u00fcman listesindeki en spesifik se\u00e7ici olan <code>#main-content<\/code>&#8216;\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fcd\u00fcr: <code>0,1,0,0<\/code><br \/>\n    *   Toplam \u00f6zg\u00fcnl\u00fck: <code>p<\/code>&#8216;nin \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,0,0,1<\/code>) + <code>:not(.intro, #main-content)<\/code>&#8216;\u0131n \u00f6zg\u00fcnl\u00fc\u011f\u00fc (<code>0,1,0,0<\/code>) = <code>0,1,0,1<\/code>.<\/p>\n<p>Bu kural\u0131 anlamak, beklenmedik stil \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nlemek ve CSS kodunuzu daha \u00f6ng\u00f6r\u00fclebilir hale getirmek i\u00e7in hayati \u00f6neme sahiptir. <code>:not<\/code> kendisi \u00f6zg\u00fcnl\u00fck eklemese de, i\u00e7indeki se\u00e7icinin \u00f6zg\u00fcnl\u00fc\u011f\u00fc nihai se\u00e7icinin g\u00fcc\u00fcn\u00fc belirler.<\/p>\n<h2>Kullan\u0131m Senaryolar\u0131 ve Pratik \u00d6rnekler<\/h2>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131, \u00e7e\u015fitli pratik senaryolarda olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r. \u0130\u015fte baz\u0131 yayg\u0131n kullan\u0131m durumlar\u0131:<\/p>\n<h3>Son Eleman Haricindekileri Se\u00e7me<\/h3>\n<p>Listelerde veya navigasyon men\u00fclerinde, son elemana farkl\u0131 bir stil uygulamak (\u00f6rne\u011fin kenarl\u0131k olmamas\u0131) yayg\u0131n bir ihtiya\u00e7t\u0131r.<\/p>\n<pre><code class=\"language-html\"><ul class=\"menu\">\n  <li><a href=\"#\">Ana Sayfa<\/a><\/li>\n  <li><a href=\"#\">Hakk\u0131m\u0131zda<\/a><\/li>\n  <li><a href=\"#\">Hizmetler<\/a><\/li>\n  <li><a href=\"#\">\u0130leti\u015fim<\/a><\/li>\n<\/ul><\/code><\/pre>\n<pre><code class=\"language-css\">.menu li:not(:last-child) {\n  border-right: 1px solid #ccc; \/<em> Son eleman hari\u00e7 t\u00fcm liste elemanlar\u0131na sa\u011f kenarl\u0131k <\/em>\/\n  margin-right: 10px;\n  padding-right: 10px;\n}<\/code><\/pre>\n<p>Bu sayede, &#8220;\u0130leti\u015fim&#8221; linkinin sa\u011f\u0131nda bir kenarl\u0131k olu\u015fmaz, bu da genellikle daha estetik bir g\u00f6r\u00fcn\u00fcm sa\u011flar.<\/p>\n<h3>\u0130lk Eleman Haricindekileri Se\u00e7me<\/h3>\n<p>Benzer \u015fekilde, bir grup eleman\u0131n ilkine \u00f6zel bir stil uygulamak istemedi\u011finizde <code>:not(:first-child)<\/code> kullanabilirsiniz. \u00d6rne\u011fin, bir metin blo\u011fundaki ilk paragraf hari\u00e7 t\u00fcm paragraflara \u00fcst marj eklemek:<\/p>\n<pre><code class=\"language-css\">.content p:not(:first-child) {\n  margin-top: 1.5em; \/<em> \u0130lk paragraf hari\u00e7 di\u011ferlerine \u00fcst marj <\/em>\/\n}<\/code><\/pre>\n<h3>Belirli Bir S\u0131n\u0131fa Sahip Olmayanlar\u0131 Hedefleme<\/h3>\n<p>Bir bile\u015fenin t\u00fcm varyantlar\u0131na varsay\u0131lan stil uygulay\u0131p, belirli bir varyant\u0131 hari\u00e7 tutmak istedi\u011finizde bu y\u00f6ntem \u00e7ok i\u015fe yarar.<\/p>\n<pre><code class=\"language-html\"><button class=\"btn\">Normal Buton<\/button>\n<button class=\"btn btn-primary\">Birincil Buton<\/button>\n<button class=\"btn btn-secondary\">\u0130kincil Buton<\/button><\/code><\/pre>\n<pre><code class=\"language-css\">.btn:not(.btn-primary) {\n  background-color: #eee;\n  color: #333;\n}\n\n.btn-primary {\n  background-color: #007bff;\n  color: white;\n}<\/code><\/pre>\n<p>Burada, <code>.btn-primary<\/code> s\u0131n\u0131f\u0131na sahip olmayan t\u00fcm butonlara gri bir arka plan ve koyu renk metin verilirken, <code>.btn-primary<\/code> s\u0131n\u0131f\u0131na sahip olanlar kendi mavi stiline sahip olur.<\/p>\n<h3>Belirli Bir HTML Etiketini Hari\u00e7 Tutma<\/h3>\n<p>Evrensel se\u00e7ici (<code>*<\/code>) ile birlikte <code>:not<\/code> kullanarak belirli etiketleri hari\u00e7 tutabilirsiniz. Ancak bu t\u00fcr kullan\u0131mlarda dikkatli olmak gerekir, \u00e7\u00fcnk\u00fc \u00e7ok geni\u015f bir etki alan\u0131na sahip olabilir.<\/p>\n<pre><code class=\"language-css\">\/<em> img etiketleri hari\u00e7 t\u00fcm elemanlara bir kutu g\u00f6lgesi ekle <\/em>\/\n*:not(img) {\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1);\n}<\/code><\/pre>\n<p>Bu \u00f6rnek, resimler d\u0131\u015f\u0131ndaki her \u015feye hafif bir g\u00f6lge ekler.<\/p>\n<h3>Form Elemanlar\u0131 ile Kullan\u0131m<\/h3>\n<p>Form elemanlar\u0131, <code>:not<\/code> i\u00e7in harika bir kullan\u0131m alan\u0131d\u0131r. \u00d6rne\u011fin, <code>submit<\/code> veya <code>reset<\/code> butonlar\u0131 d\u0131\u015f\u0131ndaki t\u00fcm <code>input<\/code> alanlar\u0131na ayn\u0131 stili uygulamak isteyebilirsiniz:<\/p>\n<pre><code class=\"language-css\">input:not([type=\"submit\"], [type=\"reset\"], [type=\"button\"]) {\n  width: 100%;\n  padding: 8px;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  box-sizing: border-box;\n}<\/code><\/pre>\n<p>Bu kural, metin, e-posta, say\u0131 vb. t\u00fcm <code>input<\/code> alanlar\u0131na stil verirken, d\u00fc\u011fmeleri hari\u00e7 tutar.<\/p>\n<h3>Navigation Men\u00fcleri ve Ayr\u0131c\u0131lar<\/h3>\n<p>Yatay navigasyon men\u00fclerinde elemanlar aras\u0131na dikey bir ay\u0131r\u0131c\u0131 eklemek, ancak son elemana eklememek i\u00e7in <code>:not<\/code> kullan\u0131labilir.<\/p>\n<pre><code class=\"language-css\">nav ul li {\n  display: inline-block;\n}\n\nnav ul li:not(:last-child)::after {\n  content: \"|\";\n  margin: 0 10px;\n  color: #999;\n}<\/code><\/pre>\n<p>Bu, &#8220;\u0130leti\u015fim&#8221; gibi son men\u00fc \u00f6\u011fesinin ard\u0131na ay\u0131r\u0131c\u0131 eklenmesini engeller.<\/p>\n<h3>Tablo Sat\u0131rlar\u0131<\/h3>\n<p>Tablolarda ba\u015fl\u0131k sat\u0131r\u0131n\u0131 (<code><\/p>\n<thead><\/code>) hari\u00e7 tutarak veri sat\u0131rlar\u0131na stil vermek i\u00e7in kullan\u0131labilir.<\/p>\n<pre><code class=\"language-css\">table tr:not(:first-child) {\n  background-color: #f9f9f9; \/<em> \u0130lk sat\u0131r hari\u00e7 di\u011fer sat\u0131rlara zebra stili <\/em>\/\n}\ntable tr:not(:first-child):nth-child(odd) {\n  background-color: #f0f0f0;\n}<\/code><\/pre>\n<h3>CSS Reset veya Varsay\u0131lan Stilleri Ge\u00e7ersiz K\u0131lma<\/h3>\n<p>Bazen belirli bir CSS reset kural\u0131n\u0131n belirli elemanlara uygulanmas\u0131n\u0131 istemeyebilirsiniz.<\/p>\n<pre><code class=\"language-css\">\/<em> Varsay\u0131lan olarak t\u00fcm elemanlara box-sizing border-box uygula, ancak iframe'leri hari\u00e7 tut <\/em>\/\n*:not(iframe) {\n  box-sizing: border-box;\n}<\/code><\/pre>\n<p>Bu, genellikle <code>* { box-sizing: border-box; }<\/code> ile yap\u0131lan bir i\u015flemde, <code>iframe<\/code> gibi harici i\u00e7erik bar\u0131nd\u0131ran elemanlar\u0131n kendi boyutland\u0131rma modelini korumas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>S\u0131n\u0131rlamalar ve Dikkat Edilmesi Gerekenler<\/h2>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131 g\u00fc\u00e7l\u00fc olsa da, baz\u0131 s\u0131n\u0131rlamalar\u0131 ve dikkat edilmesi gereken noktalar\u0131 vard\u0131r:<\/p>\n<h3>Performans<\/h3>\n<p>Genel olarak, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n performans\u0131 modern taray\u0131c\u0131larda olduk\u00e7a optimize edilmi\u015ftir. Ancak, \u00e7ok karma\u015f\u0131k se\u00e7icilerle veya \u00e7ok b\u00fcy\u00fck DOM a\u011fa\u00e7lar\u0131nda a\u015f\u0131r\u0131ya ka\u00e7an kullan\u0131mlar, teorik olarak k\u00fc\u00e7\u00fck bir performans d\u00fc\u015f\u00fc\u015f\u00fcne neden olabilir. Taray\u0131c\u0131lar, <code>:not<\/code> i\u00e7indeki se\u00e7iciyi yine de de\u011ferlendirmek zorundad\u0131r. \u00d6rne\u011fin, <code>*:not(.foo)<\/code> gibi \u00e7ok geni\u015f bir se\u00e7ici, her eleman\u0131n <code>.foo<\/code> s\u0131n\u0131f\u0131na sahip olup olmad\u0131\u011f\u0131n\u0131 kontrol etmeyi gerektirir. Ancak \u00e7o\u011fu pratik senaryoda bu fark hissedilmez.<\/p>\n<h3>Okunabilirlik<\/h3>\n<p>\u00c7ok uzun veya i\u00e7 i\u00e7e ge\u00e7mi\u015f <code>:not<\/code> ifadeleri, CSS kodunun okunabilirli\u011fini azaltabilir. Bazen pozitif bir se\u00e7imle ayn\u0131 sonuca ula\u015fmak daha basit ve anla\u015f\u0131l\u0131r olabilir. \u00d6rne\u011fin, <code>div:not(.foo):not(.bar):not(.baz)<\/code> yerine, bu elemanlar\u0131 do\u011frudan hedefleyen bir s\u0131n\u0131f eklemek veya daha basit bir se\u00e7ici kullanmak daha iyi olabilir.<\/p>\n<h3><code>:not<\/code> \u0130\u00e7inde <code>:not<\/code><\/h3>\n<p>CSS3&#8217;te, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131 i\u00e7inde ba\u015fka bir <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131 kullanmak ge\u00e7ersizdi. Ancak CSS4 ile birlikte bu durum de\u011fi\u015fti. Art\u0131k <code>p:not(:not(.intro))<\/code> gibi bir ifade syntactically (s\u00f6zdizimsel olarak) ge\u00e7erlidir. Ancak bu t\u00fcr bir kullan\u0131m genellikle gereksizdir ve mant\u0131ksal olarak <code>p.intro<\/code> ile ayn\u0131 anlama gelir. <code>p:not(:not(.intro))<\/code> demek, &#8220;intro s\u0131n\u0131f\u0131na sahip olmayan paragraflar d\u0131\u015f\u0131ndaki paragraflar&#8221; demektir, bu da asl\u0131nda &#8220;intro s\u0131n\u0131f\u0131na sahip paragraflar&#8221; anlam\u0131na gelir. Bu nedenle, okunabilirlik ve basitlik a\u00e7\u0131s\u0131ndan bu t\u00fcr i\u00e7 i\u00e7e kullan\u0131mlardan ka\u00e7\u0131n\u0131lmas\u0131 \u00f6nerilir.<\/p>\n<h3>Pseudo-elementlar ile Kullan\u0131m<\/h3>\n<p><code>:not<\/code> pseudo-elementlar\u0131 (\u00f6rne\u011fin <code>::before<\/code>, <code>::after<\/code>, <code>::first-line<\/code>, <code>::first-letter<\/code>) hedefleyemez. Pseudo-elementlar, DOM a\u011fac\u0131n\u0131n ger\u00e7ek bir par\u00e7as\u0131 de\u011fildir ve bu nedenle eleman se\u00e7icilerle do\u011frudan hedeflenemezler. \u00d6rne\u011fin, <code>p:not(::before)<\/code> ge\u00e7ersiz bir se\u00e7icidir.<\/p>\n<h3>Evrensel Se\u00e7ici (<code>*<\/code>) ile Dikkat<\/h3>\n<p><code><em>:not(.foo)<\/code> gibi evrensel se\u00e7ici ile <code>:not<\/code> kullan\u0131rken dikkatli olunmal\u0131d\u0131r. Bu, belge i\u00e7indeki <\/em>her<em> eleman\u0131 (HTML, HEAD, BODY dahil) etkileyebilir ve istenmeyen sonu\u00e7lara yol a\u00e7abilir. Genellikle, belirli bir kapsay\u0131c\u0131 i\u00e7indeki elemanlar\u0131 hedeflemek daha g\u00fcvenlidir: <code>div <\/em>:not(.foo)<\/code>.<\/p>\n<h3>Desteklenmeyen Se\u00e7iciler<\/h3>\n<p><code>:not<\/code> i\u00e7ine baz\u0131 pseudo-s\u0131n\u0131flar veya pseudo-elementlar yerle\u015ftirilemez. \u00d6rne\u011fin, <code>:hover<\/code> gibi etkile\u015fimli pseudo-s\u0131n\u0131flar genellikle sorunsuz \u00e7al\u0131\u015f\u0131rken, <code>::selection<\/code> gibi pseudo-elementlar veya \u00f6zel taray\u0131c\u0131 uzant\u0131lar\u0131 bazen <code>:not<\/code> i\u00e7inde beklenen \u015fekilde davranmayabilir veya desteklenmeyebilir. Genel kural, <code>:not<\/code> i\u00e7ine DOM a\u011fac\u0131ndaki bir eleman\u0131 do\u011frudan hedefleyebilen herhangi bir <em>basit<\/em> veya <em>karma\u015f\u0131k<\/em> se\u00e7icinin konulabilmesidir.<\/p>\n<h2>Alternatif Yakla\u015f\u0131mlar<\/h2>\n<p>Her ne kadar <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131 \u00e7ok g\u00fc\u00e7l\u00fc olsa da, bazen alternatif yakla\u015f\u0131mlar daha uygun veya daha okunabilir olabilir.<\/p>\n<h3>Pozitif Se\u00e7im<\/h3>\n<p>\u00c7o\u011fu durumda, do\u011frudan hedeflemek istedi\u011finiz elemanlar\u0131 se\u00e7mek, hari\u00e7 tutma mant\u0131\u011f\u0131ndan daha basit ve anla\u015f\u0131l\u0131rd\u0131r. \u00d6rne\u011fin, <code>div:not(.ad-block)<\/code> yerine, reklam blo\u011fu olmayan <code>div<\/code>&#8216;lere \u00f6zel bir s\u0131n\u0131f (<code>.content-block<\/code> gibi) verip <code>div.content-block<\/code> olarak hedeflemek daha net olabilir. Bu, \u00f6zellikle elemanlar\u0131n dinamik olarak de\u011fi\u015fti\u011fi veya \u00e7ok say\u0131da farkl\u0131 hari\u00e7 tutma ko\u015fulu oldu\u011fu durumlarda daha s\u00fcrd\u00fcr\u00fclebilir bir yakla\u015f\u0131md\u0131r.<\/p>\n<h3>S\u0131n\u0131f Ekleme\/\u00c7\u0131karma (JavaScript)<\/h3>\n<p>Dinamik olarak bir elemana stil uygulamak veya kald\u0131rmak gerekti\u011finde, JavaScript ile bir s\u0131n\u0131f eklemek veya \u00e7\u0131karmak daha esnek bir \u00e7\u00f6z\u00fcm olabilir. \u00d6rne\u011fin, bir eleman\u0131 ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakmak i\u00e7in <code>js-disabled<\/code> s\u0131n\u0131f\u0131 ekleyip CSS&#8217;te bu s\u0131n\u0131f\u0131 hedeflemek, <code>:not(:enabled)<\/code> gibi bir yakla\u015f\u0131mdan daha kontrol edilebilir olabilir.<\/p>\n<h3>CSS De\u011fi\u015fkenleri<\/h3>\n<p>Baz\u0131 durumlarda, CSS de\u011fi\u015fkenleri (custom properties) de alternatif bir \u00e7\u00f6z\u00fcm sunabilir. Bir \u00f6zelli\u011fin de\u011ferini bir de\u011fi\u015fkene atay\u0131p, bu de\u011fi\u015fkeni farkl\u0131 elemanlarda farkl\u0131 de\u011ferlerle kullanmak, belirli elemanlar\u0131 hari\u00e7 tutmaktan ziyade, dahil edilen elemanlara farkl\u0131 de\u011ferler atamak anlam\u0131na gelebilir. Bu, \u00f6zellikle tema veya bile\u015fen varyantlar\u0131 olu\u015ftururken faydal\u0131d\u0131r.<\/p>\n<h2>Gelecek ve Taray\u0131c\u0131 Deste\u011fi<\/h2>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131n CSS3 versiyonu (tek arg\u00fcmanl\u0131) t\u00fcm modern taray\u0131c\u0131larda (Chrome, Firefox, Safari, Edge, Opera) ve hatta eski taray\u0131c\u0131larda bile \u00e7ok iyi desteklenmektedir.<\/p>\n<p>CSS4 ile gelen se\u00e7ici listesi \u00f6zelli\u011fi (virg\u00fclle ayr\u0131lm\u0131\u015f birden fazla arg\u00fcman) de modern taray\u0131c\u0131larda geni\u015f \u00e7apl\u0131 deste\u011fe sahiptir. CanIUse.com gibi kaynaklar, g\u00fcncel taray\u0131c\u0131 deste\u011fi hakk\u0131nda detayl\u0131 bilgi sa\u011flar ve genel olarak <code>not()<\/code>&#8216;un se\u00e7ici listesi deste\u011finin %95&#8217;in \u00fczerinde oldu\u011funu g\u00f6sterir. Bu, projelerinizde CSS4 <code>:not<\/code> s\u00f6zdizimini g\u00fcvenle kullanabilece\u011finiz anlam\u0131na gelir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p><code>:not<\/code> pseudo-s\u0131n\u0131f\u0131, CSS se\u00e7iciler d\u00fcnyas\u0131nda &#8220;olumsuzlama&#8221; mant\u0131\u011f\u0131n\u0131 getirerek, web geli\u015ftiricilerine elemanlar\u0131 hedefleme konusunda inan\u0131lmaz bir esneklik ve g\u00fc\u00e7 sunar. Belirli ko\u015fullar\u0131 kar\u015f\u0131lamayan elemanlar\u0131 kolayca hari\u00e7 tutma yetene\u011fi, kodun daha temiz, daha okunabilir ve daha s\u00fcrd\u00fcr\u00fclebilir olmas\u0131na katk\u0131da bulunur.<\/p>\n<p>Temel kullan\u0131m\u0131ndan CSS4 ile gelen se\u00e7ici listeleri \u00f6zelli\u011fine, \u00f6zg\u00fcnl\u00fck kurallar\u0131ndan \u00e7e\u015fitli pratik senaryolara kadar <code>:not<\/code>&#8216;\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve nerede kullan\u0131labilece\u011fini detayl\u0131 bir \u015fekilde inceledik. Listenin son eleman\u0131na kenarl\u0131k eklememekten, belirli form elemanlar\u0131n\u0131 hari\u00e7 tutmaya kadar bir\u00e7ok yayg\u0131n tasar\u0131m sorununa zarif \u00e7\u00f6z\u00fcmler sunar.<\/p>\n<p>Ancak, her g\u00fc\u00e7l\u00fc ara\u00e7ta oldu\u011fu gibi, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131n\u0131 kullan\u0131rken de dikkatli olmak gerekir. A\u015f\u0131r\u0131 karma\u015f\u0131k kullan\u0131mlar okunabilirli\u011fi azaltabilir ve performans \u00fczerinde k\u00fc\u00e7\u00fck de olsa etkileri olabilir. <code>:not<\/code> i\u00e7inde <code>:not<\/code> gibi gereksiz yap\u0131lar veya evrensel se\u00e7ici ile a\u015f\u0131r\u0131 geni\u015f kapsaml\u0131 kullan\u0131mlar yerine, \u00e7o\u011fu zaman pozitif se\u00e7im veya JavaScript tabanl\u0131 s\u0131n\u0131f manip\u00fclasyonlar\u0131 gibi alternatif yakla\u015f\u0131mlar daha uygun olabilir.<\/p>\n<p>Sonu\u00e7 olarak, <code>:not<\/code> pseudo-s\u0131n\u0131f\u0131, CSS ara\u00e7 kutunuzdaki de\u011ferli bir eklentidir. Ne zaman ve nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 do\u011fru bir \u015fekilde anlamak, daha sa\u011flam, bak\u0131m\u0131 kolay ve estetik a\u00e7\u0131dan ho\u015f web aray\u00fczleri olu\u015fturman\u0131za yard\u0131mc\u0131 olacakt\u0131r. Modern web geli\u015ftirmenin dinamik do\u011fas\u0131nda, <code>:not<\/code> gibi esnek ve g\u00fc\u00e7l\u00fc se\u00e7iciler, tasar\u0131mc\u0131lar\u0131n ve geli\u015ftiricilerin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 zorluklara yarat\u0131c\u0131 \u00e7\u00f6z\u00fcmler sunmaya devam edecektir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"CSS&#8217;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek\nWeb tasar\u0131m ve geli\u015ftirme s\u00fcre\u00e7lerinde, CSS se\u00e7iciler (selectors) belirli H","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[126],"tags":[],"class_list":{"0":"post-31834","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-css3-html5","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CSS&#039;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CSS&#039;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek\" \/>\n<meta property=\"og:description\" content=\"CSS&#039;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek Web tasar\u0131m ve geli\u015ftirme s\u00fcre\u00e7lerinde, CSS se\u00e7iciler (selectors) belirli H\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-14T12:41:20+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"CSS&#8217;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek\",\"datePublished\":\"2025-10-14T12:41:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/\"},\"wordCount\":2758,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"CSS3 - HTML5\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/\",\"name\":\"CSS'te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-14T12:41:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CSS&#8217;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CSS'te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/","og_locale":"tr_TR","og_type":"article","og_title":"CSS'te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek","og_description":"CSS'te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek Web tasar\u0131m ve geli\u015ftirme s\u00fcre\u00e7lerinde, CSS se\u00e7iciler (selectors) belirli H","og_url":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-14T12:41:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"CSS&#8217;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek","datePublished":"2025-10-14T12:41:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/"},"wordCount":2758,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["CSS3 - HTML5"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/","url":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/","name":"CSS'te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-14T12:41:20+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/csste-not-pseudo-sinifi-secim-mantigini-tersine-cevirmek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"CSS&#8217;te :not Pseudo-S\u0131n\u0131f\u0131: Se\u00e7im Mant\u0131\u011f\u0131n\u0131 Tersine \u00c7evirmek"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31834"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31834\/revisions"}],"predecessor-version":[{"id":31835,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31834\/revisions\/31835"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}