<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fatih Hayrioğlu&#039;nun not defteri &#187; css3</title>
	<atom:link href="http://www.fatihhayrioglu.com/tag/css3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fatihhayrioglu.com</link>
	<description>{ CSS, HTML ve Javascript }</description>
	<lastBuildDate>Thu, 09 Feb 2012 08:44:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=2012</generator>
		<item>
		<title>Saydam Kenar Çizgileri Oluşturmak</title>
		<link>http://www.fatihhayrioglu.com/saydam-kenar-cizgileri-olusturmak/</link>
		<comments>http://www.fatihhayrioglu.com/saydam-kenar-cizgileri-olusturmak/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 22:01:42 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[saydam köşeler]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2375</guid>
		<description><![CDATA[İlk olarak Facebook&#8217;un popup ve lightbox olarak uyguladığı, en azından benim orada gördüğüm bir uygulama idi. Benzer bir uygulamayı yapmak için kodları yazdım. Daha önce bahsettiğim rgba tanımı ile bu iş çok basit olacaktı. Ancak aşağıdaki gibi bir görüntü elde ettim. Çözümü biraz araştırdım ancak pek bir şey bulamadım derken css-tricks&#8217;in çözümü bana ilaç gibi [...]]]></description>
			<content:encoded><![CDATA[<p>İlk olarak Facebook&rsquo;un popup ve lightbox olarak uyguladığı, en azından benim orada gördüğüm bir uygulama idi. </p>
<p><img src="https://lh5.googleusercontent.com/_SHFSSO6P4rp8S4nZY3vxCmgDN6E4T4s388AlMh0qsEPBkUtJTheYUlsBJ6scDYACwDYDlM7FOieyXgENGEmWzpUohoMOcsXmASOjoTHB5Jub4ojri0" alt="" width="381px;" height="202px;" /></p>
<p>Benzer bir uygulamayı yapmak için kodları yazdım. Daha önce bahsettiğim <a href="http://www.fatihhayrioglu.com/css3-rgba-renk-tanimi/">rgba tanımı</a> ile bu iş çok basit olacaktı. </p>
<pre class="brush: css; title: ; notranslate">
#popup{
  position:absolute;
  top:90px;
  left:40%;
  border:10px solid rgba(0,0,0, 0.5);
  text-align:center;
  font-size:24px;
  background-color:#FFFFFF;
  width:350px;
  padding:50px 0;
  border-radius:10px;
  z-index:100;
}
</pre>
<p>Ancak aşağıdaki gibi bir görüntü elde ettim.<br />
  <img src="https://lh4.googleusercontent.com/HG1aPLVyrPkO-QDocagwVvy3t2Ib1jSb8P8LG9TYrNOXo7QEQBayw6Bk8BlztGYU2Cd5CnBV7eYWR8GT0bXk-E6bAZ_Jh8OyzHGEbaOeQPSpO9yvYYs" alt="" width="400px;" height="163px;" /></p>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/UYJWH/1/embedded/result,css,html" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<p>Çözümü biraz araştırdım ancak pek bir şey bulamadım derken css-tricks&rsquo;in çözümü bana ilaç gibi geldi. Çözüm <a href="http://www.fatihhayrioglu.com/css3-background-origin-ve-background-clip-ozellikleri/">background-clip özelliği</a> tanımı ile sağlanıyor.</p>
<pre class="brush: css; title: ; notranslate">
#popup{
  position:absolute;
  top:90px;
  left:40%;
  border:10px solid rgba(0,0,0, 0.5);
  text-align:center;
  font-size:24px;
  background-color:#FFFFFF;
  width:350px;
  padding:50px 0;
  border-radius:10px;
  z-index:100;
  -moz-background-clip: padding;     /* Firefox 3.6 */
  -webkit-background-clip: padding;  /* Safari 4? Chrome 6? */
  background-clip: padding-box;      /* Firefox 4, Safari 5, Opera 10, IE 9 */
}
</pre>
<p><img src="https://lh5.googleusercontent.com/A5kRKORp2QXmurGBD_WaoXQl_V0P6Fi3Ojm1JhB3cDVLfIvjTApd8K-VjxIbP8cQ-rQ47kPfj9gimC6IbudkTi7CITtaTGo4Lf2Fy4aybKvGmYXZBnU" alt="" width="400px;" height="163px;" /></p>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/qjmyS/embedded/result,css,html" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<h3 dir="ltr">Kaynak</h3>
<ul>
<li><a href="http://css-tricks.com/transparent-borders-with-background-clip/">http://css-tricks.com/transparent-borders-with-background-clip/</a></strong>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/saydam-kenar-cizgileri-olusturmak/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CSS3 pointer-events özelliği</title>
		<link>http://www.fatihhayrioglu.com/css3-pointer-events-ozelligi/</link>
		<comments>http://www.fatihhayrioglu.com/css3-pointer-events-ozelligi/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 22:01:12 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[Haberler]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[pointer-events]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2364</guid>
		<description><![CDATA[CSS3 ile gelen yeni özellikleri tararken ilginç ve güzel bir özellik ile karşılaştım. pointer-events özelliği. SVG ile birlikte uzun süredir kullanılan bu özellik CSS3 ile birlikte HTML elemanlarında uygulanıyor. Farenin işlevini yerine getirip getirmeyeceğini belirlemek için kullanılır. Örneğin bir menüde mevcut sayfayı gösteren menü elemanının tıklanma olayını kaldırabiliriz. pointer-event özelliği belirlenen elemanın farenin işlevine vereceği [...]]]></description>
			<content:encoded><![CDATA[<p>CSS3 ile gelen yeni özellikleri tararken ilginç ve güzel bir özellik ile karşılaştım. pointer-events özelliği. SVG ile birlikte uzun süredir kullanılan bu özellik CSS3 ile birlikte HTML elemanlarında uygulanıyor.</p>
<p>Farenin işlevini yerine getirip getirmeyeceğini belirlemek için kullanılır. Örneğin bir menüde mevcut sayfayı gösteren menü elemanının tıklanma olayını kaldırabiliriz.</p>
<p>pointer-event özelliği belirlenen elemanın farenin işlevine vereceği tepkiyi belirler. Bu tepki aşağıdaki çerçevededir.</p>
<ul>
<li>Kullanıcı arayüzü olayları (örneğin fare tıklaması)</li>
<li>Dinamik Sahte Sınıflar (örneğin :hover, :focus)</li>
<li>Hiperlinkler</li>
</ul>
<p>pointer event özelliği aslında SVG içerikleri için uygulanan bir özelliktir. </p>
<div class="cssozelliktanimi"><strong>Yapısı : </strong>pointer-events: &lt;deger&gt;<br />
    <strong>Aldığı Değerler:</strong> auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit <br />
    <strong>Başlangıç değeri:</strong> auto <br />
    <strong>Uygulanabilen elementler:</strong> Tüm Elemanlara<br />
  <strong>Kalıtsallık:</strong> Var</div>
<p>Aldığı değerler bakalım;</p>
<p>auto: pointer-events özelliğine herhangi bir tanım yapılmadı ise fare tıklamasına müdahale etmez. SVG içeriklerde, bu değer visiblePainted ile aynı etkiyi yapar.</p>
<p>none: Element fare olaylarını uygulamayacaktır.</p>
<p>visiblePainted, visibleFill, visibleStroke, visible, painted, fill, stroke ve all: Sadece SVG içindir.</p>
<p>Bir örnek ile durumu daha iyi görelim.</p>
<ul>
<li>&lt;ul class=&quot;menu&quot;&gt; </li>
<li> &lt;li&gt;&lt;a href=&quot;index.html&quot;&gt;Ana Sayfa&lt;/a&gt;&lt;/li&gt; </li>
<li> &lt;li&gt;&lt;a href=&quot;hakkimizda.html&quot; class=&rdquo;on&rdquo;&gt;Hakkımızda&lt;/a&gt;&lt;/li&gt; </li>
<li> &lt;li&gt;&lt;a href=&quot;urunler.html&quot;&gt;Ürünler&lt;/a&gt;&lt;/li&gt; </li>
<li>&lt;/ul&gt;</li>
</ul>
<p>Hakkımızda sayfasında olduğumuzda kullanıcının hakkımızda linkine tıklaması mantıklı değildir, hakkımızda bağlantısının fare tıklama olayını kaldırmak için</p>
<ul>
<li>.menu a.on {</li>
<li>       pointer-events: none;</li>
<li>       cursor: default;</li>
<li>}  </li>
</ul>
<p>Tanımı istediğimiz sonucu verecektir.</p>
<p>CSS3 ile dinamik bileşenlerin CSS ile halledilmesi işine alıştık. Bu tip CSS ile halledebilmemiz güzel.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.6+ <br />
  Chrome 2+<br />
  Safari 4+ <br />
  Opera -<br />
  İnternet Explorer -</div>
<h3>Kaynaklar</h3>
<ul>
<li><a href="https://developer.mozilla.org/en/CSS/pointer-events">https://developer.mozilla.org/en/CSS/pointer-events</a></li>
<li><a href="http://robertnyman.com/2010/03/22/css-pointer-events-to-allow-clicks-on-underlying-elements/">http://robertnyman.com/2010/03/22/css-pointer-events-to-allow-clicks-on-underlying-elements/</a></li>
<li><a href="http://robertnyman.com/css3/pointer-events/pointer-events.html">http://robertnyman.com/css3/pointer-events/pointer-events.html</a></li>
<li><a href="http://css-tricks.com/6379-pointer-events-current-nav/">http://css-tricks.com/6379-pointer-events-current-nav/</a></li>
<li><a href="http://hacks.mozilla.org/2009/12/pointer-events-for-html-in-firefox-3-6/">http://hacks.mozilla.org/2009/12/pointer-events-for-html-in-firefox-3-6/</a></li>
<li><a href="http://www.webkit.org/specs/PointerEventsProperty.html">http://www.webkit.org/specs/PointerEventsProperty.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-pointer-events-ozelligi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 background-origin ve background-clip özellikleri</title>
		<link>http://www.fatihhayrioglu.com/css3-background-origin-ve-background-clip-ozellikleri/</link>
		<comments>http://www.fatihhayrioglu.com/css3-background-origin-ve-background-clip-ozellikleri/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 19:18:38 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[-webkit-background-clip:text]]></category>
		<category><![CDATA[-webkit-text-fill-color:transparent]]></category>
		<category><![CDATA[background-clip]]></category>
		<category><![CDATA[background-origin]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2330</guid>
		<description><![CDATA[background özelliklerini anlatırken background tanımlarının içerik ve padding alanının ardalanını etkilediğini söylemiştik. CSS2.1&#8217;de tanımladığımız ardalan resimleri içeriği ve padding uygulanan alanları kapsıyor. CSS3 ile birlikte buradaki kabul değişti. Artık kenar çizgileride dahil edilebiliyor veya içerik alanı ile sınırlandırılabiliyor. Bize bu imkanı CSS3&#8217;ün background-clip ve background-origin özellikleri sağlıyor. İlk olarak background-origin özelliğini inceleyerek başlayalım. background-origin background-image [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fatihhayrioglu.com/hizli-css-referansi/">background özelliklerini</a> anlatırken background tanımlarının içerik ve padding alanının   ardalanını etkilediğini söylemiştik. CSS2.1&rsquo;de tanımladığımız ardalan   resimleri içeriği ve padding uygulanan alanları kapsıyor. CSS3 ile   birlikte buradaki kabul değişti. Artık kenar çizgileride dahil   edilebiliyor veya içerik alanı ile sınırlandırılabiliyor. Bize bu imkanı   CSS3&rsquo;ün <strong>background-clip</strong> ve <strong>background-origin</strong> özellikleri sağlıyor.</p>
<p>İlk olarak <strong>background-origin</strong> özelliğini inceleyerek başlayalım.</p>
<h3 dir="ltr">background-origin</h3>
<p><strong>background-image</strong> konumunu hesaplamada elementin kutusunun sınırlarını belirler. CSS3&rsquo;den   önce bu sabit bir değer olarak padding-box idi. Bu özellik bize farklı   konumlandırma imkanı sağlar. </p>
<p><strong>Yapısı:</strong> background-origin: &lt;bg-box&gt;<br />
  <strong>Aldığı Değerler: </strong>&lt;bg-box&gt; border-box | padding-box | content-box<br />
  <strong>Başlangıç değeri: </strong>padding-box<br />
  <strong>Uygulanabilen elementler:</strong> Tüm elementler<br />
<strong>Kalıtsallık:</strong> Yok</p>
<p>Aldığı değerleri kısaca açıklarsak</p>
<ul>
<li><strong>border-box:</strong> background-image konumu border alanından başlar </li>
<li><strong>padding-box:</strong> background-image konumu padding alanından başlar</li>
<li><strong>content-box:</strong> background-image konumu içerik alanından başlar</li>
</ul>
<p><img src="https://lh6.googleusercontent.com/-PsvxlredrDNUaFBqk4tcxuxsLaw9XJAeTIfp53XKqD2CkZgPqnN7UkCvkm1nSveS_plE_wPOGgUzpVVJ1JGeq_6bWXEkSun-0KS9CC1JMnz19Lusfw" alt="" width="500px;" height="149px;"></p>
<pre class="brush: css; title: ; notranslate">
#kutu1 {
    -moz-background-origin: border;
    -webkit-background-origin: border;
    -webkit-background-origin: border-box;
    background-origin: border-box;
}
#kutu2 {
    -moz-background-origin: padding;
    -webkit-background-origin: padding;
    -webkit-background-origin: padding-box;
    background-origin: padding-box;
}
#kutu3 {
    -moz-background-origin: content;
    -webkit-background-origin: content;
    -webkit-background-origin: content-box;
    background-origin: content-box;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/Rf6Mv/embedded/result,css,html"></iframe></p>
<p><strong>background-position:fixed</strong> tanımlı elementlere etki etmez. </p>
<p><strong>Tarayıcı Destekleme Listesi</strong><br />
  Firefox 3.6+ (-moz- öneki ile) 4+ (öneksiz)<br />
  Chrome 1+ (-webkit- öneki ile)<br />
  Safari 3.0+ (-webkit- öneki ile)<br />
  Opera 10.5<br />
  İnternet Explorer 9+</p>
<h3 dir="ltr">background-clip</h3>
<p><strong>background-clip</strong> ardalanın nerede gösterileceğini tanımlar. Daha önce padding dahil   içerik alanı sabit olarak geliyordu, artık border alanıda dahil   edilebiliyor veya padding alanı kapsamdan çıkarılabiliyor</p>
<p><strong>Yapısı:</strong> background-clip: &lt;bg-box&gt;<br />
  <strong>Aldığı Değerler:</strong> &lt;bg-box&gt; border-box | padding-box | content-box<br />
  <strong>Başlangıç değeri:</strong> border-box<br />
  <strong>Uygulanabilen elementler:</strong> Tüm elementler<br />
<strong>Kalıtsallık:</strong> Yok</p>
<p>Aldığı değerleri kısaca açıklarsak</p>
<ul>
<li><strong>border-box: </strong>Ardalan içerik alanı + padding alanı + border alanını kapsar. </li>
<li><strong>padding-box:</strong> Ardalan içerik alanı + padding alanını kapsar</li>
<li><strong>content-box:</strong> Ardalan sadece içerik alanını kapsar.</li>
</ul>
<p><img src="https://lh6.googleusercontent.com/MOaRt6WqnrAxmlxJNMcvGKvA-Ki9x0IQOpz_Az4iqzZU6Ug3Dt1vutHFus__ZMQSORq3eLvhtrgzeWFPMzptoBB5pMxLHIWjoA26SO009nYr4fxoUrU" alt="" width="500px;" height="157px;"></p>
<p><strong>border-box</strong> tanımı eğer <strong>background-origin:border-box</strong> ise uygulanır.</p>
<pre class="brush: css; title: ; notranslate">
#kutu1{
 -moz-background-origin: border;
 -webkit-background-origin: border;
 -webkit-background-origin: border-box;
 background-origin: border-box;
 -moz-background-clip:border;
 -webkit-background-clip:border;
 -webkit-background-clip:border-box;
 background-clip:border-box;
}
#kutu2{
 -moz-background-origin: border;
 -webkit-background-origin: border;
 -webkit-background-origin: border-box;
 -moz-background-clip:padding;
 -webkit-background-clip:padding;
 -webkit-background-clip:padding-box;
 background-clip:padding-box;
}
#kutu3{
      -moz-background-origin: border;
 -webkit-background-origin: border;
 -webkit-background-origin: border-box;
 -moz-background-clip:content;
 -webkit-background-clip:content;
 -webkit-background-clip:content-box;
 background-clip:content-box;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/uzFeu/3/embedded/result,css,html"></iframe></p>
<p><strong>background-origin:border-box</strong> olarak tanımladığımızda <strong>background-clip</strong> özelliğini daha iyi anlarız.   Her üç kutudaki farkları gördüğünüz gibi. Resim sırası ile border,   padding ve içerik alanından kırpılmıştır.</p>
<p><strong>Tarayıcı Destekleme Listesi</strong><br />
  Firefox 3.6+ (-moz- öneki ile) 4+ (öneksiz)<br />
  Chrome 1+ (-webkit- öneki ile)<br />
  Safari 3.0+ (-webkit- öneki ile)<br />
  Opera 10.5<br />
İnternet Explorer 9+</p>
<p><strong>backgroun-origin</strong> özelliği <strong>background-image</strong> konumunun kapsama alanını belirlerken,   <strong>background-clip</strong> ise background alanını kırpmak için kullanılır.   <strong>background-origin</strong> sadece ardalan resmini etkilerken <strong>background-clip</strong> ardalan resmi ve ardalan renginide etkiler.</p>
<p>Bu   özellikleri destekleyen farklı tarayıcılar için önek ile çözüm   üretilir. Diğer önek uygulamalarında farklı olarak bu özelliklerin   değerlerinde de tarayıcı sürümleri arasında farklılıklar vardır. Firefox   ve Webkit&rsquo;in eski sürümlerinde değer olarak <strong>border, content</strong> ve<strong> padding</strong> değerlerini desteklerken son çıkan sürümler standartlaşan <strong>content-box,   border-box</strong> ve <strong>padding-box</strong> değerlerini desteklemektedirler.</p>
<h3 dir="ltr">background-clip: text Değeri </h3>
<p>Webkit   tabanlı tarayıcılarda diğerlerinden farklı olarak text değeride vardır.   Henüz standartlarda bulunmayan bu değeri sadece webkit kullanan Chrome   ve Safari desteklemektedir. Bu değer atandığında metinin ardalanına   resim uygulanıyor geri kalan kısımlara ise saydam ardalan olarak   kalıyor. </p>
<pre class="brush: css; title: ; notranslate">
#kutu1 {
   -moz-background-origin: border;
   -webkit-background-origin: border;
   -webkit-background-origin: border-box;
   background-origin: border-box;
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    font:bold 72px Arial, Helvetica, sans-serif;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/gqaC9/embedded/result,css,html"></iframe></p>
<p><strong>-webkit-text-fill-color:transparent</strong> ile metnin ardalanını saydamlaştırıyoruz ve elemanın ardalanındaki   resmi gösteriyoruz. Çok güzel görsel çalışmaları bu şekilde yapabiliriz,   ancak henüz sadece Chrome ve Safari desteklediği için pek kullanışlı   değil.</p>
<h3 dir="ltr">Kaynaklar</h3>
<ul>
<li><a href="http://www.css3.info/preview/background-origin-and-background-clip/">http://www.css3.info/preview/background-origin-and-background-clip/</a></li>
<li><a href="http://www.w3.org/TR/css3-background/">http://www.w3.org/TR/css3-background/</a></li>
<li><a href="http://www.quirksmode.org/css/background.html">http://www.quirksmode.org/css/background.html</a></li>
<li><a href="http://www.w3schools.com/cssref/css3_pr_background-clip.asp">http://www.w3schools.com/cssref/css3_pr_background-clip.asp</a></li>
<li><a href="http://www.standardista.com/css3/css3-background-properties/">http://www.standardista.com/css3/css3-background-properties/</a></li>
<li><a href="http://css-tricks.com/7423-transparent-borders-with-background-clip/">http://css-tricks.com/7423-transparent-borders-with-background-clip/</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/background-clip">https://developer.mozilla.org/en/CSS/background-clip</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/background-origin">https://developer.mozilla.org/en/CSS/background-origin</a></li>
<li><a href="http://dev.opera.com/articles/view/css3-border-background-boxshadow/">http://dev.opera.com/articles/view/css3-border-background-boxshadow/</a></li>
<li><a href="http://www.sitepoint.com/new-properties-and-values-in-backgrounds-with-css3/">http://www.sitepoint.com/new-properties-and-values-in-backgrounds-with-css3/</a></li>
<li><a href="http://www.css3.info/webkit-introduces-background-cliptext/">http://www.css3.info/webkit-introduces-background-cliptext/</a>  (text)</li>
<li><a href="http://www.cssreset.com/2010/css-tutorials/fun-with-webkit-background-clip-and-font-face/">http://www.cssreset.com/2010/css-tutorials/fun-with-webkit-background-clip-and-font-face/</a> (text)</li>
<li><a href="http://www.webkit.org/blog/164/background-clip-text/">http://www.webkit.org/blog/164/background-clip-text/</a> (text)</li>
<li><a href="http://www.impressivewebs.com/background-clip-css3/">http://www.impressivewebs.com/background-clip-css3/</a> (güzel)</li>
<li><a href="http://css-class.com/test/css/backgrounds/background-origin1.htm">http://css-class.com/test/css/backgrounds/background-origin1.htm</a></li>
<li><a href="http://css-infos.net/property/background-origin">http://css-infos.net/property/background-origin</a></li>
<li><a href="https://www.youtube.com/watch?v=7xVS2FX2Mao&#038;feature=related">https://www.youtube.com/watch?v=7xVS2FX2Mao&amp;feature=related</a> (video)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-background-origin-ve-background-clip-ozellikleri/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS3 Esnek Kutu Yerleşimi(Flexible Box Layout)</title>
		<link>http://www.fatihhayrioglu.com/css3-esnek-kutu-yerlesimiflexible-box-layout/</link>
		<comments>http://www.fatihhayrioglu.com/css3-esnek-kutu-yerlesimiflexible-box-layout/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 20:47:58 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Haberler]]></category>
		<category><![CDATA[box-align]]></category>
		<category><![CDATA[box-direction]]></category>
		<category><![CDATA[box-flex]]></category>
		<category><![CDATA[box-flex-group]]></category>
		<category><![CDATA[box-lines]]></category>
		<category><![CDATA[box-ordinal-group]]></category>
		<category><![CDATA[box-orient]]></category>
		<category><![CDATA[box-pack]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2318</guid>
		<description><![CDATA[CSS asıl çıkışını kazanmasında sayfa yerleşimini CSS ile ayarlamaya başladığımızda yaptı. CSS3 ile birlikte bize daha avantajlı sayfa yerleşimi özellikleri sunmayı gaye edinen W3C bizlere işimiz kolaylaştıracak Esnek Kutu Yerleşimi Modülünü sunmaktadır. Sayfa yerleşimini yaparken genelde float/clear veya position özelliklerini kullanarak yapıyorduz. Tabloya göre büyük avantajlar sağlayan bu yöntemlerden sonra web sayfası kodlamak daha kolay [...]]]></description>
			<content:encoded><![CDATA[<p>CSS asıl çıkışını kazanmasında sayfa yerleşimini CSS ile ayarlamaya başladığımızda yaptı. CSS3 ile birlikte bize daha avantajlı sayfa yerleşimi özellikleri sunmayı gaye edinen W3C bizlere işimiz kolaylaştıracak Esnek Kutu Yerleşimi Modülünü sunmaktadır.</p>
<p>Sayfa yerleşimini yaparken genelde float/clear veya position özelliklerini kullanarak yapıyorduz. Tabloya göre büyük avantajlar sağlayan bu yöntemlerden sonra web sayfası kodlamak daha kolay ve zevkli bir hal aldı. Detay için<a href="http://www.fatihhayrioglu.com/tablo-mu-div-mi-karmasasina-son-noktayi-html5-koydu/"> Tablo mu? Div mi? Karmaşasına Son Noktayı HTML5 koydu</a> yazısını inceleyin.</p>
<p>Tabi CSS ile sayfa yerleşimi kodlamanın birçok avantajı var. Bunun yanında bazı karışık sayfa yerleşimlerinde ise bizi zorladığı bir gerçek. Özellikle esnek yapılı sayfa düzenleri ve dikey eksendeki yerleşimlerdeki sorunlarını gören W3C bize bu konuda yardımcı olacak yöntemleri üretmeye başladı. Bunlardan bir tanesi Esnek Kutu Yerleşimi Modülüdür(EKYM).</p>
<p>Esnek Kutu Yerleşimi Modülü kapsayıcı bir eleman içindeki alt elemanların yerleşimini sağlamaktadır. Daha önce dikeyde yaşadığımız birçok sorunu(dikeyde ortalama ve aksak kolon sorunları gibi) gidermemizi sağlıyor. Esnek Kutu Yerleşimi Modülünü bu makalemizde inceleyeceğiz.</p>
<p>Kapsayıcı elemana tanımlanan display:box özelliği yardımı ile alt elemanlara tanımlanan box(box-orient, box-direction, box-pack, box-align, box-lines, box-ordinal-group, box-flex ve box-flex-group) özellikleri ile sayfa yerleşimimizi çok kolay şekilde yapmamıza olanak sağlamaktadır.</p>
<p>CSS3 EKYM olarak kısaltacağımız bu özellik bize olanaklarını display:box tanımı içerisinde gelen yeni tanımlar ile getirmektedir. Bu yeni 8 tanım aşağıdaki gibidir;</p>
<ul>
<li>box-orient</li>
<li>box-direction</li>
<li>box-pack</li>
<li>box-align</li>
<li>box-lines</li>
<li>box-ordinal-group</li>
<li>box-flex</li>
<li>box-flex-group</li>
</ul>
<p>EKYM ilk olarak 2009 yılında standardı oluşturuldu, ancak daha sonra yeniden ele alındı ve şu an sonlandırılmak üzeredir. Biz 2009 yılındaki standartlaşan özellikleri tanımlayacağız, çünkü tarayıcılar 2009 yılındaki standartları desteklemektedir ve yeni standartlaşan özelliğinde mantık olarak çok büyük farklılığı yok. </p>
<h3 dir="ltr">display:box</h3>
<p>İlk olarak kapsayıcı esnek kutuları çevreleyen eleman <strong>display:box</strong> tanımı yaparak başlıyoruz. Farklı tarayıcılar önek ile birlikte desteklemektedir;</p>
<pre class="brush: css; title: ; notranslate">
#esnekKutu{
display: -webkit-box;
display: -moz-box;
display: -ms-box;
display: box;
}
</pre>
<p>Tanımı ile kapsayıcı elemanı tanımlıyoruz. Bu tanım ile kapsayıcı eleman içersindeki alt elemanların artık esnek yapılı olacağını ve EKYM özellikleri alabileceğini belirliyoruz.</p>
<p>Çok basit bir şekilde kutularımızı yanyana dizebiliriz mesela</p>
<pre class="brush: css; title: ; notranslate">
#esnekKutuKapsul{
 display: box;
 display:-webkit-box;
 display:-moz-box;
 display:-ms-box;
 width:600px;
 border:1px solid #03C;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/4KSzt/embedded/result,css,html"></iframe></p>
<p>Kapsayıcı tanımlanan <strong>display:box</strong> tanımı ile içindeki elemanlar birer <strong>inline-block</strong> eleman gibi davranır ve yanyana sıralanır. </p>
<h3 dir="ltr">box-orient</h3>
<div class="cssozelliktanimi"><strong>Yapısı:</strong> box-orient: &lt;deger&gt;<br />
  <strong>Aldığı Değerler:</strong> horizontal | vertical | inline-axis | block-axis<br />
  <strong>Başlangıç değeri:</strong> inline-axis<br />
  <strong>Uygulanabilen elementler:</strong> display:box ve display:inline-box değeri alan elemanlara<br />
<strong>Kalıtsallık:</strong> Yok</div>
<p>box-orient özelliği ile esnek kapsayıcı eleman içindeki kutuların hangi eksende sıralanacağını belirleriz. Yukarıdaki örnekte gördüğümüz gibi eğer bir tanım yapılmadı ise ve kapsayıcı eleman genişliği müsait ise kutular yatayda yanyana sıralanır. </p>
<p>Biz bu durumu değiştirmek için <strong>box-orient</strong> özelliğini kullanırız. 3 adet değer alır.</p>
<ul>
<li><strong>horizontal:</strong> Kutular yatay eksende soldan sağa doğru sıralanır. </li>
<li><strong>vertical:</strong> Kutular dikey eksende yukarıdan aşağıya doğru sıralanır.</li>
<li><strong>inherit:</strong> Üst elemanın değerini alır.</li>
</ul>
<p>Bunlardan başka iki değer daha mevcuttur. <strong>inline-axis</strong> yatayda ve <strong>block-axis</strong> dikeyde sıralamayı sağlar. Bu tanımlar <strong>horizontal</strong> ve <strong>vertical</strong> gibi davranırlar.</p>
<pre class="brush: css; title: ; notranslate">
#esnekKutuKapsul{
 display: box;
 display:-webkit-box;
 display:-moz-box;
 box-orient:vertical;
 -moz-box-orient:vertical;
 -webkit-box-orient:vertical;
 width:200px;
 height:600px;
 border:1px solid #03C;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/AsVDn/embedded/result,css,html"></iframe></p>
<p><strong>box-orient:vertical</strong> ile esnek kutularımızı dikeyde sıraladık.</p>
<h3 dir="ltr">box-direction </h3>
<div class="cssozelliktanimi"><strong>Yapısı:</strong> box-direction: &lt;deger&gt;<br />
  <strong>Aldığı Değerler:</strong> normal | reverse<br />
  <strong>Başlangıç değeri:</strong> inline-axis<br />
  <strong>Uygulanabilen elementler:</strong> display:box ve display:inline-box değeri alan elemanlara<br />
<strong>Kalıtsallık:</strong> Yok</div>
<p><strong>box-direction</strong> özelliği kapsayıcı eleman içindeki esnek kutuların sıralama yönünü belirler. İki değer alır; normal ve <strong>reverse</strong>. <strong>reverse</strong> tanımlandığında sıralama yönü normalin tam tersine döner.</p>
<pre class="brush: css; title: ; notranslate">
#esnekKutuKapsul{
 display: box;
 display:-webkit-box;
 display:-moz-box;
 box-orient:vertical;
 -moz-box-orient:vertical;
 -webkit-box-orient:vertical;
 box-direction: reverse;
 -moz-box-direction: reverse;
 -webkit-box-direction: reverse;
 width:200px;
 height:600px;
 border:1px solid #03C;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/S4c44/embedded/result,css,html"></iframe></p>
<p>Yukarıdaki örnekte sıralama yukarıdan aşağı <strong>Esnek Kutu1, Esnek Kutu2</strong> ve <strong>Esnek Kutu3</strong> iken <strong>box-direction: reverse;</strong> tanımı ile sıralama <strong>Esnek Kutu3, Esnek Kutu2</strong> ve <strong>Esnek Kutu1</strong> şeklini almıştır.</p>
<p><strong>Not:</strong> <strong>box-orient</strong> ve <strong>box-direction</strong> yerine ikisini kapsayan <strong>flex-direction</strong> üzerinde çalışılmaktadır. </p>
<p><strong>flex-direction lr, rl, tb, bt, inline, inline-reverse, block</strong> ve <strong>block-reverse</strong> değerlerini alabilecek. sol(left &#8211; l), sağ(right &#8211; r), üst(top &#8211; t) ve alt(bottom &#8211; b) kısaltmaları kullanılmıştır. CSS3&rsquo;ün birçok özelliği üzerinde halen çalışılan canlı bir yapıdır. Değişikliklerin olabileceği dikkate alınmalıdır.</p>
<h3 dir="ltr">box-pack</h3>
<p><strong>Yapısı :</strong> box-pack: &lt;deger&gt;<br />
  <strong>Aldığı Değerler :</strong> start | end | center | justify<br />
  <strong>Başlangıç değeri:</strong> start<br />
  <strong>Uygulanabilen elementler:</strong> display:box ve display:inline-box değeri alan elemanlara<br />
<strong>Kalıtsallık:</strong> Yok</p>
<p><strong>box-pack</strong> özelliği kapsayıcı kutunun içindeki esnek kutuların kapsayıcıya göre konumunu belirlemek için kullanılır. Dört adet değer alır başlangıç(start), son(end), ortalı(center) ve iki yana yasla(justify)</p>
<p>Alt elemanların genişliğinin kapsayıcı elemandan küçük olduğu durumlarda kalan boşluk alanına göre değerlendirme yapılır. </p>
<p>Bu özellik tanımı 2009&rsquo;da tanımlandı şu an yenileniyor <strong>flex-pack</strong> olarak değişecek. Tarayıcılar destekleyen kadar bu şekilde devam edecek.</p>
<pre class="brush: css; title: ; notranslate">
    #esnekKutuKapsul{
     display: box;
     display:-webkit-box;
     display:-moz-box;
     width:600px;
     border:1px solid #03C;
     box-pack:center;
     -webkit-box-pack:center;
     -moz-box-pack:center;
    }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/MwWcm/embedded/result,css,html"></iframe></p>
<h3 dir="ltr">box-align</h3>
<div class="cssozelliktanimi"><strong>Yapısı :</strong> box-align: &lt;deger&gt;<br />
  <strong>Aldığı Değerler :</strong> stretch | start | end | center | baseline<br />
  <strong>Başlangıç değeri:</strong> stretch<br />
  <strong>Uygulanabilen elementler:</strong> display:box ve display:inline-box değeri alan elemanlara<br />
<strong>Kalıtsallık:</strong> Yok</div>
<p>Kapsayıcı elemana atanan box-orient değerine göre kalan boşluğa göre hizalama yapmak için kullanılır. </p>
<p>Beş adet değer alır. <strong>stretch | start | end | center | baseline</strong> Başlangıç değeri <strong>stretch</strong>&rsquo;dir; bunun anlamı <strong>box-orient</strong> değeri <strong>horizontal</strong> ise <strong>stretch</strong> uygulanan elemanın alt elemanlarının yükseklikleri yayılacaktır, eğer <strong>box-orient</strong> değeri <strong>veritcal</strong> ise genişlikleri yayılacaktır. <strong>start</strong> ve <strong>end</strong> değerleri eğer horizantal tanımlı ise sol ve sağa yaslayacaktır, <strong>vertical</strong> tanımlı ise üste ve alta yaslayacaktır. <strong>center</strong> değeri ise ortalayacaktır. </p>
<pre class="brush: css; title: ; notranslate">
    #esnekKutuKapsul{
     display: box;
     display:-webkit-box;
     display:-moz-box;
     width:600px;
     border:1px solid #03C;
     box-orient:horizantal;
     -moz-box-orient:horizantal;
     -webkit-box-orient:horizantal;
     box-align: center;
     -webkit-box-align: center;
     -moz-box-align: center;
    }
    .esnekKutu{
     background-color:#999999;
     width:150px;
     height:150px;
     margin-right:15px;
    }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/ZYz2M/1/embedded/result,css,html"></iframe></p>
<h3 dir="ltr">box-lines</h3>
<div class="cssozelliktanimi"><strong>Yapısı :</strong> box-lines: &lt;deger&gt;<br />
  <strong>Aldığı Değerler :</strong> single | multiple<br />
  <strong>Başlangıç değeri:</strong> single<br />
  <strong>Uygulanabilen elementler:</strong> display:box ve display:inline-box değeri alan elemanlara<br />
<strong>Kalıtsallık:</strong> Yok</div>
<p>Esnek Kutu Yerleşimi ile yerleştirilen kutular genelde bir eksen üzerinde blok halinde hareket eder, <strong>blox-line</strong> özellik bu elemanların alt satıra geçip geçmemesini ayarlar. İki değer alır. </p>
<ul>
<li><strong>single:</strong> Başlangıç değerdir. Bu değeri alan kutular kapsayıcı eleman üzerine taşma yapacaktır. Taşma durumunu kontrol etmek için overflow özelliği kullanılabilir. </li>
<li><strong>multiple:</strong> Bu değer alan kutular tek satırda kendini sınırlamayacaklardır ve ikinci satıra inecektir. </li>
</ul>
<p>Şu anki tarayıcılar bu özelliği henüz desteklemiyor. İE10 desteklediğine dair duyumlar var. </p>
<p>Yenilenen EKYM standartlarında box-line özelliği görünmüyor. Onun yerine benzer etki yapacak <strong>flex-flow</strong> tanımı gelecek gibi. </p>
<h3 dir="ltr">box-ordinal-group</h3>
<div class="cssozelliktanimi"><strong>Yapısı :</strong> box-ordinal-group: &lt;deger&gt;<br />
  <strong>Aldığı Değerler :</strong> &lt;sayı&gt;<br />
  <strong>Başlangıç değeri:</strong> 1<br />
  <strong>Uygulanabilen elementler:</strong> display:box ve display:inline-box değeri alan elemanların normal akıştaki alt elemanları<br />
<strong>Kalıtsallık:</strong> Yok</div>
<p><strong>box-ordinal-group</strong> özelliği kapsayıcı kutunun içindeki esnek kutuların sıralamasını belirlememizi sağlar. </p>
<pre class="brush: css; title: ; notranslate">
#esnekKutu1 {
    box-ordinal-group: 2;
    -webkit-box-ordinal-group: 2;
    -moz-box-ordinal-group: 2;
    background-color:#0CF;
}
#esnekKutu3 {
    box-ordinal-group: 2;
    -webkit-box-ordinal-group: 2;
    -moz-box-ordinal-group: 2;
    background-color:#9C3;
}
#esnekKutu4 {
    box-ordinal-group: 1;
    -webkit-box-ordinal-group: 1;
    -moz-box-ordinal-group: 1;
    background-color:#FC9;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/TaFBM/embedded/result,css,html"></iframe></p>
<p>Dört adet kutumuz var. Bunların üç tanesine <strong>box-ordinal-group</strong> değeri tanımladık.</p>
<p><strong>EsnekKutu1</strong> ve <strong>EsnekKutu3</strong> için 2 değeri tanımladık bunlar ikinci sırada gelecek. <strong>EsnekKutu4</strong>&rsquo;e 1 değer tanımladık, buda ilk sırada gelecek. <strong>EsnekKutu2</strong> için bir tanım yapmadık buda başlangıç değeri olan 1 değerini almasına neden olacaktır. Buna göre sıralama 2,4,1,3 şeklinde olacaktır.</p>
<p>Bu özellik bize sıralama konusunda tam bir kontrol sağlamaktadır. </p>
<p>Yeni EKYM standardında <strong>box-ordinal-group</strong> yerine <strong>flex-order</strong> özellik ismi kullanılması düşünülmektedir. </p>
<h3 dir="ltr">box-flex</h3>
<div class="cssozelliktanimi"><strong>Yapısı :</strong> box-ordinal-group: &lt;deger&gt;<br />
  <strong>Aldığı Değerler :</strong> &lt;sayı&gt;<br />
  <strong>Başlangıç değeri:</strong> 0<br />
  <strong>Uygulanabilen elementler:</strong> display:box ve display:inline-box değeri alan elemanların normal akıştaki alt elemanları<br />
<strong>Kalıtsallık:</strong> Yok</div>
<p><strong>blox-flex</strong> özelliği tanımlanması durumunda alt elemanların esnek davranmasını sağlar. Tanım yapılmadığında ise alt elemanlar esnek olmaz. </p>
<p>Hesaplamanın mantığı şöyledir;</p>
<p>Gruptaki tüm esnek kutuların <strong>box-flex</strong> değeri toplanır ve her kutu için toplam boşluk genişliği(Kapasayıcı eleman ile kutuların genişliği toplamı arasındaki fark) bu sayıya bölünerek elde edilen değer kutu genişliğini belirler.</p>
<pre class="brush: css; title: ; notranslate">
#esnekKutuKapsul {
     background: gray;
    border: blue;
    display: box;
   display: -webkit-box;
   display: -moz-box;
   display: -ms-box;
   width:100%;
}
.esnekKutu {
   background-color:#999999;
   height:150px;
}
#esnekKutu1 {
    background-color:#0CF;
    border: orange solid 1px;
    box-flex: 2;
    -webkit-box-flex: 2;
    -moz-box-flex: 2;
    -ms-box-flex: 2;
}
#esnekKutu2 {
    background: lightgray;
    border: red solid 1px;
    box-flex: 1;
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -ms-box-flex: 1;
}
#esnekKutu3 {
    background-color:#9C3;
    border: red solid 1px;
    box-flex: 0;
    -webkit-box-flex: 0;
    -moz-box-flex: 0;
    -ms-box-flex: 0;
}
#esnekKutu4 {
    background-color:#FC9;
    border: red solid 1px;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/h7KAa/embedded/result,css,html"></iframe></p>
<p>Daha sabit bir örnek verelim; genişliği 600px olan kapsayıcı eleman ve  üç adet 100px&rsquo;lik kutumuz olsun(Bu durumdan boşluk değeri 300px olacaktır), bunların <strong>box-flex</strong> değerleri 1 olsun, her bir kutunun genişliği 200px(100 + 300/3 * 1 = 200) olacaktır. Eğer bu kutulardan bir tanesinin <strong>box-flex</strong> değeri 2 olarak değiştirilirse, değiştirilen kutunun genişliği 250px(100 + 300/4 * 2 = 250) olurken diğer iki kutunun genişliği 175px(100 + 300/4 * 1 = 175) olacaktır. </p>
<pre class="brush: css; title: ; notranslate">
#esnekKutuKapsul {
     background: gray;
    border: blue;
    display: box;
   display: -webkit-box;
   display: -moz-box;
   display: -ms-box;
   width:600px;
}
.esnekKutu {
   background-color:#999999;
   height:150px;
     width:100px;
}
#esnekKutu1 {
    background-color:#0CF;
    box-flex: 2;
    -webkit-box-flex: 2;
    -moz-box-flex: 2;
    -ms-box-flex: 2;
}
#esnekKutu2 {
    background: lightgray;
    box-flex: 1;
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -ms-box-flex: 1;
}
#esnekKutu3 {
    background-color:#9C3;
    box-flex: 1;
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -ms-box-flex: 1;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/Dyjq2/embedded/result,css,html"></iframe></p>
<p>Eğer kutu genişlikleri toplamı kapsayıcı kutunun genişliğinden büyük ise genişlik hesaplamasında benzer birim hesabına göre küçülme olacaktır. 0 değeri kutunun esnek olmayacağı anlamına gelir. </p>
<p><a href="http://www.ie7nomore.com/fun/flexiblenav/">Raphael Goetter</a>&rsquo;ın yaptığı örnek bu işin geleceği hakkında bize güzel bir ipucu veriyor. Fantastik örnekler.(Chrome da daha iyi gözüküyor)</p>
<p><strong>box-flex</strong> özelliği 2009 yılındaki standartlardaki hali idi, yenilenen standartlarda <strong>box-flex</strong> vede <strong>box-flex-group</strong> özelliklerini kapsayan <strong>flex()</strong> fonksiyonu ile yenilenmektedir. </p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi</strong><br />
  Firefox 3+ (-moz- öneki ile)<br />
  Chrome 5+ (-webkit- öneki ile)<br />
  Safari 3.2+ (-webkit- öneki ile)<br />
  Opera desteklemiyor<br />
  İnternet Explorer 10+ (-ms- öneki ile)<br />
  <strong>Mobil Tarayıcılar</strong><br />
  iOS Safari 3.2+ (-webkit- öneki ile)<br />
  Opera Mini desteklemiyor<br />
  Opera Mobile destelemiyor<br />
  Android Browser 2.2+ (-webkit- öneki ile) </div>
<h3 dir="ltr">Sonuç</h3>
<p>Gerek CSS3 ve gerekse EKYM yeni özellikler ve hala gelişmektede olan mecralar. Benim burada anlatmak istediğim CSS3&rsquo;ün en büyük yeniliklerinden biri olan sayfa planlamaya yönelim yeniliklerine bir göz atmak, mantığını kavramak, geleceğe dair fikir edinmeyi sağlamaktır. Ben burada sadece EKYM anlattım, ancak CSS3 ile sayfa planlamaya yönelik başka modüllerde geliştirilmekte; <a href="http://www.fatihhayrioglu.com/css3-coklu-kolonlar/">Çoklu Kolonlar(Multiple Column)</a>, <a href="http://dev.w3.org/csswg/css3-grid-align/">Izgara Yerleşim Modeli(Grid Layout)</a>, <a href="http://www.w3.org/TR/css3-layout/">Şablon Yerleşim Modeli(Template Layout Model)</a>, <a href="http://dev.w3.org/csswg/css3-exclusions/">CSS Exclusions Module</a>, <a href="http://dev.w3.org/csswg/css3-regions/">CSS regions Module</a> </p>
<p>CSS3 ile sayfa yerleşimi daha kolay olacağı kesin, bu konuda bir çok modül üzerinde çalışma bitmek üzere veya bitmiş bulunmakta. Gelecekte daha güzel şeyler olacağı kesin.</p>
<p>Yukarıda özelliklerin nasıl kullanıldığını göstermek için daha basit örneklerler verdik, daha karmaşık örneklerde yapılabilir <a href="http://oli.jp/2011/css3-flexbox/">http://oli.jp/2011/css3-flexbox/</a> sitesindeki örnekler incelenebilir.  </p>
<p>Kalın sağlıcakla</p>
<h3 dir="ltr">Kaynaklar</h3>
<ul>
<li><a href="http://www.html5rocks.com/en/tutorials/flexbox/quick/">http://www.html5rocks.com/en/tutorials/flexbox/quick/</a> (güzel)</li>
<li><a href="http://www.css3.info/introducing-the-flexible-box-layout-module/">http://www.css3.info/introducing-the-flexible-box-layout-module/</a></li>
<li><a href="http://www.w3.org/TR/css3-flexbox/">http://www.w3.org/TR/css3-flexbox/</a></li>
<li><a href="http://dev.w3.org/csswg/css3-flexbox/">http://dev.w3.org/csswg/css3-flexbox/</a></li>
<li><a href="http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-introduction-and-demostest-cases/">http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-introduction-and-demostest-cases/</a></li>
<li><a href="http://www.456bereastreet.com/archive/201103/the_css3_flexible_box_layout_flexbox/">http://www.456bereastreet.com/archive/201103/the_css3_flexible_box_layout_flexbox/</a></li>
<li><a href="http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/">http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/</a></li>
<li><a href="http://www.the-haystack.com/2010/01/23/css3-flexbox-part-1/">http://www.the-haystack.com/2010/01/23/css3-flexbox-part-1/</a></li>
<li><a href="http://ie.microsoft.com/testdrive/html5/flexin/default.html">http://ie.microsoft.com/testdrive/html5/flexin/default.html</a></li>
<li><a href="http://htmlrockstars.com/blog/the-flexible-box-layout-module-css3/">http://htmlrockstars.com/blog/the-flexible-box-layout-module-css3/</a></li>
<li><a href="http://blog.w3conversions.com/2011/02/css3-flexible-box-model-layout-coolness-also-oddities-confusion/">http://blog.w3conversions.com/2011/02/css3-flexible-box-model-layout-coolness-also-oddities-confusion/</a></li>
<li><a href="http://www.netmagazine.com/tutorials/css3-flexible-box-model-explained">http://www.netmagazine.com/tutorials/css3-flexible-box-model-explained</a></li>
<li><a href="http://adactio.com/journal/4778/">http://adactio.com/journal/4778/</a></li>
<li><a href="http://www.vanseodesign.com/css/flexbox/">http://www.vanseodesign.com/css/flexbox/</a> (güzel)</li>
<li><a href="http://oli.jp/2011/css3-flexbox/">http://oli.jp/2011/css3-flexbox/</a> (karmaşık yerleşim uygulamalı)</li>
<li><a href="http://blog.isotoma.com/2010/08/css3-flexbox/">http://blog.isotoma.com/2010/08/css3-flexbox/</a></li>
<li><a href="http://www.w3schools.com/css3/css3_reference.asp#box">http://www.w3schools.com/css3/css3_reference.asp#box</a></li>
<li><a href="http://portfo.li/madebyted/477862-css3-flexible-box-layout-module-aka-flex-box-introduction-and-demos-test-cases">http://portfo.li/madebyted/477862-css3-flexible-box-layout-module-aka-flex-box-introduction-and-demos-test-cases</a></li>
<li><a href="http://ontwik.com/css/css-3-the-flexible-box-model/">http://ontwik.com/css/css-3-the-flexible-box-model/</a> (video)</li>
<li><a href="http://msdn.microsoft.com/en-us/ie/hh272902.aspx#_CSSFlexBox">http://msdn.microsoft.com/en-us/ie/hh272902.aspx#_CSSFlexBox</a> (güzel)</li>
<li><a href="http://caniuse.com/flexbox">http://caniuse.com/flexbox</a> (tarayıcı desteği)</li>
<li><a href="http://coding.smashingmagazine.com/2011/09/19/css3-flexible-box-layout-explained/">http://coding.smashingmagazine.com/2011/09/19/css3-flexible-box-layout-explained/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-esnek-kutu-yerlesimiflexible-box-layout/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CSS3 box-sizing Özelliği</title>
		<link>http://www.fatihhayrioglu.com/css3-box-sizing-ozelligi/</link>
		<comments>http://www.fatihhayrioglu.com/css3-box-sizing-ozelligi/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 17:25:23 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[-moz-box-sizing]]></category>
		<category><![CDATA[-webkit-box-sizing]]></category>
		<category><![CDATA[box-border]]></category>
		<category><![CDATA[box-sizing]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2311</guid>
		<description><![CDATA[Daha önce CSS ile Kutu modeli, sorunları ve çözümleri adlı makalede de yazdığımız gibi yeni nesil tarayıcılar ve ie&#8217;nin garip(quirk) modundaki kabul farklı idi. Bu genelde hep ie&#8217;nin bir sorunu olarak görülse de aslında bir kabul idi ve genelden ayrıldığı için ie&#8217;nin bir sorunu olarak tanımlanıyordu. İşin aslında her iki kabulde kendince mantıklı idi. &#8220;W3C&#8217;ye [...]]]></description>
			<content:encoded><![CDATA[<p>Daha önce <a href="http://www.fatihhayrioglu.com/kutu-modeli-sorunlari-ve-cozumleri/">CSS ile Kutu modeli, sorunları ve çözümleri</a> adlı makalede de yazdığımız gibi yeni nesil tarayıcılar ve ie&rsquo;nin garip(quirk) modundaki kabul farklı idi. Bu genelde hep ie&rsquo;nin bir sorunu olarak görülse de aslında bir kabul idi ve genelden ayrıldığı için ie&rsquo;nin bir sorunu olarak tanımlanıyordu. İşin aslında her iki kabulde kendince mantıklı idi. </p>
<p><img src="https://lh5.googleusercontent.com/EkvNMZKnUkXNpL5ps_x6sCNwyAOY6KQ3TS3YsJ9_Ypbui2rEdirr1BijorcNsFE-9a9eIcUerazNoQLsvh7U8J9sGm3h3cV-DFRXqCuLae8e4ruLWfQ" alt="" width="271px;" height="110px;" /></p>
<p><em>&ldquo;W3C&rsquo;ye göre genişlik(ve yükseklik) değeri içerik alanı değeridir. padding ve border değerleri buna ek olarak toplam kutu genişliğine eklenir. Eğer toplam kutu değeri eklenecekse içerik alanı ve etrafındaki padding ve border değerleri toplamıdır. </em></p>
<p><em>Buraya kadar çok güzel ancak tüm web tarayıcıları bu durumu aynı şekilde yorumlamaz. IE&rsquo;un IE6/strict&rsquo;den önceki versiyonları yukarıda anlattığımız standart yorumun dışına çıkar, genişlik veya yükseklik değeri tüm kutu model element değerini ifade eder. Yani tüm padding ve border değerlerini içerir kalan kısmıda içerik alanı değeri olarak belirlenir.&rdquo;</em></p>
<p>W3C bu durum için bu kabulü bir özelliğe atadı ve bize seçme imkanı tanıdı. Artık biz kutu modelinin nasıl davranacağını seçebileceğiz. </p>
<div class="cssozelliktanimi"><strong>Yapısı :</strong> box-sizing: &lt;deger&gt;<br />
  <strong>Aldığı Değerler :</strong> content-box | border-box <br />
  <strong>Başlangıç değeri:</strong> content-box<br />
  <strong>Uygulanabilen elementler:</strong> Tüm Elemanlara<br />
<strong>Kalıtsallık:</strong> Yok</div>
<p>box-sizing özelliği bize kutunun genişliğinin border ve padding değerlerinin içerip içermemesi gerektiğini tanımlama imkanı sağlıyor. İki adet değeri var</p>
<ul>
<li>content-box: Normal kabul halidir. Genişlik veya yükseklik değeri içerik alanını içerir; border ve padding değerlerini içermez.</li>
<li>border-box: IE kutu kabulü diyede adlandırabileceğimiz değer. Genişlik veya yükseklik değeri padding ve border değerlerinide içerir. </li>
</ul>
<pre class="brush: css; title: ; notranslate">
#kutu{
  display:block;
  border:10px solid #069;
  padding:20px;
  width:200px;
  height:200px;
  background:#CCC;
}
</pre>
<p><iframe style="width: 100%; height: 400px" src="http://jsfiddle.net/fatihhayri/ZeMYW/1/embedded/result,css,html"></iframe></p>
<p>Başlangıç değeri content-box&rsquo;dır. Kutu genişliği 10px + 20px + 200 + 20 + 10px = 260px olacaktır.</p>
<p>Farklı tarayıcılar önek ile destek sağlamaktadır. Firefox(-moz-), Chrome(-webkit-) ve Safari (-webkit-) Yukarıdaki koda box-border tanımı yapıldığında</p>
<pre class="brush: css; title: ; notranslate">
#kutu{
  display:block;
  border:10px solid #069;
  padding:20px; width:200px;
  height:200px;
  background:#CCC;
  box-sizing:border-box;
  -webkit-box-sizing:border-box;
  -moz-box-sizing:box-border;
}
</pre>
<p><iframe style="width: 100%; height: 400px" src="http://jsfiddle.net/fatihhayri/y6uyv/embedded/result,css,html"></iframe></p>
<p>Kutunun genişlik değeri 200px olacaktır. İçerik alanı genişlik değeri ise 140px olacaktır. </p>
<p>Her iki değerin kullanılabileceği yerler vardır. border-box tanımının esnek yapılı alanlarda bize avantaj sağlayacağı kesindir. </p>
<pre class="brush: css; title: ; notranslate">
.kutuSol{
 float: left;
 width: 30%;
 background-color: pink;
 border: 3px red dotted;
 height: 150px;
}
.kutuSag{
 float: left;
 background-color: lightgreen;
 width: 70%;
 border: 3px green dotted;
 height: 150px;
}
</pre>
<p><iframe style="width: 100%; height: 400px" src="http://jsfiddle.net/fatihhayri/jP3Dv/1/embedded/result,css,html"></iframe></p>
<p>Esnek yapılı bir içerikte genişlik tanımlarımızı yüzde olarak verdiğimizde ve de padding ve border tanımı yaptığımızda kutularımızın genişliği toplamı %100 olmasına rağmen padding ve border değerleri nedeni ile kapsayıcı eleman içine sığmayacaktır. Burada genişlik değerini padding ve border değerlerini çıkarıp hesaplama imkanımızda yoktur. En azından <a href="http://www.fatihhayrioglu.com/css3-calc-degeri/">calc()</a> özelliği tam desteklenene kadar yoktur.</p>
<p>Çözüm olarak box-border tanımı ile sorunumuza çözüm üretebiliriz. </p>
<pre class="brush: css; title: ; notranslate">
.kutuSol{
 float: left;
 width: 30%;
 background-color: pink;
 border: 3px red dotted;
 height: 150px;
  box-sizing:border-box;
  -webkit-box-sizing:border-box;
  -moz-box-sizing:box-border;
}
.kutuSag{
 float: left;
 background-color: lightgreen;
 width: 70%;
 border: 3px green dotted;
 height: 150px;
  box-sizing:border-box;
  -webkit-box-sizing:border-box;
  -moz-box-sizing:box-border
}
</pre>
<p><iframe style="width: 100%; height: 400px" src="http://jsfiddle.net/fatihhayri/z2bQA/1/embedded/result,css,html"></iframe></p>
<p>Farklı araçlar ile web sayfaları gezilmeye başlayalı beri esnek yapılı sayfalar revaçtadır. Websitelerimizi artık daha esnek planlamak zorunda kalacağız. Bu durumda bu özellik bize çok büyük yararlar sağlayacaktır. </p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1+ (-moz- ön eki ile)<br />
  Chrome 1+ (-webkit- ön eki ile)<br />
  Safari 3+ (-webkit- ön eki ile)<br />
  Opera 7+<br />
  İnternet Explorer 8+<br />
  <strong>Mobil Tarayıcılar </strong><br />
  iOS Safari 3.2+ (-webkit- ön eki ile)<br />
  Opera Mini 5+<br />
  Opera Mobile10+<br />
Android Browser 2.1+ (-webkit- ön eki ile)</div>
<p>Trayaıcı destek listesinde görüldüğü gibi sorun sadece ie7 sürümü ve aşağısında yaşanmaktadır. </p>
<p>ie7 için <a href="http://webfx.eae.net/dhtml/boxsizing/implementation.html">http://webfx.eae.net/dhtml/boxsizing/implementation.html</a> sitesindeki script ile çözüm üretilebilir.</p>
<p>Daha basit bir çözüm olarak ie7 için padding değerleri % cinsinden verilebilir. Ayrıca html doküman garip modda kullanılır. Graip mod çözümü pek mantıklı değilsede bazı durumlarda başvurulabilir. </p>
<p>Kalın sağlıcakla</p>
<h3>Kaynaklar</h3>
<ul>
<li><a href="http://www.456bereastreet.com/archive/201104/controlling_width_with_css3_box-sizing/">http://www.456bereastreet.com/archive/201104/controlling_width_with_css3_box-sizing/</a> (güzel)</li>
<li><a href="http://caniuse.com/css3-boxsizing">http://caniuse.com/css3-boxsizing</a> (tarayıcı destek listesi)</li>
<li><a href="http://helephant.com/2008/10/20/css3-box-sizing-attribute/">http://helephant.com/2008/10/20/css3-box-sizing-attribute/</a> (güzel)</li>
<li><a href="http://aninnovativeweb.tumblr.com/post/770432002/understanding-css3-box-sizing">http://aninnovativeweb.tumblr.com/post/770432002/understanding-css3-box-sizing</a></li>
<li><a href="http://www.w3.org/TR/css3-ui/#box-sizing">http://www.w3.org/TR/css3-ui/#box-sizing</a></li>
<li><a href="http://www.goldentwine.com/blog/css3-user-interface-box-sizing">http://www.goldentwine.com/blog/css3-user-interface-box-sizing</a></li>
<li><a href="http://csshead.com/controlling-width-with-css3-box-sizing/">http://csshead.com/controlling-width-with-css3-box-sizing/</a></li>
<li><a href="http://css-tricks.com/7323-box-sizing/">http://css-tricks.com/7323-box-sizing/</a></li>
<li><a href="https://www.youtube.com/watch?v=rNqqfMJnpKY&amp;feature=related">https://www.youtube.com/watch?v=rNqqfMJnpKY&amp;feature=related</a> (video)</li>
<li><a href="http://maymay.net/blog/2004/10/28/observations-on-the-css3-box-sizing-property-and-how-designers-use-style-sheets/">http://maymay.net/blog/2004/10/28/observations-on-the-css3-box-sizing-property-and-how-designers-use-style-sheets/</a></li>
<li><a href="http://www.w3cplus.com/content/css3-box-sizing">http://www.w3cplus.com/content/css3-box-sizing</a> (çince)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-box-sizing-ozelligi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 calc() değeri</title>
		<link>http://www.fatihhayrioglu.com/css3-calc-degeri/</link>
		<comments>http://www.fatihhayrioglu.com/css3-calc-degeri/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 12:59:19 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[-moz-calc()]]></category>
		<category><![CDATA[calc()]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[hesaplama fonksiyonu]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2301</guid>
		<description><![CDATA[Firefox’un CSS3 içine eklediği bir değer olarak eklendi. İnternet Explorer 9 desteği ile genelleşen bir değer oldu. Çok kullanışlı bir değer olacağı şimdiden belli olan bu özelliği webkit ve opera’nında desteklemesini bekliyoruz. CSS değerleri listesine yeni ve fonsiyornel bir ekleme olacaktır calc(). Hesap Makinesi(Calculator) kelimesinden türetilen bu değer sayesinde css özelliklerine atanan değerlerde hesaplama yapabileme [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox’un CSS3 içine eklediği bir değer olarak eklendi. İnternet Explorer 9 desteği ile genelleşen bir değer oldu. Çok kullanışlı bir değer olacağı şimdiden belli olan bu özelliği webkit ve opera’nında desteklemesini bekliyoruz.</p>
<p>CSS değerleri listesine yeni ve fonsiyornel bir ekleme olacaktır <strong>calc()</strong>. Hesap Makinesi(Calculator) kelimesinden türetilen bu değer sayesinde css özelliklerine atanan değerlerde hesaplama yapabileme imkanı sağlayacaktır. </p>
<p>Toplama(+), çıkarma(-), çarpma(*), bölme(/) ve modül(mod) kullanma imkanı sağlıyor. </p>
<p>Daha önce yaşadığımız bir çok sorunun üstesinden bu değer sayesinde geleceğiz. </p>
<p>Genelde esnek yapılı alanlar ve sayfa düzeni oluştururken göreceli değer ve sabit margin, padding ve border tanımları ile sorun yaşarız. 
</p>
<pre class="brush: css; title: ; notranslate">
#sagKolon{
  width:calc(300px - 1em);
  width:-moz-calc(300px - 1em);
  float:left;
  background-color:#CC9933;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/VaBqn/3/embedded/css,result,html"></iframe></p>
<p>Firefox önek(<strong>-moz-</strong>) ile bu değeri desteklerken İnternet Explorer standartlardaki şekli destekler.</p>
<p>Örneğinde görüldüğü gibi <strong>calc()</strong> bu tip sorunlarımızın ilacı olacaktır. </p>
<p>Birden fazla işlem içinde kullanıma izin vardır.
</p>
<pre class="brush: css; title: ; notranslate">
div {
    width: calc(100% - 20px + 2px*2);
}
</pre>
<p>İşlem sırası matematik ve javascriptten bildiğimiz gibi çarpma, bölme, mod, toplama , çıkarma sıralaması ile olur.
</p>
<pre class="brush: css; title: ; notranslate">
p {
    margin: calc(1rem - 2px) calc(1rem - 1px)
}
</pre>
<p>şeklinde margin üst/alt ve sağ/sol tanımları yapılabilir. 
</p>
<h3>Tarayıcı Desteği</h3>
<p>Baştada belirttiğimiz gibi şu an sadece Firefox4 ve İnternet Explorer 9 ve üstü sürümleri destek sağlıyor. Microsoft’tan böyle bir destek beklemiyordum açıkçası. Webkit ve Opera desteğini en yakın zamanda bekliyorum.</p>
<h3>Kaynaklar</h3>
<ul>
<li><a href="http://webdesignernotebook.com/css/the-wonderful-calc-function/">http://webdesignernotebook.com/css/the-wonderful-calc-function/</a></li>
<li><a href="http://hacks.mozilla.org/2010/06/css3-calc/">http://hacks.mozilla.org/2010/06/css3-calc/</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/ms537660(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library/ms537660(v=vs.85).aspx</a> (ie9 destekliyor)</li>
<li><a href="https://developer.mozilla.org/en/CSS/-moz-calc">https://developer.mozilla.org/en/CSS/-moz-calc</a></li>
<li><a href="http://caniuse.com/calc">http://caniuse.com/calc</a> (destek listesi)</li>
<li><a href="http://mynthon.net/howto/-/webdev/css3-testsuite-calc-property-for-calculating-size.txt">http://mynthon.net/howto/-/webdev/css3-testsuite-calc-property-for-calculating-size.txt</a> (örnek)</li>
<li><a href="http://bloqk.com/makale/css_calc_kullanimi.html">http://bloqk.com/makale/css_calc_kullanimi.html</a></li>
<li><a href="http://www.thecssninja.com/demo/css_calc/">http://www.thecssninja.com/demo/css_calc/</a> (örnek)</li>
<li><a href="http://www.sitepoint.com/css3-calc-function">http://www.sitepoint.com/css3-calc-function</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-calc-degeri/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>CSS3 Çoklu Kolonlar</title>
		<link>http://www.fatihhayrioglu.com/css3-coklu-kolonlar/</link>
		<comments>http://www.fatihhayrioglu.com/css3-coklu-kolonlar/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 18:50:00 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[column-break]]></category>
		<category><![CDATA[column-count]]></category>
		<category><![CDATA[column-fill]]></category>
		<category><![CDATA[column-gap]]></category>
		<category><![CDATA[column-rule]]></category>
		<category><![CDATA[column-span]]></category>
		<category><![CDATA[column-width]]></category>
		<category><![CDATA[columns]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[çoklu kolonlar]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2296</guid>
		<description><![CDATA[Çoklu kolonlar metinlerin normal akışı dışında kolonlara bölünmesini ve gazete ve dergilerdeki çoklu kolonlu yapıya kavuşmasını sağlar. Uzun ve geniş alanlardaki metinlerin okunmaları daha zordur. Tipografi açısından belirli genişlikteki alanların metinleri daha okunaklı olduğu kabul edilir. Bu özellik bize daha okunaklı alanlar oluşturmamızı sağlıyor. Çoklu kolonlu yapılar çokta yeni bir özellik değildir. A List Apart [...]]]></description>
			<content:encoded><![CDATA[<p>Çoklu kolonlar metinlerin normal akışı dışında kolonlara bölünmesini ve gazete ve dergilerdeki çoklu kolonlu yapıya kavuşmasını sağlar. </p>
<p>Uzun ve geniş alanlardaki metinlerin okunmaları daha zordur. <a href="http://www.fatihhayrioglu.com/css-ve-tipografi/">Tipografi</a> açısından belirli genişlikteki alanların metinleri daha okunaklı olduğu kabul edilir. Bu özellik bize daha okunaklı alanlar oluşturmamızı sağlıyor.</p>
<p>Çoklu kolonlu yapılar çokta yeni bir özellik değildir. <a href="http://www.alistapart.com/articles/css3multicolumn">A List Apart</a> sitesindeki ilgili yazı 2005 tarihinde yazıldığını düşünürsek yaklaşık 6 sene olmuş ve buda az zaman değil. </p>
<p>Çoklu kolonları düzenlemek için bir kaç özellik vardır. Kolon yapısını, genişliğini ve ara alanlar oluşturmak için bu özellikleri kullanırız.</p>
<p>Çoklu kolon oluşturmak ve düzenlemek için 8 adet özellik vardır.</p>
<ul>
<li>column-count</li>
<li>column-width</li>
<li>columns</li>
<li>column-gap</li>
<li>column-rule</li>
<li>column-break veya break-*</li>
<li>column-span</li>
<li>column-fill</li>
</ul>
<p>Çoklu kolon özelliklerini iki kısma ayırabiliriz. </p>
<ul>
<li>column-count</li>
<li>column-width</li>
<li>column-gap</li>
<li>column-rule</li>
</ul>
<p>Yeni nesil tarayıcıların tümünün(ie hariç) desteklediği özellikler ve</p>
<ul>
<li>columns</li>
<li>column-break veya break-*</li>
<li>column-span</li>
<li>column-fill</li>
</ul>
<p>Sadece webkit tabanlı tarayıcıların desteklediği özellikler var. Biz şimdi sıra ile tanıtalım.</p>
<p>Elemanları kolonlara bölmek için <strong>column-count</strong> ve <strong>column-width</strong> özelliklerini kullanıyoruz.</p>
<h3 dir="ltr">column-count</h3>
<p>Elemanı ayıracağımız kolon sayısını belirlememizi sağlar. Başlangıç değeri auto olarak tanımlıdır. Bu sayede sadece <strong>column-width</strong> tanımı ile ile </p>
<pre class="brush: css; title: ; notranslate">
#cokluKolon{
  -moz-column-count:3;
  -webkit-column-count:3;
  column-count:3;
  width:968px;
  margin:0 auto;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/HZZ8t/1/embedded/css,result,html"></iframe></p>
<p>Genişlik tanımı yapılmadan kolonlara bölme işlemi gerçekleşmiyor. Tarayıcılara göre farklı öneklerle kullanmamız dışında tek satırsa elemanları kolonlara bölmek bize çok büyük kolaylık sağlayacaktır.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 3+<br />
  Opera 11.1+<br />
  İnternet Explorer 10+<br />
  <strong>Mobil Tarayıcılar </strong><br />
  iOS Safari 3.2+ <br />
  Opera Mini desteklemiyor<br />
  Opera Mobile11.1+<br />
  Android Browser 2.1+</div>
<h3 dir="ltr">column-width</h3>
<p>Elemanları kolonlara bölmek için diğer bir yöntemde <strong>column-width</strong> ile genişlik tanımı yapmaktır. Tarayıcılar belirlenen genişliğe göre kapsayıcının genişliğine göre otomatik olarak kolonlara bölecektir.</p>
<pre class="brush: css; title: ; notranslate">
  #cokluKolon{
      -moz-column-width:150px;
      -webkit-column-width:150px;
      column-width:150px;   
  }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/SkXL4/1/embedded/css,result,html"></iframe></p>
<p>Bir genişlik tanımı yapılırsa <strong>column-width</strong> değeri tanımlandığı kadar kolona bölüyor. </p>
<pre class="brush: css; title: ; notranslate">
  #cokluKolon{
      -moz-column-width:150px;
      -webkit-column-width:150px;
      column-width:150px;
      width:950px;   
  }
</pre>
<p>column-width ile <strong>column-count</strong> aynı anda kullanabiliriz.</p>
<pre class="brush: css; title: ; notranslate">
  #cokluKolon{
      -webkit-column-count: 2;
      -moz-column-count: 2;
      column-count: 2;
      -webkit-column-width: 150px;
      -moz-column-width: 150px;
      column-width: 150px;       
  }
</pre>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi</strong><br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 3+<br />
  Opera 11.1+<br />
  İnternet Explorer 10+<br />
  <strong>Mobil Tarayıcılar</strong><br />
  iOS Safari 3.2+ <br />
  Opera Mini desteklemiyor<br />
  Opera Mobile11.1+<br />
  Android Browser 2.1+</div>
<h3 dir="ltr">columns</h3>
<p><strong>column-count</strong> ve <strong>column-width</strong> değerlerini tek seferde kullanabileceğimiz bir kısayol tanımıdır.</p>
<pre class="brush: css; title: ; notranslate">
  div {columns: 200px 5;}
</pre>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox desteklemiyor<br />
  Chrome (-webkit- öneki ile)<br />
  Safari (-webkit- öneki ile)<br />
  Opera 11.1+<br />
İnternet Explorer 10+</div>
<p>Burada araya girip gördüğüm bir sorunu yazayım. <strong>column-count</strong> ve <strong>column-width</strong> tanımları birlikte yapılınca veya columns tanımı yapıldığında Firefox ve Google Chrome ile Opera farklı yorumluyor. Opera yorumlarken her halükarda <strong>column-width</strong> değerini üstün kılarken, Firefox ve Chrome <strong>column-coun</strong>t değerini üstün kılıyor. </p>
<pre class="brush: css; title: ; notranslate">
  #cokluKolon{
      -webkit-column-count: 2;
      -moz-column-count: 2;
      column-count: 2;
      -webkit-column-width: 150px;
      -moz-column-width: 150px;
      column-width: 150px;       
  }
</pre>
<p>Bu tanımda Firefox ve Chrome 2 kolonlu bir yapı gösteriyor ve genişlik olarak 150px tanımını görmüyor. Opera ise <strong>column-width</strong> değerini 150px alıp kapsayıcının genişliği kadar kolona ayrırıyor.</p>
<h3 dir="ltr">column-gap</h3>
<p>Kolonlar arasına mesafe koymak için kullanılır. Bir bakıma padding veya margin anlamında kullanılır. </p>
<p>Başlangıç değeri 1em olarak tanımlıdır. </p>
<pre class="brush: css; title: ; notranslate">
  #cokluKolon{
      -webkit-column-gap: 50px;
      -moz-column-gap: 50px;
      column-gap: 50px;       
  }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/vdnRk/1/embedded/css,result,html"></iframe></p>
<p><strong>column-gap</strong>&rsquo;in güzelliği son kolona bu boşluğu uygulamıyor olması.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 3+<br />
  Opera 11.1+<br />
  İnternet Explorer 10+<br />
  <strong>Mobil Tarayıcılar </strong><br />
  iOS Safari 3.2+ <br />
  Opera Mini desteklemiyor<br />
  Opera Mobile11.1+<br />
  Android Browser 2.1+</div>
<h3 dir="ltr">column-rule</h3>
<p><strong>column-rule</strong> ile kolonlar arasına çizgi atabiliyoruz. border tanımı ile benzer bir yapısı var. <strong>column-rule-size, column-rule-style </strong>ve<strong> column-rule</strong>-color gibi ayrı ayrı tanımlama yapılabileceği gibi <strong>column-rule</strong> kısaltması ile tanım yapabiliyoruz.</p>
<pre class="brush: css; title: ; notranslate">
  #cokluKolon{
      -webkit-column-rule: 3px solid #000;
      -moz-column-rule: 3px solid #000;
      column-rule: 3px solid #000;       
  }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/3SMhX/embedded/css,result,html"></iframe></p>
<p><strong>column-gap</strong> gibi sadece aradaki kolonlara uygulanan bir özellik bu son kolona uygulanmıyor.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 3+<br />
  Opera 11.1+<br />
  İnternet Explorer 10+<br />
  <strong>Mobil Tarayıcılar </strong><br />
  iOS Safari 3.2+ <br />
  Opera Mini desteklemiyor<br />
  Opera Mobile11.1+<br />
  Android Browser 2.1+</div>
<h3 dir="ltr">break-before, break-after ve break-inside</h3>
<p>Eleman akışını kesmek gerektiğin kullanmak için <strong>break-before, break-after </strong>ve<strong> break-inside</strong> kullanırız. Özelliğin üçe ayrılmasının nedeni yerini belirlemektir</p>
<ul>
<li><strong>break-before:</strong> çoklu kolon uygulanmış bir elementin içindeki bir elemanın öncesinde kolon kesilip kesilmemesini ayarlamak için kullanılır. <strong>auto | always | avoid | left | right | page | column | avoid-page | avoid-column</strong> değerlerini alıyor.</li>
<li><strong>break-after: </strong>çoklu kolon uygulanmış bir elementin içindeki bir elemanın sonrasında kolon kesilip kesilmemesini ayarlamak için kullanılır. <strong>auto | always | avoid | left | right | page | column | avoid-page | avoid-column</strong> değerlerini alıyor.</li>
<li><strong>break-inside:</strong> çoklu kolon uygulanmış elementin içindeki elemanın bulunduğu kolondaki durumu ayarlamak için kullanılır. <strong>auto | avoid | avoid-page | avoid-column</strong> değerlerini alıyor.</li>
</ul>
<p>Alınan değerleri tanımlayalım. Bu özelliği şu an sadece webkit tabanlı tarayıcılar destekliyor. Operada desteklediğini söyese de ben örneklerde buna dair bir görüntü elde edemedim. Burada sadece webkit&rsquo;in desteklediği değerleri tanımlayacağım.</p>
<ul>
<li><strong>auto:</strong> Oluşturulan kolonun öncesinde/sonrasında/içinde kesme veya kesmemeye karışma</li>
<li><strong>always:</strong> Her zaman oluşturulan kolonun öncesini/sonrasını kes.</li>
<li><strong>avoid:</strong> Oluşturulan kolonun öncesin/sonrasında/içinde kesme.</li>
<li><strong>inherit:</strong> Üst elemana atanan değeri al. </li>
</ul>
<p>Webkit bu özelliği önek ile <strong>-webkit-column-break-before, -webkit-column-break-after </strong>ve<strong> -webkit-column-break-inside</strong> olarak desteklemektedir.</p>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/aPtVe/3/embedded/css,result,html"></iframe></p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox desteklemiyor<br />
  Chrome (-webkit- öneki ile)<br />
  Safari (-webkit- öneki ile)<br />
  Opera 11.1+ (gerçekleyemedim)<br />
  İnternet Explorer 10+ (gerçekleyemedim) </div>
<h3 dir="ltr">column-span</h3>
<p>Eğer kolonlara ara başlıklar koymayı düşünüyorsak ve bu başlıkları tüm kolonlar boyunca uzatmak istiyorsak <strong>column-span</strong> özelliğini kullanıyoruz.</p>
<p><strong>column-span</strong> iki değer alıyor <strong>all, none</strong> ve sayı değeri(kolon sayısı 2,3,4 vs.) all değeri tüm kolonlar boyunca başlığın uzaması için kullanılır. Sayı değerleri ise belirtilen sayıdaki kolonlarda uzamasını için kullanılır.</p>
<pre class="brush: css; title: ; notranslate">
  #cokluKolon h2{
  -webkit-column-span:all;
  -moz-column-span:all;
  column-span:all;
  background-color:#0CF;
  }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/x6B67/embedded/css,result,html"></iframe></p>
<p>Şu anda destekleyen tarayıcılar <strong>all ve none</strong> değerlerini destekliyor sayısal değeri destekleyen tarayıcı henüz yok.(Eylül 2011)</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi</strong> <br />
  Firefox desteklemiyor<br />
  Chrome (-webkit- öneki ile) kısmen<br />
  Safari (-webkit- öneki ile) kısmen<br />
  Opera 11.1+ <br />
  İnternet Explorer 10+</div>
<h3 dir="ltr">column-fill</h3>
<p>Çoklu kolon tanımlarını yaptığımızda tarayıcılar içeriğe göre kolonları eşit yükseklikte ayarlar. Kolon yüksekliklerini ayarlamak için <strong>column-fill</strong> özelliğini kullanabiliriz. İki değeri vardır <strong>auto ve balance.</strong></p>
<ul>
<li><strong>balance:</strong> her kolonu eşit yükselikte olacak şekilde ayarlar. Başlangıç değerdir.</li>
<li><strong>auto:</strong> Sütunları sıralı olarak doldurur. Bu özellik yükseklik tanımı yapıldı ise geçerli olur. Belirlenen yükseklik değerine göre kolonları doldurur ve son kolona geri kalan içerik yerleştirilir, bazen kolonlar boşta kalabilir. </li>
</ul>
<p>Her ne kadar yukarıdaki bir tanımlama yapılmış olsa da ben uygulamadan iki değer arasında bir fark görmedim.</p>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/WSWbt/embedded/css,result,html"></iframe></p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox desteklemiyor<br />
  Chrome (-webkit- öneki ile)<br />
  Safari (-webkit- öneki ile)<br />
  Opera 11.1+<br />
  İnternet Explorer 10+</div>
<h3 dir="ltr">İnternet Explorer İçin Çözüm</h3>
<p>İnternet Explorer&rsquo;un 10. sürümüne kadar desteklemediği bu özelliği kullanma imkanımız azalıyor. Javascript ile üretilen çözümler mevcut</p>
<ul>
<li><a href="http://13thparallel.com/archive/column-script/">Column Script from Michael van Ouwerkerk</a></li>
<li><a href="http://www.csscripting.com/wiki/index.php?title=The_Script">The Script from CSS Scripting</a></li>
<li><a href="http://www.csscripting.com/css-multi-column/">Multi Column Layout Demonstration from CSS Scripting</a></li>
<li><a href="http://www.cvwdesign.com/txp/article/360/multi-column-layout-with-css3-and-some-javascript">Multi-column layout with CSS3 (and some JavaScript)</a>
</li>
</ul>
<h3 dir="ltr">Sonuç</h3>
<p>Çoklu kolon özelliklerinin ilk çıktığında ben daha çok saya planlama özellikleri olarak düşünmüştüm, ancak özellikleri inceledikçe sayfa planlama için değil daha çok elemanları belli genişlikte kolonlara bölmek için kullanılabilecek bir özellik olduğunu gördüm. Benim düşündüğüm şekli ise yine W3C&rsquo;nin duyurduğu <a href="http://www.w3.org/TR/css3-flexbox/">Esnek Kutu Planlama Modülü</a> karşılıyor. Çoklu Kolon javascript ile çözümde olsa henüz uygulayabileceğimiz özellikler içermiyor bence, tabi zaman ne gösterir bilemiyorum. </p>
<p><a href="http://www.fatihhayrioglu.com/cok-kolonlu-yapilar-ve-cok-kolonlu-menuler/">Daha önce çok kolonlu menülerde</a> bu konudan bahsetmiştim. Çok kolonlu menüler bu özellik kullanılarak çok kolay bir şekilde oluşturulabilir.</p>
<p>Zamanla daha çok uygulama gördükçe daha iyi anlayabileceğimiz bir özellik. Bunun yanında araştırırken bazı ufak tefek sorunları olan özellikler bunlar şimdilik bahsetmedim sonra bilahare bahsederiz yeri geldikçe.</p>
<p>Kalın sağlıcakla</p>
<h3 dir="ltr">Kaynaklar</h3>
<ul>
<li><a href="http://www.w3.org/TR/css3-multicol/">http://www.w3.org/TR/css3-multicol/</a></li>
<li><a href="http://www.alistapart.com/articles/css3multicolumn">http://www.alistapart.com/articles/css3multicolumn</a></li>
<li><a href="http://www.vanseodesign.com/css/multi-columns/">http://www.vanseodesign.com/css/multi-columns/</a> (güzel)</li>
<li><a href="http://css-tricks.com/snippets/css/multiple-columns/">http://css-tricks.com/snippets/css/multiple-columns/</a> (basit)</li>
<li><a href="http://www.zenelements.com/blog/css3-multiple-columns/">http://www.zenelements.com/blog/css3-multiple-columns/</a> (basit)</li>
<li><a href="http://www.css3.info/preview/multi-column-layout/">http://www.css3.info/preview/multi-column-layout/</a></li>
<li><a href="http://www.quirksmode.org/css/multicolumn.html">http://www.quirksmode.org/css/multicolumn.html</a></li>
<li><a href="http://webdesignernotebook.com/css/remembering-the-css3-multi-column-layout-module/">http://webdesignernotebook.com/css/remembering-the-css3-multi-column-layout-module/</a></li>
<li><a href="http://trentwalton.com/2010/07/19/css3-multi-column-layout-column-count/">http://trentwalton.com/2010/07/19/css3-multi-column-layout-column-count/</a> (örnek)</li>
<li><a href="http://css-tricks.com/13372-seamless-responsive-photo-grid/">http://css-tricks.com/13372-seamless-responsive-photo-grid/</a> (örnek)</li>
<li><a href="http://designshack.co.uk/articles/introduction-to-css3-part-5-multiple-columns">http://designshack.co.uk/articles/introduction-to-css3-part-5-multiple-columns</a> (güzel)</li>
<li><a href="http://kmsm.ca/2010/an-almost-complete-guide-to-css3-multi-column-layouts/">http://kmsm.ca/2010/an-almost-complete-guide-to-css3-multi-column-layouts/</a> (güzel)</li>
<li><a href="http://dev.opera.com/articles/view/css3-multi-column-layout/">http://dev.opera.com/articles/view/css3-multi-column-layout/</a> (güzel)</li>
<li><a href="http://www.my-html-codes.com/css3-multiple-columns">http://www.my-html-codes.com/css3-multiple-columns</a> (orta)</li>
<li><a href="http://www.456bereastreet.com/archive/200509/css3_multicolumn_layout_considered_harmful/">http://www.456bereastreet.com/archive/200509/css3_multicolumn_layout_considered_harmful/</a> (basit)</li>
<li><a href="https://developer.mozilla.org/en/CSS3_Columns">https://developer.mozilla.org/en/CSS3_Columns</a> (basit)</li>
<li><a href="http://www.red-team-design.com/multi-column-text-using-css3">http://www.red-team-design.com/multi-column-text-using-css3</a> (örnekli)</li>
<li><a href="http://www.stuffandnonsense.co.uk/archives/css3_multi-column_thriller.html">http://www.stuffandnonsense.co.uk/archives/css3_multi-column_thriller.html</a></li>
<li><a href="http://www.superiorwebsys.com/blog/20/Creating_A_Multi-Column_Layout_Using_CSS3/">http://www.superiorwebsys.com/blog/20/Creating_A_Multi-Column_Layout_Using_CSS3/</a> (görsel)</li>
<li><a href="http://caniuse.com/multicolumn">http://caniuse.com/multicolumn</a> (tarayıcı destek)</li>
<li><a href="http://people.opera.com/pepelsbey/experiments/multicol/">http://people.opera.com/pepelsbey/experiments/multicol/</a> (güzel örnek)</li>
<li><a href="http://people.opera.com/zibin/multicol/index.html">http://people.opera.com/zibin/multicol/index.html</a> (güzel örnek)</li>
<li><a href="http://www.juude.info/css-columns.php">http://www.juude.info/css-columns.php</a> (güzel)</li>
<li><a href="http://www.csscripting.com/css-multi-column/">http://www.csscripting.com/css-multi-column/</a> (js ile çözüm)</li>
<li><a href="http://zomigi.com/blog/deal-breaker-problems-with-css3-multi-columns/">http://zomigi.com/blog/deal-breaker-problems-with-css3-multi-columns/</a> (sorunları)</li>
<li><a href="http://help.dottoro.com/lcxquvkf.php">http://help.dottoro.com/lcxquvkf.php</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-coklu-kolonlar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 Seçicileri</title>
		<link>http://www.fatihhayrioglu.com/css3-secicileri/</link>
		<comments>http://www.fatihhayrioglu.com/css3-secicileri/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 19:50:00 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[css3 seçicileri]]></category>
		<category><![CDATA[nth seçicileri]]></category>
		<category><![CDATA[Özellik-seçicileri]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2271</guid>
		<description><![CDATA[CSS için seçiciler çok önemlidir. CSS3 ile birlikte gelen yeni seçiciler kodlama yaparken elimizi güçlendirecek cinsten. Javascript ile yaptığımız birçok işi css ile yapacağız bu sayede. CSS1de 5-6 seçici varken, CSS2 ile birlikte bu sayı 12&#8217;ye çıktı. CSS3 ile birlikte ise bu sayı 20&#8217;yi aştı. . İşte CSS3 ile gelen yeni seçiciler; CSS3 Özellik Seçicileri [...]]]></description>
			<content:encoded><![CDATA[<p>CSS için seçiciler çok önemlidir. CSS3 ile birlikte gelen yeni seçiciler kodlama yaparken elimizi güçlendirecek cinsten. Javascript ile yaptığımız birçok işi css ile yapacağız bu sayede. CSS1de 5-6 seçici varken, CSS2 ile birlikte bu sayı 12&rsquo;ye çıktı. CSS3 ile birlikte ise bu sayı 20&rsquo;yi aştı. . İşte CSS3 ile gelen yeni seçiciler;</p>
<ul>
<ul>
<li>CSS3 Özellik Seçicileri</li>
<ul>
<li>Belirlenen Sözdizimi ile Başlayan Özellik Değer Seçicisi</li>
<li>Belirlenen Sözdizimi ile Biten Özellik Değer Seçicisi</li>
<li>İçinde Belirlenen Sözdizimi Geçen Özellik Değer Seçicisi</li>
<li>Çoklu Özellik Seçicisi Kullanımı</li>
</ul>
<li>Genel Kardeş Seçicisi</li>
<li>:target Sözde Seçisi</li>
<li>Form Elemanları Durumları Sözde Sınıfları</li>
<ul>
<li>:disabled</li>
<li>:enabled</li>
<li>:checked</li>
</ul>
<li>CSS3 Sözde Seçicileri</li>
<ul>
<li>Yapısal Sözde Seçiciler</li>
<ul>
<li>:root Sözde Sınıfı</li>
<li>:nth-child() sözde sınıfı</li>
<li>:nth-last-child() sözde sınıfı</li>
<li>:nth-of-type() sözde sınıfı</li>
<li>:nth-last-of-type() sözde sınıfı</li>
<li>:last-child sözde sınıfı</li>
<li>:first-of-type sözde sınıfı</li>
<li>:last-of-type sözde sınıfı</li>
<li>:only-child sözde sınıfı</li>
<li>:only-of-type sözde sınıfı</li>
<li>:empty sözde sınıfı</li>
</ul>
</ul>
<li>Olumsuz(:not) Sözde SınıfıSözde Sınıf</li>
<li>::selection sözde sınıf</li>
</ul>
</ul>
<h3>Özellik Seçicileri</h3>
<p>CSS3 ile birlikte 3 yeni özellik seçicisi gelmektedir. </p>
<p>CSS2 ile birlikte gelen özellik seçicileri daha genel seçicilerken CSS3 ile birlikte daha özel seçimler yapabilmemizi sağlayan özellik seçicileri geldi. </p>
<p><strong>Belirlenen Sözdizimi ile Başlayan Özellik Değer Seçicisi</strong></p>
<p>Tüm sözdizimi yerine &#8230;ile başlayan elemanı seçmek için kullanılır. Belirtilen sözdizimi ile başlayan elemanlar seçilir. (^) şapka işareti ile kullanılır. </p>
<p><img src="https://lh6.googleusercontent.com/w8JW05qWsN2l-joJkQZ8-0BtI_Ahasy75ToU1_vFtAgGGjsdfG19PLQlW0Cu2tdkVuoxlXOfIC19hCnvbYJnELaFnk6qyB2dC3YJEETpjs95439SJw4" alt="" width="350px;" height="160px;" /></p>
<p>Bu tanımlama ile belirtilen sözdizimi ile başlayan özellik değerini arıyor ve uyguluyor.</p>
<pre class="brush: xml; title: ; notranslate">
This is a sample &lt;a href=&quot;http://www.bloggermint.com&quot;&gt;hyperlink&lt;/a&gt;.
This is a sample &lt;a href=&quot;mailto:bloggermint@gmail.com&quot;&gt;bloggermint@gmail.com&lt;/a&gt;.
This is a sample &lt;a href=&quot;ftp://bloggermint.com&quot;&gt;FTP Server&lt;/a&gt;.
</pre>
<pre class="brush: css; title: ; notranslate">
a[href^='http'] {
    background: url(images/link.png) no-repeat left;
    padding-left:20px;
}
a[href^='mailto'] {
    background: url(images/email.png) no-repeat left;
    padding-left:20px;
}
a[href^='ftp'] {
    background: url(images/folder.png) no-repeat left;
    padding-left:20px;
}
</pre>
<p>Şeklinde link başlangıç değerine göre ikon atayabiliriz.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi</strong> <br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 2+<br />
  Opera 5+<br />
  İnternet Explorer 7+<br />
  <strong>Mobil Tarayıcılar</strong> <br />
  iOS Safari 3.2+ <br />
  Opera Mini 5.0+<br />
  Opera Mobile10.0+<br />
Android Browser 2.1+</div>
<p><strong>Belirlenen Sözdizimi ile Biten Özellik Değer Seçicisi</strong></p>
<p>Belirlenen sözdizimi ile biten elemanları seçmek için kullanılır. Başlangıç sözdizimi ile seçme ile aynı şekilde çalışır. Seçici işareti olarak $(dolar) işareti kullanılır.</p>
<p><img src="https://lh3.googleusercontent.com/0qkeYfNwhs3wyl1K7H3oTIMHVxq_fuqlEi_kXSrBD7sUHbIHFMVTjWQyzpDVGdXM581uNoPrcolpFoh8cH-lKA9AeWXveDA7lVoos3NODlE5rmiqVno" alt="" width="350px;" height="160px;" /></p>
<p>Bu seçiciyi kullanarak dokümanlara verilen linklerin başına kolayca ikon ekleyebiliriz. </p>
<pre class="brush: css; title: ; notranslate">
a[href$='.pdf'] { background-image: url('pdf.png'); }
a[href$='.doc'] { background-image: url('word.png'); }
a[href$='.rss'] { background-image: url('feed.png'); }
</pre>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi</strong> <br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 2+<br />
  Opera 5+<br />
  İnternet Explorer 7+<br />
  <strong>Mobil Tarayıcılar</strong> <br />
  iOS Safari 3.2+ <br />
  Opera Mini 5.0+<br />
  Opera Mobile10.0+<br />
Android Browser 2.1+</div>
<p><strong>İçinde Belirlenen Sözdizimi Geçen Özellik Değer Seçicisi</strong></p>
<p>Belirlenen sözdizimi özellik değerinde geçen elemanları seçmek için kullanılır. Seçici işareti olarak * (yıldız) işareti kullanılır.</p>
<p><img src="https://lh4.googleusercontent.com/5e_41wg7MEzgTzwCyGBHWAnp7Js-HypUDJigkcO7WC632270MGhU0ubYO6058YFY0zY5aOptuOv7H3_gyJw2ZiHMYFHNCygPD-8PlKV6eRS4E1xtcuI" alt="" width="350px;" height="160px;" /></p>
<p>Birçok yerde kullanılabilecek geniş kapsamlı bir kullanımı olan bir seçicidir. </p>
<pre class="brush: css; title: ; notranslate">
  a[title*='im'] {}
</pre>
<p>Sadece bir kısmı ile elemanı seçebilme imkanı sağlıyor. CSS2&rsquo;dekinden farklı olarak.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 2+<br />
  Opera 5+<br />
  İnternet Explorer 7+<br />
  <strong>Mobil Tarayıcılar </strong><br />
  iOS Safari 3.2+ <br />
  Opera Mini 5.0+<br />
  Opera Mobile10.0+<br />
Android Browser 2.1+</div>
<p><strong>Çoklu Özellik Seçicisi Kullanımı </strong></p>
<p>Özellik seçicileri birlikte kullanma imkanımızda vardır. Birden fazla seçici ile seçimi daraltabiliriz.</p>
<pre class="brush: css; title: ; notranslate">
  p[class=highlight] a[title~=important] {
  background : #ffffcc;
  }
</pre>
<p>Daha fazla özellik seçicisinide birleştirebiliriz.</p>
<pre class="brush: css; title: ; notranslate">
  a[href^='http://'][href*='/folder2/'][href$='.pdf'] {
  background:url(pdf.gif) 0 0 no-repeat;
  }
</pre>
<p>CSS3 ile gelen özellik seçicilerinin bir avantajıda ie7&rsquo;ninde bu seçicileri destekliyor olmasıdır.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 2+<br />
  Opera 5+<br />
  İnternet Explorer 7+<br />
  <strong>Mobil Tarayıcılar </strong><br />
  iOS Safari 3.2+ <br />
  Opera Mini 5.0+<br />
  Opera Mobile10.0+<br />
  Android Browser 2.1+</div>
<h3 dir="ltr">Genel Kardeş Seçicisi</h3>
<p>CSS2.1 ile birlikte gelen bitiş kardeş seçicilerine benzer bir seçicidir. Bitişik şardeş seçicisine göre daha seçici ve kullanışlı bir seçicidir. Aynı kapsayıcıya sahip elemanların belirtilen elemandan sonraki aynı seviyedeki elemanların tümünü yakalamak için kullanılır. Burada dikkat edilmesi gereken konu belirtilen elemandan sonraki aynı seviyedeki elemanları seçiyor olması. Tanımlama yaparken araya işaret olarak tilde(~) koyuyoruz.</p>
<p><img src="https://lh3.googleusercontent.com/t8QIYGvMozXeDyAOos5pbfZSpJQKyyIzuGgfMHqEire4_Y06UOOUPv9GOJPpDnd_R5wn2vlvrLVbUwvj48puypNMqcJ3tUqo4sY5pLUp9KQiMMAJ66Q" alt="" width="237px;" height="160px;" /></p>
<p>Bir örnek yapacak olursak bir resmimiz var bunu sola hizalayacağız ve sağdanda metinler akacak. Bu resim ve paragraflar arasına padding tanımlamak için genel kardeş seçicisi birebirdir.</p>
<pre class="brush: css; title: ; notranslate">
img{
   float:left;
}
img ~ p{
   padding-left:110px;
}
</pre>
<p>html kodu </p>
<pre class="brush: xml; title: ; notranslate">
&lt;img src=&quot;kedi.jpg&quot; width=&quot;96&quot; height=&quot;96&quot; alt=&quot;kedi&quot; /&gt;
&lt;p&gt;Kedi (Felis catus),...&lt;/p&gt;
&lt;p&gt;2,5 ile 12 kilo ...&lt;/p&gt;
&lt;p&gt;Kediler hoş görünüşlü, ..&lt;/p&gt;
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/KGkAK/1/embedded/result,css,html"></iframe></p>
<p>Bu seçiciyi ie7&rsquo;nin seçicisini destekliyor.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1.5+<br />
  Chrome 2+<br />
  Safari 2+<br />
  Opera 5+<br />
  İnternet Explorer 7+<br />
  <strong>Mobil Tarayıcılar </strong><br />
  iOS Safari 3.2+ <br />
  Opera Mini 5.0+<br />
  Opera Mobile10.0+<br />
  Android Browser 2.1+</div>
<h3 dir="ltr">:target Sözde Sınıfı </h3>
<p>&ldquo;:target seçicisi CSS3 ile birlikte gelen yeni seçilerden biri. :target seçicisi doküman içi linklere odaklanmamızı sağlıyor. Daha önce bu işi yapmak için javascript ile yapıyorduk. CSS3&rsquo;ün bizlere kazandırdığı birçok yenilikte olduğu gibi bu özellikte basit bir şekilde sayfalarımıza güzel etkiler kazandırır. :target sözde sınıfı :hover seçicisi gibi dinamik bir seçicidir.&rdquo;</p>
<p>Şeklinde tanımladık. Bu konu hakkında daha önce <a href="http://www.fatihhayrioglu.com/css3-target-secicisi/">bir makale yazmıştım</a> detayına oradan bakabilirsiniz.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 1+<br />
  Chrome 2+<br />
  Safari 3.1+<br />
  Opera 9.5+<br />
  İnternet Explorer 9+</div>
<h3 dir="ltr">Form Elemanları Durumları Sözde Sınıfları</h3>
<p>Form elemanlarının çeşitli durumlarını seçebilmek için kullanılan sözde sınıflardır. Kullanıcıların bu durumları ayırt etmeleri için sınıf tanımlayıp ona göre css ile görselliğini değiştirerek kodlamamızı yapıyorduk. CSS3 ile birlikte daha kolay bir seçim ve sonuç elde edebiliriz. 3 adet durum söz konusu</p>
<ul>
<li>:disabled</li>
<li>:enabled</li>
<li>:checked</li>
</ul>
<p>Form elemanlarında bu durumlar HTML olarak</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;textarea disabled=&quot;disabled&quot;&gt;&lt;/textarea&gt;
    &lt;input checked=&quot;checked&quot; type=&quot;checkbox&quot;&gt;
</pre>
<p>şekilde tanımlanır. Form elemanlarının bu durumlarını kullanıcıya yansıtmamız lazım. Bu sayede daha kullanıcı dostu formlar oluşturmuş olacağız.</p>
<pre class="brush: css; title: ; notranslate">
:enabled {
   border: 2px solid #6374AB;
}

:disabled {
   border: 2px solid #00cc00;
}

:checked {
   display: inline-block;
   width: 4em;
}
</pre>
<p>HTML kodumuz</p>
<pre class="brush: xml; title: ; notranslate">
&lt;form id=&quot;testForm&quot;&gt;
   &lt;input&gt;
   &lt;input type=&quot;checkbox&quot;&gt;
   &lt;input type=&quot;radio&quot; name=&quot;test&quot;&gt;
   &lt;input type=&quot;radio&quot; name=&quot;test&quot;&gt;
   &lt;input type=&quot;submit&quot;&gt;
&lt;/form&gt;
</pre>
<p><iframe style="width: 100%; height: 180px" src="http://jsfiddle.net/fatihhayri/KM9B4/embedded/result,css,html"></iframe></p>
<p>Basit bir örnek vermiş olsak dahi bu seçiciler ile neler yapabileceğimizi düşünmek bile sevindiriyor bizi. <a href="http://dev.opera.com/articles/view/styling-forms-with-attribute-selectors-1/">http://dev.opera.com/articles/view/styling-forms-with-attribute-selectors-1/</a> örneğe bir göz gezdirmek iyi olur.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 9.5+<br />
  İnternet Explorer 9+</div>
<h3 dir="ltr">Yapısal Sözde Sınıfları</h3>
<p>&ldquo;Sözde sınıf ve sözde elementleri CSS&rsquo;i destekleyen web tarayıcıları tarafından otomatik olarak tanınan özel sınıf ve elementlerdir. Bu sınıf ve elementler (x)html hiyerarşisi ile erişemediğimiz element ve sınıflara erişmemizi sağlar. Sözde sınıfı bir elementi farklı sınıflara böler(örn: link elementini active, visited vd. sınıflarına böler) Sözde elementi ise bir elementi alt kısımlara böler (örneğin bir paragrafın ilk harfi, bir paragrafın ilk satırı gibi.)&rdquo;</p>
<p>Şeklinde tanımladığımız sözde sınıf ve sözde elementlere CSS3 ile birlikte çok etkili yeni seçiciler eklendi. Başta söylediğim gibi CSS seçicileri CSS&rsquo;in en önemli öğeleridir. CSS seçicileri ne kadar gelişirse biz kod yazarken o kadar rahat ederiz. </p>
<p><img src="https://lh4.googleusercontent.com/lKodnf8SMrbnSV9jZd_EwcQZ1IF-JZy9GY9jv1olLpuOfebHtjsE0vbOyNA-_-EDzpoNCUBs_JVVgnk-_m7Jh0VQ6D7l9PhKXq2K7woke7tNGX36f5Q" alt="" width="283px;" height="160px;" /></p>
<p><strong>:nth-child() sözde sınıfı</strong></p>
<p>:nth seçicileri belirlenen elemanın aynı seviyesindeki önemli sıradaki elemanlarını seçmek için kullanılır. Sıralamayı belirleyen numaralar parantez içinde tanımlanır; rakam, belirli kelimeler ve formül tanımlanabilir. </p>
<p>Rakama bir örnek verecek olursak, 3. sıradaki elemanı yakalamak için</p>
<pre class="brush: css; title: ; notranslate">
  p:nth-child(3) { color:#f00; }
</pre>
<p>Belirli kelimelere bir örnek verecek olacaksak; odd(çift) ve even(tek) kelimelerinin kullanımı ile seçme işlemini gösterebiliriz. Zebra tablolardan hatırladığımız çift, tek satırlara tanımlama yapmak için kullanılabilir. </p>
<pre class="brush: css; title: ; notranslate">
  tr:nth-child(odd) { color:#f00; }
  tr:nth-child(even) { color:#ff0; }
</pre>
<p><iframe style="width: 100%; height: 400px" src="http://jsfiddle.net/fatihhayri/F6UnC/embedded/result,css,html"></iframe></p>
<p>Formül için örnek verecek olursak; dinamik bir seçim oluşturmak için gayet iyi sonuçlar verecek bir özelliktir. Matematik derslerindende hatırladığımız (an + b) a ve b değişkenlerdir. Benzer formüller ile eleman seçebilme imkanı veriyor.</p>
<pre class="brush: css; title: ; notranslate">
  p:nth-child(3n+0)
  {
      background:#ff0000;
  }
</pre>
<p>Bir tanım ile 3 katı olan elementleri yakalayabiliriz.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:nth-last-child() sözde sınıfı</strong></p>
<p>:nth sözde sınıfına benzer bir kullanımım vardır. :nth sözde sınıfından farklı olarak sıralama olarak baştan değilde sondan başlayarak seçmemizi sağlar. </p>
<pre class="brush: css; title: ; notranslate">
  tbody tr:nth-last-child(2)
  {
  background:#ff0000;
  }
</pre>
<p>Tanımı ile tbody içindeki sondan 2. sıradaki satırı yakalamamızı sağlar.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:nth-of-type() sözde sınıfı</strong></p>
<p>:nth-of-type() sözde seçicisi :nth-child() seçicisine benzer şekilde çalışır, farklı olarak :nth-child() sözde seçicisi aynı seviyedeki tüm elemanları seçerken, :nth-of-type() sözde seçicisi sadece aynı tip elemanları seçer.</p>
<pre class="brush: css; title: ; notranslate">
  p:nth-of-type(3) { background:#ff0; }
</pre>
<p>Örneğinde mesela paragraf elemanı ile aynı seviyedeki tüm paragrafları seçmemizi sağlar. Benzer şekilde :nth-child()  kullansa idik, aynı seviyedeki farklı tip elemanlarıda yakalamış olacaktık.</p>
<p>:nth-of-type() sözde seçicisi bize çok iyi seçme imkanları sağlayacaktır.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:nth-last-of-type() sözde sınıfı</strong></p>
<p>:nth-last-of-type() sözde seçicisi :nth-of-type() ile aynı yapıda işler farklı olarak seçim sıralaması baştan sona doğru değilde sondan başa doğru aynı seviyedeki ve aynı tipteki elemanları seçmek için yapılır. </p>
<p>:nth-last-child() ile benzer şekilde çalışır, seçicilerin sayısı fazlada olsa aslında benzer özellikte çalışırlar, ancak bu ufak farklar bile bize çok büyük avantajlar sağlayacaktır.</p>
<pre class="brush: css; title: ; notranslate">
  p:nth-last-of-type(2) { background:#ff0; }
</pre>
<p>Aynı seviyedeki paragrafların sondan ikincisini yakalar bu seçici</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:last-child sözde sınıfı</strong></p>
<p>:last-child sözde seçicisi aynı seviyedeki elemanların en sonuncusunu seçmek için kullanılır. fisrt-child ilk elemanı seçmemizi sağlarken :last-child son elemanı seçmemizi sağlar. Menü gibi yanyana dizdiğimiz elemanların sonuncusunu bulmak bizim her zaman işimize yarayacaktır. :nth-last-child(1) aynı işi görür. </p>
<pre class="brush: css; title: ; notranslate">
  p:last-child { background:#ff0; }
</pre>
<p>Tanımı belirlenen paragraf ile aynı seviyedeki elemanların en sonuncusunu seçmemizi sağlar.</p>
<p>Mesela köşeleri oval bir menü yapımında çok işimize yarar bu seçici. Normal bir yatay menü örneğini ele alalım. Yanyana dizelim ve araya ayraç koyalım.</p>
<p><img src="https://lh4.googleusercontent.com/xT4YjtxJM9wckC5nB68tYXZKVtNX2e72lsYCXcgivCGpxRCWZBKEzGIKQB4eb8S6isRl-3ZNo7_V1B__nrqbHMXASIwqQusVGqvAGcOuyfe3bstNIsY" alt="" width="379px;" height="44px;" /></p>
<p>Sondaki kenar çizgisi fazlalığı kaldırmak için </p>
<pre class="brush: css; title: ; notranslate">
  ul li:last-child a{
      border-right:none;
  }
</pre>
<p>kodu işimizi görecektir. Ayrıca ilk menü elemanı sol köşeleri ve son menü elemanının sağ köşeleri ovalleştirmek için;
</p>
<pre class="brush: css; title: ; notranslate">
ul li:last-child a{
    border-right:none;
    border-radius:0 15px 15px 0;
}

ul li:first-child a{
    border-radius:15px 0 0 15px;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/GUKPu/embedded/result,css,html"></iframe></p>
<p>Önceden bu işleri yapmak için javascript kullanmak zorunda idik. Şimdi CSS3 ile hepsini halledebiliyoruz. Süper değil mi?</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:first-of-type sözde sınıfı </strong></p>
<p>:first-of-type sözde seçicisi aynı seviyedeki ilk aynı tipteki elemanı seçmek için kullanılır. :nth-of-type(1) aynı işi görür. </p>
<pre class="brush: css; title: ; notranslate">
  p:first-of-type { background:#ff0; }
</pre>
<p>Aynı seviyedeki ilk paragrafı seçmek için kullanılır.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:last-of-type sözde sınıfı </strong></p>
<p>:last-of-type sözde seçicisi aynı seviyedeki en son aynı tipteki elemanı seçmek için kullanılır.  :nth-last-of-type(1) ile aynı işi görür. </p>
<pre class="brush: css; title: ; notranslate">
  p:last-of-type { background:#ff0; }
</pre>
<p>Aynı seviyedeki paragrafların en sonuncusunu yakalar.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:only-child sözde sınıfı</strong></p>
<p>:only-child sözde seçicisi sadece alt elemanlarını(çocuk) seçmek için kullanılır. Tam karşılığı olmasada :first-child:last-child veya :nth-child(1):nth-last-child(1) aynı işi yapar.</p>
<pre class="brush: css; title: ; notranslate">
  p:only-child { background:#ff0; }
</pre>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:only-of-type sözde sınıfı</strong></p>
<p>:only-of-type sözde seçicisi aynı seviyedeki aynı tipteki elemanları seçmek için kullanılır. Tam karşılığı olmasada :first-of-type:last-of-type veya :nth-of-type(1):nth-last-of-type(1) aynı işi yapar.</p>
<pre class="brush: css; title: ; notranslate">
  ul.deneme &gt; li &gt; a:only-of-type { background:#ff0; }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/cEdgX/embedded/result,css,html"></iframe></p>
<p>Aynı seviyedeki bağlantılara sarı ardalan rengi tanımlayacaktır.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
İnternet Explorer 9+</div>
<p><strong>:root Sözde Sınıfı </strong></p>
<p>:root sözde sınıfı dokümanın kökünü temsil eder. HTML elemanlarda htlm{} ile aynı etkiyi yapar. buradaki asıl amaç xml ve diğer doküman tipleri için köke inebilmektir. </p>
<pre class="brush: css; title: ; notranslate">
  :root { background:#ff0; }
</pre>
<p>HTML dokümanlarında ise html elemanını ezmek içinde kullanılabilir. </p>
<pre class="brush: css; title: ; notranslate">
html{ background-color: #fff; }
html:root { background-color: #000; }
</pre>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 9.5+<br />
İnternet Explorer 9+</div>
<p><strong>:empty sözde sınıfı </strong></p>
<p>:empty sözde seçicisi alt elemanı(çocuk) olmayan elemanları yakalamak için kullanılır. Metinlerde buna dahildir.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul class=&quot;deneme&quot;&gt;
    &lt;li&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;&quot;&gt;deneme&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;&quot;&gt;deneme&lt;/a&gt;
       &lt;ul&gt;
           &lt;li&gt;&lt;a href=&quot;&quot;&gt;deneme&lt;/a&gt;&lt;/li&gt;
           &lt;li&gt;&lt;a href=&quot;&quot;&gt;deneme&lt;/a&gt;&lt;/li&gt;
       &lt;/ul&gt;
   &lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>CSS kodu </p>
<pre class="brush: css; title: ; notranslate">
  ul.deneme &gt; li:empty { background:#ff0; }
</pre>
<p>Yukarıdaki örnekte sadece ilk liste elemanı seçilecektir.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
  İnternet Explorer 9+</div>
<h3 dir="ltr">Olumsuz(:not) Sözde Sınıfı</h3>
<p>Olumsuzluk belirtmek için kullanılan sözde sınıftır. :not(seçici) şeklinde kullanılır. Jquery&rsquo;den alışık olduğumuz bir seçicidir.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;h1&gt;Deneme&lt;/h1&gt;
&lt;h2&gt;Alt Başlık&lt;/h2&gt;
&lt;p&gt;İçerik...&lt;/p&gt;
&lt;p&gt;İçerik...&lt;/p&gt;
&lt;p&gt;İçerik...&lt;/p&gt;
&lt;blockquote&gt;Dipnot&lt;/blockquote&gt;
</pre>
<p>CSS kodu</p>
<pre class="brush: css; title: ; notranslate">
  body :not(blockquote){ border:1px solid #ccc;}
</pre>
<p>kodu body içindeki tüm elemanlara kenar çizgisi ata, dipnot(blockquote) hariç şeklinde uygulanacaktır.</p>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/W6d4u/embedded/result,css,html"></iframe></p>
<p>Çok kullanışlı bir seçicidir. </p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
  İnternet Explorer 9+</div>
<h3 dir="ltr">::selection Sözde Elementi</h3>
<p><a href="http://www.fatihhayrioglu.com/css-ile-secilen-metinlerin-rengini-degistirmek/">Daha önce görselliği dikkatimi</a> çeken bu özelliği şimdi seçici bazlı bakacağız. Seçili alan seçicisi olarak tanımlayabileceğimiz bu özellik seçilen alana css tanımları atamamızı sağlamaktadır. </p>
<pre class="brush: css; title: ; notranslate">
::-moz-selection {
   background:#c00;
   color:#fff;
}
::selection {
   background:#c00;
   color:#fff;
}
</pre>
<p>Ataması ile sitenin tümünde bir seçili alanları için bir tanımlama yapabiliriz. </p>
<p>::selection sözde elementine; color, background, cursor ve outline özellikleri tanımlanabiliyor. </p>
<p>Firefox için -moz ön eki kullanılması gerekiyor.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Destekleme Listesi </strong><br />
  Firefox 3.5+ (-moz ön eki ile)<br />
  Chrome 4+<br />
  Safari 4+<br />
  Opera 10.10+<br />
  İnternet Explorer 9+</div>
<h3 dir="ltr">Kaynaklar</h3>
<ul>
<li><a href="http://www.w3.org/TR/css3-selectors/">http://www.w3.org/TR/css3-selectors/</a></li>
<li><a href="http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/">http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/</a> (Detaylı)</li>
<li><a href="http://www.adobe.com/devnet/dreamweaver/articles/css-selectors-pt2.html">http://www.adobe.com/devnet/dreamweaver/articles/css-selectors-pt2.html</a> (detaylı örnekli)</li>
<li><a href="http://coding.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/">http://coding.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/</a></li>
<li><a href="http://tools.css3.info/selectors-test/test.html">http://tools.css3.info/selectors-test/test.html</a> (test aracı)</li>
<li><a href="http://24ways.org/2009/cleaner-code-with-css3-selectors">http://24ways.org/2009/cleaner-code-with-css3-selectors</a> (örmeklerle açıklanmış)</li>
<li><a href="http://ie.microsoft.com/testdrive/HTML5/CSS3Selectors/Default.html">http://ie.microsoft.com/testdrive/HTML5/CSS3Selectors/Default.html</a></li>
<li><a href="http://www.w3schools.com/cssref/css_selectors.asp">http://www.w3schools.com/cssref/css_selectors.asp</a> (seçici listesi)</li>
<li><a href="http://www.quirksmode.org/blog/archives/2010/06/ies_big_leap_fo.html">http://www.quirksmode.org/blog/archives/2010/06/ies_big_leap_fo.html</a></li>
<li><a href="http://www.quirksmode.org/css/contents.html">http://www.quirksmode.org/css/contents.html</a> (tarayıcı destek listesi)</li>
<li><a href="http://selectivizr.com/">http://selectivizr.com/</a> (ie için çözüm)</li>
<li><a href="http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/">http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/</a></li>
<li><a href="http://inspectelement.com/tutorials/a-look-at-some-of-the-new-selectors-introduced-in-css3/">http://inspectelement.com/tutorials/a-look-at-some-of-the-new-selectors-introduced-in-css3/</a></li>
<li><a href="http://caniuse.com/css-sel3">http://caniuse.com/css-sel3</a> (tarayıcı destek listesi)</li>
<li><a href="http://www.yourinspirationweb.com/en/why-you-should-know-the-new-css3-selectors/">http://www.yourinspirationweb.com/en/why-you-should-know-the-new-css3-selectors/</a></li>
<li><a href="http://kilianvalkhof.com/2008/css-xhtml/the-css3-not-selector/">http://kilianvalkhof.com/2008/css-xhtml/the-css3-not-selector/</a> (:not seçicisi)</li>
<li><a href="http://dtsn.co.uk/2009/12/15/css3-selectors-last-child/">http://dtsn.co.uk/2009/12/15/css3-selectors-last-child/</a> (:last-child seçicisi)</li>
<li><a href="http://perishablepress.com/awesome-new-css3-selectors/">http://perishablepress.com/awesome-new-css3-selectors/</a> (ilginç)</li>
<li><a href="http://developer.practicalecommerce.com/articles/2386-Taking-CSS3-Selectors-to-the-Nth">http://developer.practicalecommerce.com/articles/2386-Taking-CSS3-Selectors-to-the-Nth</a> (nth seçicisi)</li>
<li><a href="https://developer.mozilla.org/en/firefox_3.5_for_developers">https://developer.mozilla.org/en/firefox_3.5_for_developers</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/%3Achecked">https://developer.mozilla.org/en/CSS/%3Achecked</a> (:checked seçicisi)</li>
<li><a href="https://developer.mozilla.org/en/CSS/:nth-child">https://developer.mozilla.org/en/CSS/:nth-child</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/:empty">https://developer.mozilla.org/en/CSS/:empty</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/%3Adisabled">https://developer.mozilla.org/en/CSS/%3Adisabled</a></li>
<li>No.Starch.The.Book.of.CSS3.Apr.2011 </li>
<li><a href="http://blogs.msdn.com/b/ie/archive/2010/05/13/the-css-corner-css3-selectors.aspx">http://blogs.msdn.com/b/ie/archive/2010/05/13/the-css-corner-css3-selectors.aspx</a></li>
<li><a href="http://eriwen.com/css/css-indirect-adjacent-combinator/">http://eriwen.com/css/css-indirect-adjacent-combinator/</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/aa358824%28v=vs.85%29.aspx">http://msdn.microsoft.com/en-us/library/aa358824%28v=vs.85%29.aspx</a></li>
<li><a href="http://www.quirksmode.org/css/enabled.html">http://www.quirksmode.org/css/enabled.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-secicileri/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CSS 3 medya sorguları</title>
		<link>http://www.fatihhayrioglu.com/css-3-medya-sorgulari/</link>
		<comments>http://www.fatihhayrioglu.com/css-3-medya-sorgulari/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 12:07:42 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[genişlik]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[medya sorguları]]></category>
		<category><![CDATA[mobil araçlar]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2265</guid>
		<description><![CDATA[Mobil sektörün hızla ilerlemesi ve akıllı araçlar pazarının büyümesi ile insanlar mobil araçlar için ayrı web siteleri yapmaya başladı ve bu şekilde devam ediyor. Web sitesi olan bir şirketin mobil için ayrı bir site yapması gerek iş ve gerekse düzenleme açısından sorunları olan bir sistem.  Medya sorguları bu anlamda bir ihtiyaç için ortaya çıkmış bir [...]]]></description>
			<content:encoded><![CDATA[<p>Mobil sektörün hızla ilerlemesi ve akıllı araçlar pazarının büyümesi ile insanlar mobil araçlar için ayrı web siteleri yapmaya başladı ve bu şekilde devam ediyor. Web sitesi olan bir şirketin mobil için ayrı bir site yapması gerek iş ve gerekse düzenleme açısından sorunları olan bir sistem.  Medya sorguları bu anlamda bir ihtiyaç için ortaya çıkmış bir özelliktir. </p>
<p>Herkesin istediği bir özellik olarak her çözünürlükte ve araçta uygun web siteleri üretmektir. Bunun için medya sorguları bize yardım sağlar.</p>
<p>Daha önce medya sorgularını <a href="http://www.fatihhayrioglu.com/cssde-cikti-alma-print/">yazıcıdan çıktı alırken</a> web sitelerimizin çıktı almaya müsait hale getirmek için kullanmıştık. CSS3 ile birlikte medya sorgularında kullanabileceğimiz medya özellikleri eklendi. </p>
<p>Yeni nesil medya sorgularını Firefox, Webkit, Opera ve İnternet Explorer9’dan itibaren desteklemektedir. İnternet Explorer’un eski sürümler için javascript ile çözüm üretilir.</p>
<p><a href="http://www.fatihhayrioglu.com/cssi-web-sayfalarina-eklemek/">Daha önceki makalemde</a> bahsettiğim gibi medya sorgularının en basit hali</p>
<pre class="brush: css; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; media=&quot;screen&quot; href=&quot;ornek.css&quot;&gt;
</pre>
<p>veya</p>
<pre class="brush: css; title: ; notranslate">
@media ornek.css screen;
</pre>
<p>şeklindedir.</p>
<p>Medya sorguları bir veya daha fazla tipe göre sorgulama yapar ve sorgunun doğruluğuna göre o css dosyasını uygular.</p>
<p><img src="https://lh5.googleusercontent.com/9yAALxAE9OnXDazyBZKrx8y8o4r5okr3Qw8TJ6av63m5eB_I6Ap-nCYuglYAcrwBuqpgrCx5vaBTcMLjBiPZM-KdAohf98yMjgErENZ_3A75y8x8" alt="" width="500px;" height="133px;"></p>
<h3>Medya Tipleri</h3>
<table>
<colgroup>
<col width="132">
<col width="492">
</colgroup>
<tbody>
<tr>
<td>screen</td>
<td>Bilgisayarda görüntüleme</td>
</tr>
<tr>
<td>tty</td>
<td>Bilgisayar terminalleri ve eski taşınabilir araçlar ile görüntüleme</td>
</tr>
<tr>
<td>tv</td>
<td>Televizyonda görüntüleme</td>
</tr>
<tr>
<td>projection</td>
<td>Projeksiyonda görüntüleme</td>
</tr>
<tr>
<td>handheld</td>
<td>Taşınabilir telefonlar ve PDA’ler</td>
</tr>
<tr>
<td>print</td>
<td>Yazıcı çıktılarında görüntüleme</td>
</tr>
<tr>
<td>braille</td>
<td>Braille dokunsal okuyucularda</td>
</tr>
<tr>
<td>all</td>
<td>Tüm araçlarda görüntüleme</td>
</tr>
<tr>
<td>embossed </td>
<td>Braille yazıcı çıktıları için</td>
</tr>
<tr>
<td>aural </td>
<td>Ses sentez birimlerinde kullanılır</td>
</tr>
</tbody>
</table>
<h3 dir="ltr">Mantıksal Operatörler</h3>
<p>Medya sorgularımızda not, and ve only mantıksal operatörlerini kullanabiliriz. </p>
<p><strong>and</strong><br />
İki veya daha fazla medya özelliğini birbirine bağlar. Sorgudaki tüm medya özelliklerinin doğru olması durumunda css dokümanın uygulanmasını sağlar. Örneğin (color) and (orientation: landscape) and (min-device-width: 800px) tanımı; Görüntüleyen aracın renkli, yatayda ve en az 800px genişliğinde ise css dokümanı uygulanır.</p>
<pre class="brush: css; title: ; notranslate">
@media (min-width:450px) and (max-width:950px)
</pre>
<p>Bu durumda ise; genişliği en az 450px ve en fazla 950px olan araçlarda uygulanır. </p>
<p><strong>not</strong><br />
Sorguya negatif ifade katar. Sonuç eğer doğru ise css dosyası uygulanmaz.</p>
<pre class="brush: css; title: ; notranslate">
@media not screen and (color)
</pre>
<p>Bilgisayar ve renkli ekran olmayan durumlarda uygulanır.</p>
<p><strong>only </strong><br />
Sadece bu şartlar geçerli olduğunda uygula anlamınadır.</p>
<pre class="brush: css; title: ; notranslate">
@media only screen and  (color) {
    body {background:blue}
}
</pre>
<p>Sadece bilgisayar ve renkli ekranlar olduğunda css dokümanı uygulanır.</p>
<p>Yukarıdaki operatörlerde dikkat etti iseniz şöyle bir kural var. İlk parametre medya tipini gösteriyor sonra operatör ve ikinci parametre medya özelliği tanımlanıyor. Medya özellikleri parantez içinde tanımlanıyor.</p>
<pre class="brush: css; title: ; notranslate">
@media screen and (ozellik:deger) { }
</pre>
<p><strong>Birden fazla sorgu </strong></p>
<p>Birden fazla medya tipi için virgül ile birden fazla sorgu yapabiliyoruz.</p>
<pre class="brush: css; title: ; notranslate">
@import url(print-color.css) print and (color), projection and (color);
</pre>
<p>Sorgulardan biri geçerli ise print-color.css dokümanı uygulanır. Renkli yazıcı veya renkli projektörden birisi ile açılırsa print-color.css uygulanır. </p>
<h3>Medya Özellikleri</h3>
<p>Medya özellikleri web sitesini gösteren aracın bilgileri ile sorgu yapmamızı sağlayan özelliklerdir; boyutları, araç boyutları, çözünürlüğü ve daha fazlası. Bu özellikler sorgu ifadesi olarak kullanılır, eğer bu sorgu doğru ise, yani araç bu özelliğe sahip ise css dosyası gösterilir, değilse gösterilmez. Örneğin 480px genişlikteki ekranlar için bir tanım yapmış olalım, sonuçta 480px genişliğe sahip araçlarda görüntülenecektir. </p>
<p>Yukarıdaki örneklerde görüldüğü gibi medya sorgularında medya özellikleri parantez için tanımlanmaktadır. Genel kullanım;</p>
<pre class="brush: css; title: ; notranslate">
@media media and (ozellik:deger) { }
</pre>
<p>Genelde kullanılan medya özelliklerini inceleyelim.</p>
<p><strong>width, height, max-width, min-width, max-height ve min-height</strong></p>
<p>Genişlik(width) değeri web sitesinin görüntüleyen aracın genişliğine göre tanım yapmamızı sağlar. Buradaki genişlik tarayıcının(kaydırma çubukları dahil) genişliğine eşittir. </p>
<pre class="brush: css; title: ; notranslate">
@media screen and (width:480px) { }
</pre>
<p>Yukarıdaki tanım 480px genişlikte görüntülemede uygulanacaktır. </p>
<p>Genişlik tanımının ayrıca iki adet önekli kullanımlarıda mevcuttur. max- ve min- ön ekleri ile sabit bir değeri değilde belli bir değer aralığını kontrol edebilme imkanına sahibiz.</p>
<pre class="brush: css; title: ; notranslate">
@media screen and (max-width:480px) { }
</pre>
<p>
<iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/77SMV/embedded/css,result"></iframe>
</p>
<p>ve</p>
<pre class="brush: css; title: ; notranslate">
@media screen and (min-width:680px) { }
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/bhLFF/embedded/css,result"></iframe></p>
<p>İlk örnekte genişliği en fazla 480px olana kadar uygulanır, ikinci örnekte ise genişliği en az 680px olan tarayıcı genişliklerinde uygulanır. Bilgisayarımızda tarayıcı genişliği ile oynayarak bu örnekleri test edebiliriz.</p>
<p>Yükseklik değerleride(max-height ve min-height) benzer şekilde çalışır.</p>
<p><strong>device-width, max-device-width, min-device-width, device-height, max-device-height ve min-device-height</strong></p>
<p>Aygıt genişliği yukarıdaki genişlik gibi çalışır, ancak farklı olarak bu genişlik aygıtın genişliğini tanımlar. Genişlik değerinde olduğu gibi aygıt genişliği tanımlarındada max- ve min- ön ekleri vardır. Kullanımı benzerdir</p>
<pre class="brush: css; title: ; notranslate">
@media media and (device-width:1024px) { }
@media media and (max-device-width:320px) { }
@media media and (min-device-width:800px) { }
</pre>
<p>Mobil araçlar için web sitesi geliştirirken bize çok yardımı dokunur bu özelliğin mesela iPhone için web sitemizi uyarlamak istediğimizde işimize yarar.</p>
<pre class="brush: css; title: ; notranslate">
/* iphone */
@media screen and (max-device-width: 480px) {
	body {
		background: #f00;
	}
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/Z8BnJ/embedded/css,result"></iframe></p>
<p>şeklinde iphone kullanıcılarını yakalayabiliriz. Bilgisayarımızda tarayıcı genişliği ile bu sonuca erişemeyiz. Örneği görmek için iphone simülatör veya gerçek iphone’da bu örneği test etmelisiniz.</p>
<p>Benzer şekilde device-height, max-device-height ve min-device-height özellikleride kullanılabilir. </p>
<p><strong>orientation </strong></p>
<p>Uyarlayacağımız aracın yatay veya dikey olması durumuna göre davranış sergileme imkanı veren medya özelliğidir. </p>
<p>Tablet bilgisayarlar için genelde tercih edilir. iPad için site geliştirirken dikkate almalıyız. </p>
<pre class="brush: css; title: ; notranslate">
@media screen and (orientation: portrait) { }
</pre>
<p>İki değer almaktadır; landscape veya portrait. landscape değeri tarayıcınızın genişliği yüksekliğinden büyük ise uygulanır, portrait değeride tam tersi durumlarda.</p>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/QEwTP/embedded/css,result"></iframe></p>
<p>Tarayıcınızın genişliği ile oynayarak sonucu görebilirsiniz. iPad’de daha çok yatay kullanımda daha geniş yer varken site tam gösterilirken dikey kullanımda gizlenmesi gibi durumlarda kullanılabilir. Hatta menü yatayda açık dikeyde bir butona tıklayınca açılır şekilde kodlanabilir.</p>
<p><strong>aspect-ratio, min-aspect-ratio, max-aspect-ratio, device-aspect-ratio, min-device-aspect-ratio ve max-device-aspect-ratio</strong></p>
<p>Belirli bir genişlik yükseklik oranı ile sorgu oluşturmamızı sağlar. Boyut tanımlarında olduğu gibi tarayıcı oranı ve araç oranı diye farklı kullanımları vardır. Benzer şekilde max- ve min- önekleri ile kullanımıda mevcuttur. </p>
<p>16:9 sinematik ekran oranı için bir sorgu oluşturulabilir. Üreticileri ürettiği farklı oranlar(16:10, 15:10 vb.) için sorgular oluşturulup bu araçlar için web sitesi yapmak daha kolay hale getirilebilir.</p>
<pre class="brush: css; title: ; notranslate">
@media tv and (aspect-ratio:16/9) { }
@media tv and (device-aspect-ratio:16/9) { }
</pre>
<p><strong>pixel-ratio </strong></p>
<p>Piksel oranı üzerinden sorgular üretmemizi sağlayan medya özelliğidir. Masaüstü tarayıcılarda pek kullanılmasa da mobil araçlarda sıkça kullanılan büyütme işleminde resimlerde sorunlara neden olmaktadır. Bu sorunu çözmek için resimlerimizin iki farklı halini oluşturup yakınlaştırma yapıldığında daha yüksek piksel oranlarına sahip araçlarda daha büyüğünü göstererek resmin bozulma sorununu ortadan kaldırabiliriz.</p>
<p>Farklı tarayıcılarda farklı önek ile uygulanmaktadır. webkit için -webkit-device-pixel, max-webkit-device-pixel, min-webkit-device-pixel </p>
<p>Firefox için -moz-device-pixel-ratio, min&#8211;moz-device-pixel-ratio, max&#8211;moz-device-pixel-ratio şeklinde uygulanır.</p>
<pre class="brush: css; title: ; notranslate">
div { background-image: url('image-dusuk.png'); }
	@media screen and (-webkit-min-device-pixel-ratio: 2) {
	background-image: url('image-yuksek.png');
	background-size: 100% 100%;
}
</pre>
<p>Şeklinde uygulanır. iPhone4 ile ön plana çıkan bu özellik yardımı ile iPhone4 ayrımıda yapılabilir.</p>
<pre class="brush: css; title: ; notranslate">
/* iphone 4 */&lt;/li&gt;
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	background-image:url(yuksek_cozunurluklu_resim.png);
}
</pre>
<p>Bu medya özelliklerinin dışında color, min-color, max-color, color-index, min-color-index, max-color-index, monochrome, min-monochrome, max-monochrome, resolution, min-resolution, max-resolution, scan, grid medya özellikleride vardır. Ayrıca Firefox mobile için tanımladığı kendine ait medya özellikleride bulunmaktadır. Bu medya özellikleri hakkındaki detaylı bilgiye <a href="https://developer.mozilla.org/en/CSS/media_queries">https://developer.mozilla.org/en/CSS/media_queries</a> sitesinden erişebilirsiniz.</p>
<div class="tarayiciuyum"><strong>Tarayıcı Desteği </strong><br />
Google Chrome 5+<br />
Safari 3.2(kısmen) 4(tam)+<br />
Firefox3.6+<br />
Opera 10.6+<br />
İnternet Explorer 9+<br />
<strong>Mobil Tarayıcılar</strong><br />
Android 2.1+<br />
Firefox mobile +<br />
Opera Mini 5+<br />
iOS 3.2+</div>
<p>Bu tabloya bakarak ie’nin önceki sürümleri için çözüm üretmeliyiz. Javascript yardımı ile yapılmış çeşitli yöntemler mevcut, ben jquery ile yapılan yöntemi çalıştırabildim açıkçası.</p>
<p><a href="http://protofunc.com/scripts/jquery/mediaqueries/">http://protofunc.com/scripts/jquery/mediaqueries/</a> </p>
<p>Bu sitedeki scripti sitenize eklediğinizde ie’nin eski sürümleri ile olan sorununuz çözlüyor.</p>
<pre class="brush: css; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ana.css&quot; media=&quot;only screen and (max-width: 480px)&quot; /&gt;
&lt;!--[if lt IE 9]&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;jquery.mediaqueries.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt;
</pre>
<p>IE9 öncesi tarayıcılar için böyle bir ekleme yaparak sorunu çözebiliriz. </p>
<p>Ayrıca sadece javascript ile ie’nin eski sürümleri için üretilen Javascript çözümlerini uyguladığımda çalışmadı bilemiyorum sorun bende mi ama olmadı.</p>
<h3 dir="ltr">Kaynaklar</h3>
<ul>
<li><a href="http://www.w3.org/TR/css3-mediaqueries/">http://www.w3.org/TR/css3-mediaqueries/</a></li>
<li><a href="http://www.css3.info/modules/compatibility-table-media-queries/">http://www.css3.info/modules/compatibility-table-media-queries/</a></li>
<li><a href="http://webdesignerwall.com/general/the-wall-is-redesigned">http://webdesignerwall.com/general/the-wall-is-redesigned</a> (örnek uygulama)</li>
<li><a href="http://blog.bloop.co/the-practicalities-of-css-media-queries-lesso">http://blog.bloop.co/the-practicalities-of-css-media-queries-lesso</a> (avantaj ve dezavantajları)</li>
<li><a href="http://www.broken-links.com/2011/02/21/using-media-queries-in-the-real-world/">http://www.broken-links.com/2011/02/21/using-media-queries-in-the-real-world/</a> (ie için çözüm önerili)</li>
<li><a href="http://mediaqueri.es/">http://mediaqueri.es/</a> (örnekler içeriyor)</li>
<li><a href="http://www.catswhocode.com/blog/create-an-adaptable-website-layout-with-css3-media-queries">http://www.catswhocode.com/blog/create-an-adaptable-website-layout-with-css3-media-queries</a></li>
<li><a href="http://webdesignerwall.com/tutorials/adaptive-mobile-design-with-css3-media-queries">http://webdesignerwall.com/tutorials/adaptive-mobile-design-with-css3-media-queries</a></li>
<li><a href="http://webdesignerwall.com/tutorials/css3-media-queries">http://webdesignerwall.com/tutorials/css3-media-queries</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/media_queries">https://developer.mozilla.org/en/CSS/media_queries</a></li>
<li><a href="http://coding.smashingmagazine.com/2010/07/19/how-to-use-css3-media-queries-to-create-a-mobile-version-of-your-website/">http://coding.smashingmagazine.com/2010/07/19/how-to-use-css3-media-queries-to-create-a-mobile-version-of-your-website/</a></li>
<li><a href="http://www.1stwebdesigner.com/css/how-to-use-css3-orientation-media-queries/">http://www.1stwebdesigner.com/css/how-to-use-css3-orientation-media-queries/</a></li>
<li><a href="http://ie.microsoft.com/testdrive/HTML5/CSS3MediaQueries/Default.html">http://ie.microsoft.com/testdrive/HTML5/CSS3MediaQueries/Default.html</a></li>
<li><a href="http://www.catswhocode.com/blog/create-an-adaptable-website-layout-with-css3-media-queries">http://www.catswhocode.com/blog/create-an-adaptable-website-layout-with-css3-media-queries</a></li>
<li><a href="http://www.alistapart.com/articles/responsive-web-design/">http://www.alistapart.com/articles/responsive-web-design/</a></li>
<li><a href="http://reference.sitepoint.com/css/mediaqueries">http://reference.sitepoint.com/css/mediaqueries</a></li>
<li><a href="http://www.tristarwebdesign.co.uk/blog/website-design/css3-media-queries-responsive-web-design/">http://www.tristarwebdesign.co.uk/blog/website-design/css3-media-queries-responsive-web-design/</a></li>
<li><a href="http://www.maxdesign.com.au/articles/css3-media-queries/">http://www.maxdesign.com.au/articles/css3-media-queries/</a> (slayt gösterisi)</li>
<li><a href="http://msdn.microsoft.com/en-us/scriptjunkie/gg619395.aspx">http://msdn.microsoft.com/en-us/scriptjunkie/gg619395.aspx</a></li>
<li><a href="http://coding.smashingmagazine.com/2011/08/10/techniques-for-gracefully-degrading-media-queries/">http://coding.smashingmagazine.com/2011/08/10/techniques-for-gracefully-degrading-media-queries/</a></li>
<li><a href="http://code.google.com/p/css3-mediaqueries-js/">http://code.google.com/p/css3-mediaqueries-js/</a> (ie eski sürümleri için js kodu)</li>
<li><a href="http://blog.iwalt.com/2010/06/targeting-the-iphone-4-retina-display-with-css3-media-queries.html">http://blog.iwalt.com/2010/06/targeting-the-iphone-4-retina-display-with-css3-media-queries.html</a> (iphone 4 için )</li>
<li><a href="http://aralbalkan.com/3331">http://aralbalkan.com/3331</a> (iphone 4 için)</li>
<li><a href="http://css-tricks.com/6731-css-media-queries/">http://css-tricks.com/6731-css-media-queries/</a></li>
<li><a href="http://colly.com/">http://colly.com/</a> (örnek site)</li>
<li><a href="http://www.opera.com/docs/specs/presto27/css/mediaqueries/">http://www.opera.com/docs/specs/presto27/css/mediaqueries/</a> (Opera desteği)</li>
<li><a href="http://www.cloudfour.com/ipad-css/">http://www.cloudfour.com/ipad-css/</a></li>
<li><a href="http://www.webkit.org/blog/55/high-dpi-web-sites/">http://www.webkit.org/blog/55/high-dpi-web-sites/</a></li>
<li><a href="http://nostarch.com/css3.htm">No Starch The Book of CSS3</a></li>
<li><a href="http://richardshepherd.com/css-media-queries-jquery/">http://richardshepherd.com/css-media-queries-jquery/</a></li>
<li><a href="http://css.dzone.com/news/bulletproof-css3-media-queries">http://css.dzone.com/news/bulletproof-css3-media-queries</a></li>
<li><a href="http://tests.zerointerface.nl/css3-mediaqueries/">http://tests.zerointerface.nl/css3-mediaqueries/</a> (test sitesi)</li>
<li><a href="http://www.sercaneraslan.com/css/index.php?page=medya_tipleri">http://www.sercaneraslan.com/css/index.php?page=medya_tipleri</a></li>
<li><a href="http://coding.smashingmagazine.com/2010/07/19/how-to-use-css3-media-queries-to-create-a-mobile-version-of-your-website/">http://coding.smashingmagazine.com/2010/07/19/how-to-use-css3-media-queries-to-create-a-mobile-version-of-your-website/</a></li>
<li><a href="http://www.quirksmode.org/blog/archives/2010/08/combining_media.html">http://www.quirksmode.org/blog/archives/2010/08/combining_media.html</a></li>
<li><a href="http://blogs.msdn.com/b/ie/archive/2011/01/12/the-css-corner-css3-media-queries.aspx">http://blogs.msdn.com/b/ie/archive/2011/01/12/the-css-corner-css3-media-queries.aspx</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css-3-medya-sorgulari/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 resize özelliği</title>
		<link>http://www.fatihhayrioglu.com/css3-resize-ozelligi/</link>
		<comments>http://www.fatihhayrioglu.com/css3-resize-ozelligi/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 11:18:22 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[boyut değiştirme]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[resize]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=2236</guid>
		<description><![CDATA[resize özelliği kullanıcıya elementin boyutlarını ayarlama imkanı vermemizi sağlar. Kullanıcı bu elemanın boyutunu istediği gibi değiştirme imkanına kavuşur Yapısı: resize: &#60;deger&#62; Aldığı Değerler: both &#124; horizontal &#124; vertical &#124; none &#124; inherit Başlangıç Değeri: none Uygulanabilen Elementler: block-level ve replaced elementler, tablo hücreleri ve inline block elementler Kalıtsallık: yok both: Her iki yöne boyutlandırmaya izin [...]]]></description>
			<content:encoded><![CDATA[<p>resize özelliği kullanıcıya elementin boyutlarını ayarlama imkanı vermemizi sağlar. Kullanıcı bu elemanın boyutunu istediği gibi değiştirme imkanına kavuşur
  </p>
<div class="cssozelliktanimi">
    <strong>Yapısı:</strong> resize: &lt;deger&gt;<br />
    <strong>Aldığı Değerler:</strong> both | horizontal | vertical | none | inherit<br />
    <strong>Başlangıç Değeri:</strong> none<br />
    <strong>Uygulanabilen Elementler:</strong> block-level ve replaced elementler, tablo hücreleri ve inline block elementler<br />
    <strong>Kalıtsallık: </strong> yok 
</div>
<p><strong>both:</strong> Her iki yöne boyutlandırmaya izin verir.<br />
    <strong>horizontal:</strong> yatayda boyutlandırmaya izin verir.<br />
    <strong>vertical:</strong> dikeyde boyutlandırmaya izin verir.<br />
    <strong>none:</strong> boyutlandırma seçeneğini kaldırır<br />
    <strong>inherit:</strong> kalıtsal olarak bu değeri üst elementten alır.
  </p>
<pre class="brush: css; title: ; notranslate">
div{
overfloaw:auto; /* bu tanim gerekli */
resize:both;
}
</pre>
<p>overflow değeri scroll, auto veya hidden değerlerinde etki ederken overflow: visible tanımında ise etki yapmaz. </p>
<p>Bu özellik Chrome ve Safaride textarea alanları için otomatik gelmektedir. Tarayıcı bu eleman için bu değeri otomatik uygulamaktadır. Daha önce ipucu olarak <a href="http://www.fatihhayrioglu.com/css-ipucu-27-chrome-ve-safaride-textarea-genisletme-islevini-kaldirma/">yazdığım gibi</a> bu otomatik tanımı css ile kaldırabiliyoruz.</p>
<p>Bir örnek yapalım</p>
<pre class="brush: css; title: ; notranslate">
.icerik{
    box-shadow: rgb(136, 136, 136) 5px 5px 5px;
    border-radius: 5px;
    resize: both;
    overflow: auto;
    border: 1px solid #dedede;
    padding:10px;
    width: 300px;
    height: 200px;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/aDnP6/3/embedded/result,css,html"></iframe></p>
<p>Sadece bir yöne boyutlandırabiliyoruz</p>
<pre class="brush: css; title: ; notranslate">
.siir{
    width: 170px;
    height: 200px;
    resize: vertical;
    overflow: hidden;
    position: relative;
    padding: 0 25px;
    border: 1px solid #DDD;
    font-family: georgia, serif;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/k2wHc/2/embedded/result,css,html"></iframe></p>
<p>min-height ve min-width değerleri ile boyutlandırmanın minimum değerlerini belirleyebiliyoruz. Anı şekilde max-height ve max-width değerleri ile de maksimum değerleri belirlenebilir. Bu özelliklerle kullanıcının sayfa görünümünü bozmasını engelleyebiliriz.
  </p>
<pre class="brush: css; title: ; notranslate">
.siir{
    width: 170px;
    height: 200px;
    resize: vertical;
    overflow: hidden;
    position: relative;
    padding: 0 25px;
    border: 1px solid #DDD;
    font-family: georgia, serif;
    max-height: 650px;
    min-height: 200px;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/yLZDQ/embedded/result,css,html"></iframe></p>
<p>Resimler için güzel bir uygulama olabilir.</p>
<pre class="brush: css; title: ; notranslate">
.vasak{
	width: 200px;
	margin: 0 10px;
	height: 150px;
	resize: both;
	overflow: hidden;
	position: relative;
	padding: 15px;
	border: 1px solid #DDD;
}

.vasak img{
	width:100%;
	height:auto;
}
</pre>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/fatihhayri/Xk3Gr/1/embedded/result,css,html"></iframe></p>
<div class="tarayiciuyum"><strong>Tarayıcı Desteği </strong><br />
    Google Chrome 5+<br />
    Safari 5+<br />
    Firefox4+<br />
    Opera desteklemiyor<br />
    İnternet Explorer desteklemiyor<br />
    <strong>Mobil Tarayıcılar</strong><br />
    Android desteklemiyor<br />
    Firefox mobile desteklemiyor<br />
    IE Phone desteklemiyor<br />
    Opera Mobile desteklemiyor<br />
  Safari Mobile desteklemiyor</div>
<p>resize özelliği W3C Basic User Interface Module ile önerilen bir özelliğidir. Tarayıcıların destekleme durumuna göre ileride standartlaşıp standartlaşmayacağı belirlenecek bir özellik olarak görünse de Firefox desteği standartlaşması daha olasıdır. </p>
<h3>Kaynaklar</h3>
<ul>
<li><a href="http://www.css3.info/preview/resize/">http://www.css3.info/preview/resize/</a></li>
<li><a href="http://www.impressivewebs.com/css3-resize/">http://www.impressivewebs.com/css3-resize/</a> (detaylı ve karşıt)</li>
<li><a href="http://www.w3schools.com/cssref/css3_pr_resize.asp">http://www.w3schools.com/cssref/css3_pr_resize.asp</a></li>
<li><a href="http://www.w3.org/TR/css3-ui/">http://www.w3.org/TR/css3-ui/</a></li>
<li><a href="http://www.cssplay.co.uk/menu/resize.html">http://www.cssplay.co.uk/menu/resize.html</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/resize">https://developer.mozilla.org/en/CSS/resize</a></li>
<li><a href="http://www.yousaytoo.com/the-css3-resize-property/784883">http://www.yousaytoo.com/the-css3-resize-property/784883</a></li>
<li><a href="http://robertnyman.com/css3/">http://robertnyman.com/css3/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/css3-resize-ozelligi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

