<?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; Kutu-Modeli</title>
	<atom:link href="http://www.fatihhayrioglu.com/tag/kutu-modeli/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fatihhayrioglu.com</link>
	<description>{ CSS, HTML ve Javascript }</description>
	<lastBuildDate>Mon, 09 Jan 2012 08:44:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=2012</generator>
		<item>
		<title>Süper bir özellik display:inline-block</title>
		<link>http://www.fatihhayrioglu.com/super-bir-ozellik-displayinline-block/</link>
		<comments>http://www.fatihhayrioglu.com/super-bir-ozellik-displayinline-block/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 19:28:56 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[dikey-ortalama]]></category>
		<category><![CDATA[display:inline-block]]></category>
		<category><![CDATA[Kutu-Modeli]]></category>
		<category><![CDATA[kutular]]></category>
		<category><![CDATA[vertical-align]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=1600</guid>
		<description><![CDATA[Alışkanlıklar kolay kolay bırakılmıyor. Zamanında display:inline-block özelliğini Firefox desteklemediği(Firefox desteği 3. sürümden itibaren geldi) için kullanmıyordum. Hala orada kalmışım hiç kullanmıyorum bu özelliği, şimdi bir projede gerekti ve kullandım. Çok hoşuma gitti. Tekrar bir hatırlayalım display:inline-block özelliği hibrit bir özelliktir. Bir yanı satır içi davranırken bir yanı blok davranır. display:inline-block tanımı yapılmış elemanlar satır için [...]]]></description>
			<content:encoded><![CDATA[<p>Alışkanlıklar kolay kolay bırakılmıyor. Zamanında <strong>display:inline-block</strong> özelliğini Firefox desteklemediği(Firefox desteği 3. sürümden itibaren geldi) için kullanmıyordum. Hala orada kalmışım hiç kullanmıyorum bu özelliği, şimdi bir projede gerekti ve kullandım. Çok hoşuma gitti. Tekrar bir hatırlayalım <strong>display:inline-block</strong> özelliği hibrit bir özelliktir. Bir yanı satır içi davranırken bir yanı blok davranır.</p>
<p>display:inline-block tanımı yapılmış elemanlar satır için akış içinde satır içi eleman gibi davranırken, elemente genişlik, yükseklik ve dikey margin değerleri tanımlanırsa satır içinde blok-level özelliğine bürünür.</p>
<p><strong>display:inline-block</strong> elementler çevresindeki elementlere ve satır içi kutu içeriklerine göre farklı davranışlar gösterir.</p>
<p>Durumu daha iyi anlamak için genel bir örnek yapalım. 3 paraftan oluşan bir içeriğimiz olsun ve bu içerikteki belli bir kısmı paragraf etiketi içine alalım ve bunlara sırası ile <strong>display:block</strong>, <strong>display:inline</strong> ve <strong>display:inline-block</strong> tanımları atayalım</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;denemeBir&quot;&gt; Lorem ipsum dolor sit amet... &lt;p&gt;Praesent id nunc eros. Integer mauris orci, venenatis ac tempor ut, gravida ac diam. &lt;/p&gt; Pellentesque...&lt;/div&gt;
&lt;div id=&quot;denemeIki&quot;&gt;Quisque at venenatis nulla...&lt;p&gt;Nam fermentum porttitor hendrerit.&lt;/p&gt; Mauris ante nulla..&lt;/div&gt;
&lt;div id=&quot;denemeUc&quot;&gt; Sed urna neque...&lt;p&gt;Sed est lacus, laoreet at malesuada quis, convallis ut nibh.&lt;/p&gt; Sed dapibus...&lt;/div&gt;
</pre>
<p>CSS kodu</p>
<pre class="brush: css; title: ; notranslate">
div {margin: 10px 0; border: 1px solid #000;}
p {border: 1px dotted #000;}
    div#denemeBir p {display: block; width: 50px; text-align: center; background-color:#FF0}
    div#denemeIki p {display: inline; width: 50px; text-align: center; background-color:#0FF}
    div#denemeUc p {display: inline-block; width: 50px; text-align: center; background-color:#F0F}
</pre>
<p>Örneği görmek için <a href="http://www.fatihhayrioglu.com/dokumanlar/display_inline_block.html">tıklayınız.</a></p>
<p><a href="http://www.fatihhayrioglu.com/wp-content/display_inline_block.jpg"><img src="http://www.fatihhayrioglu.com/wp-content/display_inline_block.jpg" alt="" title="display_inline_block" width="462" height="670" class="alignnone size-full wp-image-1602" /></a></p>
<p>Aynı yapıdaki elemanların display özelliğine sırası ile block, inline ve inline-block tanımlarını atadık. </p>
<p><strong>display:block uygulanan paragraf</strong> kendisine atanan <strong>width, text-align:center</strong> özelliğini yorumlamış ve blok-level bir element olarak sonrasına bir boşluk bırakmıştır.</p>
<p><strong>display:inline tanımı yapılmış paragraf</strong> kendisine atanan <strong>width, text-align:center </strong>tanımlarını görmemiştir. </p>
<p><strong>display:inline-block uygulanmış paragraf </strong>ise kendisine uygulanan <strong>width ve text-align:center</strong> tanımlarını görmüş ama bir blok-level element gibi sonrasına bir boşluk bırakmamıştır. Tam bir hibrit özellik göstermiştir. </p>
<p><strong>display:inline-block </strong>tanımını daha iyi anlamak için nerelerde kullanırız neler yapabiliriz buna bakalım.</p>
<h3>Float kullanmadan display:inline-block ile elemanları yan yana dizmek</h3>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;menu&quot;&gt;
&lt;a href=&quot;&quot;&gt;Ana Sayfa&lt;/a&gt;
 &lt;a href=&quot;&quot;&gt;Ürünler&lt;/a&gt;
&lt;a href=&quot;&quot;&gt;İletişim&lt;/a&gt;
&lt;/div&gt;
</pre>
<p>CSS kodumuzu yazalım;</p>
<pre class="brush: css; title: ; notranslate">
#menu a{
  width:150px;
  height:50px;
  display: inline-block;
  margin:0;
  padding:5px;
  color: #1B1B1B;
  background-color: #E2E2E2;
  text-decoration: none;
  border-top:5px solid #999
}
</pre>
<p>Örneği görmek için <a href="http://www.fatihhayrioglu.com/dokumanlar/display_inline_block2.html">tıklayınız.</a></p>
<p><a href="http://www.fatihhayrioglu.com/wp-content/display_inline_block2.gif"><img src="http://www.fatihhayrioglu.com/wp-content/display_inline_block2.gif" alt="" title="display_inline_block2" width="450" height="266" class="alignnone size-full wp-image-1603" /></a></p>
<p>Bu kod ile biz öğeleri yan yana dizeriz. Normalde hiç bir tanım yapmasak da bu elemanlar yan yana dizilecekti, ancak bu elemanlar arasındaki mesafeyi ayarlıyamıyacaktık. Hem satır içi eleman gibi yan yana dursun hemde genişlik, yükseklik ve margin tanımlarını uygulayalım istersek display:inline-block tanımı yapmalıyız. </p>
<h3>Dikeyde ortalama</h3>
<p>Float uygulanmış elemanların dikeyde ortalamak çok zordur, aksine display:inline-block uyguladığımız elemanları sadece vertical-align özelliği kullanarak dikey ortalama yaparız. Dikeyde ortalama aynı seviyedeki elemanlar arasında olduğunu unutmamak lazım. </p>
<p>Bir örnek yapalım. Yan yana dizilmiş üç kutu hazırlayalım ve bunları kapsayıcı katmana göre dikey olarak üstte, ortada ve altta hizalayalım.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;anaKapsul&quot;&gt;
    &lt;div class=&quot;solKutu&quot;&gt;Sol&lt;/div&gt;
    &lt;div class=&quot;ortaKutu&quot;&gt;Orta&lt;/div&gt;
    &lt;div class=&quot;sagKutu&quot;&gt;Sağ&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>CSS kodumuzu yazalım.</p>
<pre class="brush: css; title: ; notranslate">
.anaKapsul { border: 1px gray solid; padding: 5px; text-align: center; }
    .solKutu { display: inline-block; background-color: lightblue; vertical-align: middle; width: 200px; height: 200px; }
    .ortaKutu { display: inline-block; background-color: yellow; vertical-align: middle; width: 200px; height: 150px; }
    .sagKutu { display: inline-block; background-color: gray; vertical-align: bottom; width: 200px; height: 100px; }
</pre>
<p>Örneği görmek için <a href="http://www.fatihhayrioglu.com/dokumanlar/display_inline_block3.html">tıklayınız.</a></p>
<p><a href="http://www.fatihhayrioglu.com/wp-content/display_inline_block3.gif"><img src="http://www.fatihhayrioglu.com/wp-content/display_inline_block3.gif" alt="" title="display_inline_block3" width="450" height="272" class="alignnone size-full wp-image-1604" /></a></p>
<p>Firefox, Safari, Google Chrome, Opera ve İE8&#8242;de bu görüntüyü elde ederiz. Ancak ie7 ve ie6&#8242;da durum böyle değildir. </p>
<p>Bu tarayıcılarda aynı sonucu elde etmek için bu tarayıcılar için bu elemnalara <strong>display:inline ve zoom:1</strong> tanımı yapmalıyız. Bunun için <a href="http://www.fatihhayrioglu.com/tum-tarayicilar-icin-css-duzeltmelerihack/">tüm tarayıcılar için düzeltmeler</a> kısmındaki kodlardan yararlanacağım.</p>
<pre class="brush: css; title: ; notranslate">
*:first-child+html div.anaKapsul div{display:inline; zoom: 1;}
* html div.anaKapsul div{display:inline; zoom: 1;}
</pre>
<p>Bu kodları ekledikten sonra sorunumuz düzeldi. </p>
<h3>Kaynaklar</h3>
<ul>
<li><a href="http://www.search-this.com/2008/08/28/lets-all-get-inline-in-a-block-in-a-block/">http://www.search-this.com/2008/08/28/lets-all-get-inline-in-a-block-in-a-block/</a></li>
<li><a href="http://foohack.com/2007/11/cross-browser-support-for-inline-block-styling/">http://foohack.com/2007/11/cross-browser-support-for-inline-block-styling/</a></li>
<li><a href="http://helephant.com/2009/08/a-great-big-welcome-to-inline-block/">http://helephant.com/2009/08/a-great-big-welcome-to-inline-block/</a></li>
<li><a href="http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/">http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/</a></li>
<li><a href="http://kempwire.com/browsers/firefox-2-does-not-support-inline-block.html">http://kempwire.com/browsers/firefox-2-does-not-support-inline-block.html</a></li>
<li><a href="http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/">http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/</a></li>
<li><a href="http://www.quirksmode.org/css/display.html#t03">http://www.quirksmode.org/css/display.html#t03</a></li>
<li><a href="http://blog.ternstyle.us/blog/float-vs-inline-block">http://blog.ternstyle.us/blog/float-vs-inline-block</a></li>
<li><a href="http://www.sitepoint.com/forums/showthread.php?t=596130">http://www.sitepoint.com/forums/showthread.php?t=596130</a> (sorun )</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/super-bir-ozellik-displayinline-block/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>PSD&#8217;den HTML&#8217;e – fanatikmarslar.com Sitesinin Kodlaması II</title>
		<link>http://www.fatihhayrioglu.com/psdden-htmle-%e2%80%93-fanatikmarslar-com-sitesinin-kodlamasi-ii/</link>
		<comments>http://www.fatihhayrioglu.com/psdden-htmle-%e2%80%93-fanatikmarslar-com-sitesinin-kodlamasi-ii/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 23:09:23 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standartları]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[adım adım kodlama]]></category>
		<category><![CDATA[css-kodlama-düzeni]]></category>
		<category><![CDATA[CSS-Layout]]></category>
		<category><![CDATA[farklı tarayıcılara göre kod yazmak]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[kapsayamama-sorunu]]></category>
		<category><![CDATA[Kutu-Modeli]]></category>
		<category><![CDATA[psdtohtml]]></category>
		<category><![CDATA[site-kodlama]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=1483</guid>
		<description><![CDATA[Ana Sayfa Kodlaması Bir önceki makalemde sizlere kodlamaya başlamadan önceki süreci anlattım. Şimdi sizlerle sitenin Ana Sayfasını nasıl kodladığımı anlatmaya çalışacağım. Bu makaleye yazacağımı düşünerek kodlama yaparken notlar tutmuştum, bu makale biraz da o notların derlemiş hali şeklinde olacaktır. I -Kodlama Öncesi Hazırlıklar II – Ana Sayfa Kodlaması (bu sayfa) III – Alt Sayfaların Kodlaması [...]]]></description>
			<content:encoded><![CDATA[<h3>Ana Sayfa Kodlaması </h3>
<p>Bir önceki makalemde sizlere kodlamaya başlamadan önceki süreci anlattım. Şimdi sizlerle sitenin Ana Sayfasını nasıl kodladığımı anlatmaya çalışacağım. Bu makaleye yazacağımı düşünerek kodlama yaparken notlar tutmuştum, bu makale biraz da o notların derlemiş hali şeklinde olacaktır. </p>
<ul>
<li><a href="http://www.fatihhayrioglu.com/fanatikmarslar-com-sitesinin-kodlamasi/"> I -Kodlama Öncesi Hazırlıklar</a></li>
<li> II – Ana Sayfa Kodlaması (bu sayfa)</li>
<li> III – Alt Sayfaların Kodlaması (yayına hazırlanıyor&#8230;)</li>
</ul>
<p><a href="http://www.fatihhayrioglu.com/wp-content/anasayfa_kuc.jpg"><img src="http://www.fatihhayrioglu.com/wp-content/anasayfa_kuc.jpg" alt="" title="anasayfa_kuc" width="450" height="701" class="aligncenter size-full wp-image-1487" /></a></p>
<p><span id="more-1483"></span></p>
<p>İlk olarak site ardalan resmini jpeg olarak kaydediyorum. jpeg seçmemin nedeni Adobe Phoshop&#8217;da &quot;Save for Web..&quot; ile kaydederken en küçük boyut ve en iyi görüntüyü vermesidir. Resimleri kaydederken eğer az renk varsa gif, çok fazla renk varsa jpeg kaydediyorum, son zamanlarda png&#8217;yi deniyorum ara sıra. Ardalan resmi biraz farklı bir yapıya sahip tekrarlayan kısmı biraz geniş olduğu için geniş kesmek durumunda kaldık. Ardalan resmini body&#8217;ye atıyorum. </p>
<p><a href="http://www.fatihhayrioglu.com/wp-content/ardalan.jpg"><img src="http://www.fatihhayrioglu.com/wp-content/ardalan-266x300.jpg" alt="" title="ardalan" width="266" height="300" class="aligncenter size-medium wp-image-1488" /></a></p>
<p>Sayfa ve site sabit bir genişlikte ve ortalı olduğu için ana bir kapsül(<strong>anaKapsul</strong>) için alıyorum. katmanı kapattığım yere bir not düşüyorum ki nerede bittiğini bilelim. </p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;FanatikMarşlar.Com&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
@import url(&quot;style/fanatikmarslar.css&quot;);
--&gt;
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
    &lt;div id=&quot;anaKapsul&quot;&gt;

    &lt;/div&gt;&lt;!--[if !IE]&gt;anaKapsul sonu&lt;![endif]--&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>İE6 ile bazı sorunları yaşamamak için yorum satırlarını biraz daha farklı kodluyorum. Detay için <a href="http://www.fatihhayrioglu.com/ie6un-tekrarlayan-karakter-sorunu/">IE6&#8242;un Tekrarlayan Karakter Sorunu</a> makalemi okumanızı tavsiye ediyorum. Zamanla alışkanlık haline gelen bu yorum kodunu Adobe Dreamweaver&#8217;da <strong>Snippets</strong>&#8216;e ekledim böylelikle daha kolay oluyor eklemesi. </p>
<p>Şimdi sayfayı ortalamak için css kodumuzu yazalım. Açalım fanatikmarslar.css dosyasını ve yazmaya başlayalım. </p>
<pre class="brush: css; title: ; notranslate">
/************************************************** genel tanimlar */
body{ background:url(../images/ardalan.jpg) 0 0 repeat;}
	#anaKapsul{width:990px; margin:20px auto; background:#fff url(../images/ust_ard.gif) 0 0 no-repeat;}
</pre>
<p>Ayrıca sayfa kenarları oval bunları ardalan resmi olarak anaKapsul ardalan resmi olarak tanımlayabiliriz.</p>
<p><a href="http://www.fatihhayrioglu.com/wp-content/ders_03.jpg"><img src="http://www.fatihhayrioglu.com/wp-content/ders_03-300x113.jpg" alt="" title="ders_03" width="300" height="113" class="aligncenter size-medium wp-image-1489" /></a></p>
<h3>Üst Alanın Kodlaması</h3>
<p>Eskizdeki gibi sayfayı belli bölümlere ayırarak kodluyorum. <strong>ustAlan</strong> tanımlamasını yaparken kendi genel standart isimlendirme sistemimi kullanıyorum. İsimlendirme yapılırken ilk harf küçük sonraki baş harfler ayrımı kolaylaştırmak için büyük ve bitişik yazılır. İsimlendirme ve kod yazma düzeni hakkında daha ayrıntılı bilgi için <a href="http://www.fatihhayrioglu.com/css-kod-yazma-duzeni/">CSS kod Yazma Düzeni</a> makalemi okuyunuz.</p>
<p><strong>Logo ve Banner alanı </strong></p>
<p>Logo ve yanındaki banner alanını kodlamaya başlarken bu iki alanı bir satır gibi düşünerek bir katman içine alıyorum. Bu katmana <strong>logoBannerAlani</strong> adını veriyorum. Her satırı böyle kapsayıcı bir katman içine almak bize bir çok yönü ile kolaylık sağlayacaktır. Logoyu sola yaslıyoruz ve üstten 14px yukarı çekiyoruz(logoyu yukarı çekerken eksi margin de kullanabiliriz ancak ie6 sorun yaşamayalım diye position ve top özellikleri yardımı ile yukarı çektik). Banner&#8217;ı logonun yanına koymak için float:left ve genişlik tanımı yapıyoruz ve logo ile arasındaki mesafeyi ve yukarıda mesafeyi ayarlamak için kenar dış boşluğu mesafelerini(margin) tanımlıyoruz.</p>
<p>HTML kodu </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;logoBannerAlani&quot; class=&quot;kapsayamamaSorunu&quot;&gt;
    &lt;div id=&quot;logo&quot;&gt;&lt;img src=&quot;images/logo.gif&quot; width=&quot;226&quot; height=&quot;126&quot; alt=&quot;Fanatikmarslar.com&quot; /&gt;&lt;/div&gt;
    &lt;div id=&quot;ustBanneralani&quot;&gt;&lt;img src=&quot;images/ust_banner.gif&quot; width=&quot;728&quot; height=&quot;90&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>CSS Kodu</p>
<pre class="brush: css; title: ; notranslate">
#logoBannerAlani{margin-bottom:10px;}
    #logo{float:left; width:226px; position:relative; top:-14px; left:6px;}
    #ustBanneralani{float:left; width:728px; margin:14px 0 0 16px}
</pre>
<p><strong>Menü ve Arama Alanı</strong> </p>
<p>Menü ve arama bölümünü kodlarken menü alanının genişleyebileceğini düşünerek. Arama alanına float:right tanımı menü alanına <strong>float:left</strong> tanımı yapıyoruz. Arama alanı genişliğini tanımlarken menü alanı genişliği değişebileceği için genişlik tanımlamıyoruz. Menü alanını listeler(ul) ile kodluyoruz(ul) liste elemanlarını yan yana dizmek için ul li ye <strong>float:left </strong>tanımı yapıyoruz. &quot;Sesi Kapat&quot; flash olacağı için bu bölümün yazı tipi özelliklerini tanımlamadan geçiyoruz, diğer linklerin tanımlarını yapıyoruz. Arama kısmında dışa arama alanı ardalan resmini atıyoruz. input alanı ve button alanı ekliyoruz. Niye <strong>button</strong> kullanıyoruz <strong>input type=&quot;submit&quot;</strong> kullanmıyoruz derseniz. type=&quot;submit&quot; elemanına direk erişemediğimizden. input ve button elemanlarımıza float:left ve genişlik tanımı yaparak yan yana koyuyoruz ve yine yorum kodlarımızı ekliyoruz.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;menuAramaAlani&quot; class=&quot;kapsayamamaSorunu&quot;&gt;
    &lt;div id=&quot;aramaAlani&quot;&gt;
        &lt;input type=&quot;text&quot; id=&quot;ara&quot; name=&quot;ara&quot; value=&quot;Arama&quot; onfocus=&quot;if(this.value=='Arama'){this.value=''};&quot; onblur=&quot;if(this.value==''){this.value='Arama'};&quot; /&gt;
        &lt;button&gt;&lt;/button&gt;
    &lt;/div&gt;
    &lt;ul id=&quot;ustMenu&quot;&gt;
        &lt;li&gt;Sesi Kapat&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;&quot;&gt;Giriş Yap&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;&quot;&gt;Sen de Katıl!&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;&quot;&gt;Fanatik Marşlar Nedir?&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;&lt;!--[if !IE]&gt;menuAramaAlani&lt;![endif]--&gt;
</pre>
<p><strong>Büyük Resim </strong></p>
<p>Büyük resmin olduğu kısmı ve bu resmin üzerindeki &#8220;Tezahürat Gönder&#8221; butonunu kodlarken; Büyük resmi bir katman oluşturup bunun ardalanına koyup tezahürat gönder düğmesini de alt ve sağdan 21px mesafede koymak için büyük resmi ardalanına atadığımız katmana position:relative tanımlıyoruz ve düğmeye position:absolute, bottom:0 ve right:21px tanımı yapıyoruz. ie6&#8242;da alttan 1px kadar fazlalık vardı bu durumda ie6 özel kodu ile aştım. ie6 için bottom:-1px; tanımı yaptım. Tarayıcılar için özel kodlar hakkında detaylı bilgi için <a href="http://www.fatihhayrioglu.com/tum-tarayicilar-icin-css-duzeltmelerihack/">tıklayınız</a> </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;buyukResim&quot;&gt;
	&lt;a href=&quot;&quot;&gt;&lt;img src=&quot;images/tezahurat_gonder_but.jpg&quot; width=&quot;181&quot; height=&quot;45&quot; alt=&quot;Tezahürat Gönder&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
</pre>
<p><strong>Önemli Sözler</strong></p>
<p>Önemli sözler kısmı beni biraz düşündürdü. Kodlarken bu alanı normal akış dışına çıkarmalıydım. Bunun için <strong>position:relative</strong> tanımı ve genişlik ve yükseklik tanımı yaptım. Ana kapsayıcı katmanın dışına çıkarmak içinde eksi left ve margin-right değeri verdim ve oldu. </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;manset&quot;&gt;
	&lt;p&gt;&quot;Real Madrid'den korkmuyoruz&quot;&lt;strong&gt;Didier Deschamps&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
</pre>
<h3>İçerik Alanının kodlaması</h3>
<p><a href="http://www.fatihhayrioglu.com/wp-content/icerik_alani.jpg"><img src="http://www.fatihhayrioglu.com/wp-content/icerik_alani.jpg" alt="" title="icerik_alani" width="450" height="450" class="aligncenter size-full wp-image-1490" /></a></p>
<p>Ana Sayfa içerik alanını üç kolona ayırıyoruz. Sol, orta ve sağ kolon. </p>
<p><strong>Sol İçerik Alanının Kodlanması</strong> </p>
<p>Sol kolona genişlik ve float tanımı yaparak yerleştiriyoruz. </p>
<p>Başlıklara h1 ile tanımlıyoruz ve özelliklerini veriyoruz. </p>
<p>Html kodu; </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;solIcerikAlani&quot;&gt;
    &lt;h1&gt;Tezahürat Ligleri&lt;/h1&gt;
    .....
&lt;/div&gt;
</pre>
<p>CSS kodu;</p>
<pre class="brush: css; title: ; notranslate">
#solIcerikAlani{float:left; width:200px; margin-right:20px}
	#solIcerikAlani h1{margin-left:10px}
</pre>
<p><strong>Lig Menüsü</strong> </p>
<p>Lig menüsünü her zamanki ardalan kaydırmaca yöntemi ile kodluyoruz. ul listleri ve her liste elemanına ilgili id isimlerini veriyoruz. Daha sonra bu adlandırdığımız öğelere backgroud-position ile ilgili resimlerini atıyoruz. Metodun genel mantığı tek bir resim üretip öğelere farklı background-postion değeri ile kendi background&#8217;unu vermek. Metot ve uygulama hakkında detaylı bilgi almak için <a href="http://www.fatihhayrioglu.com/basit-resimli-menu-yapmak/">basit menü yapımı</a> makalemi okuyunuz. </p>
<p>HTML Kodu </p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul id=&quot;ligMenu&quot;&gt;
    &lt;li id=&quot;superLig&quot;&gt;&lt;a href=&quot;&quot;&gt;Turkcell Super Lig&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;birinciLig&quot;&gt;&lt;a href=&quot;&quot;&gt;Bank Asya 1. Lig&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;digerLigler&quot;&gt;&lt;a href=&quot;&quot;&gt;Diğer Ligler&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;dunyadanTezahuratlar&quot;&gt;&lt;a href=&quot;&quot;&gt;Dünyadan Tezahüratlar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>CSS Kodu</p>
<pre class="brush: css; title: ; notranslate">
ul#ligMenu{margin-bottom:10px}
    ul#ligMenu li{ background:url(../images/lig_menu.gif) 0 0 no-repeat;}
    ul#ligMenu li a{text-indent:-9999px; display:block; margin-bottom:1px; width:200px; height:45px; }
    ul#ligMenu li#superLig{ background-position:0 0;}
    ul#ligMenu li#birinciLig{background-position:0 -46px;}
    ul#ligMenu li#digerLigler{background-position:0 -92px;}
    ul#ligMenu li#dunyadanTezahuratlar{background-position:0 -138px;}
</pre>
<p><strong>Zirvedeki Taraftarlar</strong></p>
<p>Zirvedeki taraftarlar kısmını tablo ile kodlayacağız.</p>
<p>CSS ile kodlama yaparken bazılarının yanlış anladığı bir nokta vardır. Katmanlarla kodlama yaparken hiç tablo kullanmamalıyız yanılgısına düşer bazı arkadaşlar. Aslında durum böyle değildir. Anlamalı kodlama açısındanda sakıncalı olan bu anlayış yanlıştır. HTML sayfalarımızı oluştururken her elemanın ilgili etiketleri ile kodlamalıyız. Bu anlaşılabilirlik ve anlamlı kod yazma açısından önemlidir ve karmaşayı engeller. HTML sayfalarını oluşturmak için çeşitli yöntemler vardır bizi sonucu götüren ancak biz en uygun olan yolu bulmalıyız ve kodlamayız. Peki en uygun yöntem hangisidir buna nasıl karar vereceğiz noktasında kalırsak. Her zaman standartlar ve anlamlı kodlama yolunu seçmeliyiz. </p>
<p>Tabloyu kodlarken sayı kolonu için bir sınıf tanımlayıp özelliklerini atarız ve kolonu seçip bu sınıfı tüm hücrelere tanımlarız. Bu tüm hücre seçip sınıf atma işini dw ile kolayca yapabiliriz. Ayrıca tablo geneline yazı tipi ve renk tanımı yaparak genel tablo özelliklerimizi atadıktan sonra isim kısmı ve puan kısmını büyük yapmak için bu kısımları normal içerikten ayırmamız gerekir. Ben bunun için bu alanları strong etiketi içine aldım. Böylece direk html elemanına etki edebilecek ve istediğim değerleri atayabilecektim. </p>
<p><strong>Not:</strong> Kodlarımı yazarken hep mümükün oldukça html elemanlarını(p, strong, em, span, ul, li) kullanmaktan yanayım. Çünkü html elemanlarını tarayıcılar daha hızlı yorumlayacaktır, ayrıca yalın html kodumuzda daha düzenli duracaktır. </p>
<p>Logoları bir resim olarak hazırlayıp css sprite(ardalan kaydırma) yöntemi ile bu logoları kodladık.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;tr class=&quot;farkliSatir&quot;&gt;
    &lt;td width=&quot;16%&quot; align=&quot;center&quot; valign=&quot;middle&quot; class=&quot;taraftarSayi&quot;&gt;1&lt;/td&gt;
    &lt;td width=&quot;18%&quot; align=&quot;center&quot; valign=&quot;middle&quot;&gt;&lt;div class=&quot;logoTrabzon&quot;&gt;Trabzon&lt;/div&gt;&lt;/td&gt;
    &lt;td width=&quot;51%&quot; valign=&quot;middle&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;strong&gt;Fatih&lt;/strong&gt; Trabzon&lt;/a&gt;&lt;/td&gt;
    &lt;td width=&quot;15%&quot; align=&quot;center&quot; valign=&quot;middle&quot;&gt;&lt;strong&gt;28&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
</pre>
<p>Tablonun tek satırını incelersek kod yapısını anlayacağız. tr&#8217;deki <strong>farkliSatir</strong> sınıfı bir satırın açık bir satırın daha kapalı bir renk tanımı yapmak içindir. İlk hücremiz 1&#8242;den 10&#8242;a kadar sayılar olacağı kolon bu sayıların her biri aynı özellikleri taşıdığı için bu kolondaki hücrelere <strong>taraftarSayi </strong>sınıfını tanımladım ve özellikleri bu sınıfa atadım. </p>
<p>Site genelinde kullanılacak logoları düşününce bunları bir resim dosyası olarak hazırlayayım ve ardalan kaydırma metodu ile çağırayım diye düşündüm. CSS Sprite adı verilen bu tekniği bir çok yerde kullanıyoruz artık. Metodun çıkış amacı bir çok resmi ayrı ayrı sayfada çağırınca her istek bir zaman aşımına neden oluyor, resmi teke indirdiğimizde tek resim ve tek istek olduğu için bu zaman aşımından kurtulmuş oluyoruz. </p>
<p><a href="http://www.fatihhayrioglu.com/wp-content/takim_logolari.gif"><img src="http://www.fatihhayrioglu.com/wp-content/takim_logolari.gif" alt="" title="takim_logolari" width="169" height="942" class="aligncenter size-full wp-image-1491" /></a></p>
<pre class="brush: css; title: ; notranslate">
table#taraftarZirveTablo td div{ display:block; width:32px; height:32px; text-indent:-9999px; background:url(../images/takim_logolari.gif) 0 0 no-repeat}
....
....
 div#icerikAlani div.logoTrabzon{ background-position:right -105px}
 div#icerikAlani div.logoGalatasaray{ background-position:right -69px}
 div#icerikAlani div.logoFenerbahce{ background-position:right 2px}
 div#icerikAlani div.logoGaziantep{ background-position:right -574px}
......
</pre>
<p>Logoları daha optimum kodlamak için iki farklı tanım ile aynı kodun tekrarını önledik. <strong>table#taraftarZirveTablo td div</strong> tanımında genel özellikleri tanımladık, daha sonra her takım logosu için sadece <strong>background-position</strong> tanımı yaptık, böylece her takım için birbirini tekrarlayan kodları tek elde topladık ve kodumuz daha az oldu. </p>
<p>Sol kolonda son olarak &quot;Takımını Destekle!&quot; ve &quot;Takip Et!&quot; kısımlarını kodladık. Ben sitede toplu olarak iki adet resim toplama(css sprite) tekniği uyguladım. Birincisi yukarıda anlattığım logolar için diğeri ise sitedeki sprite tekniğine uyacak diğer resimler için. </p>
<p><a href="http://www.fatihhayrioglu.com/wp-content/genel_resim.gif"><img src="http://www.fatihhayrioglu.com/wp-content/genel_resim.gif" alt="" title="genel_resim" width="230" height="552" class="aligncenter size-full wp-image-1492" style="border:1px solid #ccc" /></a></p>
<p>yukarıdaki resim site genelinde uyguladığım sprite tekniği sonucu ortaya çıkmıştır. CSS Sprite tekniği hakkında genel bir makale ayrıca yazacağım, ama burada da yeri geldikçe metot hakkında bilgi vereceğim.  &quot;Takımını Destekle!&quot; ve &quot;Takip Et!&quot; kısımları başlıkları ve resimleri olan kısımlar, bunların sabit genişlik ve yüksekliği olduğu için CSS Sprite&#8217;a en uygun alanlar oldular. Genişleyebilir alanlarda sprite tekniğini kullanırken daha dikkatli olmalıyız. </p>
<p>HTML kodu </p>
<pre class="brush: xml; title: ; notranslate">
&lt;h1&gt;Takımını Destekle!&lt;/h1&gt;
&lt;a id=&quot;tezahuratgonderBanner&quot; href=&quot;&quot;&gt;Sende tezahürat gönder takımını Tezahürat Ligi'nde Şampiyon yap!&lt;/a&gt;
&lt;h1&gt;Takip Et!&lt;/h1&gt;
&lt;a id=&quot;twitterTakip&quot; href=&quot;&quot;&gt;Fanatik Marşları Twitter'da takip edin&lt;/a&gt;
</pre>
<p>CSS kodu;</p>
<pre class="brush: css; title: ; notranslate">
a#tezahuratgonderBanner{ background:url(../images/genel_resim.gif) 0 -88px no-repeat; width:188px; height:88px; display:block; text-indent:-9999px; margin:0 0 10px 10px}
a#twitterTakip{background:url(../images/genel_resim.gif) 0 -176px no-repeat; width:175px; height:50px; display:block; text-indent:-9999px; margin-left:10px}
</pre>
<p>Böylece sol kolon kodlamasını bitirdik.</p>
<h3>Orta İçerik Alanının Kodlanması</h3>
<p>Orta içerik alanının genişlik ve float tanımı yapıyoruz. </p>
<pre class="brush: css; title: ; notranslate">
#ortaIcerikAlani{float:left; width:440px; margin-right:20px}
</pre>
<p>Sonra üstteki resmi ekliyoruz.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;img src=&quot;images/orta_resim.jpg&quot; width=&quot;440&quot; height=&quot;250&quot; alt=&quot;Fanatikler&quot; /&gt;
</pre>
<p>Sonra Lig Tablosunu kodlamaya başlıyoruz.</p>
<p><strong>Lig Tablosu</strong></p>
<p>Lig Tablosu içeriğini bir tablo yapacağız. Üst ve alttaki oval kenarları ayrı bir katmana koyup, ardalan resmi olarak kodlayacağız. Peki resim değilde niye ardalan resmi olarak koyduk. Ardalan resimlerini tek bir resim şeklinde hazırlayıp kodlarken iki ayrı resim gibi kullanabiliyoruz. Ancak resim olarak hazırlasa idik, iki ayrı resim hazırlamak ve eklemek durumunda olacaktık, buda daha fazla http isteği demek oluyor.</p>
<pre class="brush: css; title: ; notranslate">
div#ligTabloUstu{ display:block; text-indent:-9999px; width:440px; height:5px; background:url(../images/puan_tablosu.gif) 0 0 no-repeat}
....
div#ligTablosuAlti{display:block; text-indent:-9999px; width:440px; height:5px; background:url(../images/puan_tablosu.gif) 0 bottom no-repeat}}
</pre>
<p>Tabloyuda bir katman içini alıp kenar boşluğunu katmandan vereceğiz. Bu kenar boşluklarını tablo içindende verebilirdik, ancak tablomuz işlevi dışında kullanmış olurduk, tablo sadece lig tablosu amacı ile kullanmak daha anlamlı.</p>
<pre class="brush: css; title: ; notranslate">
div#ligTabloKapsul{width:440px; padding:0 5px; background-color:#f3f3f3; voice-family: &quot;\&quot;}\&quot;&quot;; voice-family:inherit; width:430px;} html&gt;body div#div#ligTabloKapsul{width:430px;}
</pre>
<p>Yukarıdaki kodlamada fazladan kodlar dikkatinizi çekmiştir. Kutu modeli sorunu olarak Türkçeleştirdiğimiz &quot;box model hack&quot; yöntemidir bu. Bir elemana hem genişlik hemde yatay ve dikey padding veya kenar çizgisi atadığımızda(her ikisini atadığımız durumlarda da) ie6 ve diğer tarayıcılar arasındaki yorumlama sorununu gidermek için kullandığımız bir yöntemdir. Ayrıntılı bilgi almak için <a href="http://www.fatihhayrioglu.com/kutu-modeli-sorunlari-ve-cozumleri/">http://www.fatihhayrioglu.com/kutu-modeli-sorunlari-ve-cozumleri/</a> inceleyin.</p>
<p>Tablomuz standart bir tablo en sağdaki kolonumuz sayıları içeren farklı renk ve boyutta rakamlar içeriyor. Birde her satırın altında gri bir kenar çizgimiz(border) var. </p>
<p>En sağ kolon için bir sınıf tanımı yapıp kolon boyunca bunu uyguluyoruz.</p>
<pre class="brush: css; title: ; notranslate">
table#ligTablosu td.sayi{font:bold 18px Arial, Helvetica, sans-serif; color:#acd1e1}
</pre>
<p>Her satırın altındaki kenar çizgisini atamak için ilk olarak (tr) elemanına tanımladım ancak burada ie6 ile sorun yaşadım. Çözüm için <a href="http://www.fatihhayrioglu.com/internet-explorer-6-ve-7-icin-tablo-tr-elementine-kenar-cizgisi-atamak/">tıklayınız</a>. Bu detay sayfasındaki makaleyi burada yaşadığım sorundan sonra yazdım. Genelde makalelerim sorun-çözüm makaleleri böyle çıkıyor. Bir sorun ile bir kaç defa karşılaştıktan sonra çözüm ve önerilerini siteye yazıyorum. Hem aklımda kalmış oluyor hemde bir daha karşılaştığımda çözümü nerede bulacağımı biliyorum. Tabi birde insanlarla paylaşıp aynı sorunu yaşayan insanlara yardımcı olmak gibi güzel bir yanıda var.</p>
<pre class="brush: css; title: ; notranslate">
table#ligTablosu{border-collapse:collapse; }
table#ligTablosu td{padding:1px 2px; font:14px Arial, Helvetica, sans-serif; color:#828282; border-bottom:1px solid #d5d5d5;}
</pre>
<p>En son satırda kenar çizgisi olmayacağı için son satıra bir sınıf atayıp kenar çizgisini kaldırdım.</p>
<pre class="brush: css; title: ; notranslate">
table#ligTablosu tr.enAlt td{border:0}
</pre>
<p>Ayrıca tablo baş kısmı için içerikten farklı tanımları yaptım (table th) </p>
<pre class="brush: css; title: ; notranslate">
table#ligTablosu th{font:bold 14px Arial, Helvetica, sans-serif; color:#000; padding:5px 2px}
</pre>
<p><strong>Takım Adı ve Armaları</strong></p>
<p>Bu tablodaki takım adı ve logoları için sol kolonda yaptığımıza benzer kodları kullanıyoruz. Bunu yukarıda sol kolona ait toplu kodlarda görebilirsiniz. Aynı tanımlar olduğu için sadece virgül ie yanına seçiciyi ekledik. </p>
<pre class="brush: css; title: ; notranslate">
div#icerikAlani div.logoWerderBremen, a.WerderBremen{background-position:right -1440px}
</pre>
<p>görüldüğü gibi <strong>div#icerikAlani div.logoWerderBremen</strong> kısmı ile <strong>a.WerderBremen</strong> kısmına aynı tanımlar yapıldığı için virgül ile ayrılmıştır. Böylece daha kısa kod ve daha optimize kodlar elde edilmiştir. </p>
<p>Sol kolonda kullanmadığımız ama burada lazım olan aşağıdaki kodlarıda ekledik. </p>
<pre class="brush: css; title: ; notranslate">
a.takimLogo{ display:block; background:url(../images/takim_logolari.gif) right 0 no-repeat; padding:8px 30px 8px 0; color:#0c2b90; text-decoration:underline}
a.takimLogo:hover{text-decoration:none;}
</pre>
<h3>Sağ İçerik Alanının Kodlanması</h3>
<p>İçerik alanı 3 kolonlu yapının sonuncu kolonuna (sagIcerikAlani) ismini verdik ve diğer kolonları yanında durması için genişlik tanımı ve float:left tanımı yaptık. </p>
<pre class="brush: css; title: ; notranslate">
#sagIcerikAlani{float:left; width:300px}
</pre>
<p>İlk olarak banner alanını hazırlıyoruz. Normalde ben buraya resmi direk koyabilirdim, ancak banner flash ise ve buraya javascript ile eklenecekse bir id&#8217;ye ihtiyaç duyulabilir diye, bir katman içine alıyorum resmi. </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;sagBannerAlani&quot;&gt;&lt;img src=&quot;images/band_website_banner.jpg&quot; width=&quot;300&quot; height=&quot;250&quot; alt=&quot;Web&quot; /&gt;&lt;/div&gt;
</pre>
<p>Not: Bir HTMLci, daha cancanlı isimlendirme ile Arayüz Kod geliştiricisi sadece kod yazmak ile kalmaz aynı zamanda yazdığın kodun nereye gideceği, neler içere bileceğinide düşünerek kodunu yazmalıdır. Bir bakıma bir programcı gibi düşünerek kodunu daha esnek yazmalıdır. </p>
<p><strong>Kategoriler Kısmı</strong></p>
<p>Kategoriler kısmını blok şeklide kodlayacağım. Her kategoriye bir satır olacak şekilde kodlamak için burada &quot;ul li&quot; listelerini kullandım.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul id=&quot;lKategoriiler&quot;&gt;
    &lt;li id=&quot;kMarslar&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;strong&gt;Marşlar&lt;/strong&gt;All the legendary football terrace anthems are here. &lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;kEglenceliTezahuratlar&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;strong&gt;Eğlenceli Tezahüratlar&lt;/strong&gt;All the legendary football terrace anthems are here. &lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;kSohretlerGecidi&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;strong&gt;Şöhretler Geçidi&lt;/strong&gt;All the legendary football terrace anthems are here. &lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;k18&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;strong&gt;+18&lt;/strong&gt;All the legendary football terrace anthems are here. &lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;kNostaljikTezahuratlar&quot;&gt;&lt;a href=&quot;&quot;&gt;&lt;strong&gt;Nostaljik Tezahüratlar&lt;/strong&gt;All the legendary football terrace anthems are here. &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>Her öğenin farklı ikonu olduğu için her liste öğesine bir id vereceğiz ve buna göre atamalarımızı yapacağız. Listede bir başlık ve içerik alanı var bu ayrımı sağlamak için başlık kısmını strong etiketi içine alıyoruz. </p>
<pre class="brush: css; title: ; notranslate">
#sagIcerikAlani ul#lKategoriiler{width:300px; float:left; font-family:Arial, Helvetica, sans-serif; margin-bottom:10px}
ul#lKategoriiler li a{ display:block; background:#eeeeee url(../images/notalar.gif) 0 0 no-repeat; margin-bottom:2px; padding:10px 5px 10px 40px; font-size:12px; color:#000}
ul#lKategoriiler li a:hover{background:#dbdbdb url(../images/notalar.gif) 0 0 no-repeat;}
ul#lKategoriiler li#kMarslar a{ background-position:0 -2px;}
ul#lKategoriiler li#kEglenceliTezahuratlar a{ background-position:0 -72px;}
ul#lKategoriiler li#kSohretlerGecidi a{ background-position:0 -141px;}
ul#lKategoriiler li#k18 a{ background-position:0 -215px;}
ul#lKategoriiler li#kNostaljikTezahuratlar a{ background-position:0 -289px;}
ul#lKategoriiler li a strong{display:block; font:bold 14px Arial, Helvetica, sans-serif; color:#0c2b90}
</pre>
<p><strong>Videolar </strong></p>
<p>Video kısmında resmi sola yazıları ve oylama kısmını sağa koyuyoruz. Burada oylama alanını css ile kodlarken yine ardalan kaydırma yöntemini kullanıyoruz. </p>
<p>Oylama html kodu </p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul class='oylama'&gt;
    &lt;li class='mevcutOy' style=&quot;width:60px&quot;&gt;3/5 Yıldız&lt;/li&gt;
    &lt;li&gt;&lt;a href='#' title='1 puan' class='birYildiz'&gt;1&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href='#' title='2 puan' class='ikiYildiz'&gt;2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href='#' title='3 puan' class='ucYildiz'&gt;3&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href='#' title='4 puan' class='dortYildiz'&gt;4&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href='#' title='5puan' class='besYildiz'&gt;5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>5 adet yıldızımız var birde mevcut durumu gösteren bir li öğemiz. Burada da ardalan kaydırma metodu kullanarak oylama kısmı kodlanmıştır. </p>
<pre class="brush: css; title: ; notranslate">
ul.oylama{list-style: none; margin:0 3px 3px 3px; padding: 0px; width: 85px; height: 17px; position: relative; background: url(../images/yildiz.gif) top left repeat-x;}
    ul.oylama li{float:left; padding:0px; margin:0px;}
        ul.oylama li a{display:block; width:17px; height: 17px; text-decoration: none; text-indent: -9999px; z-index: 20; position: absolute; background-image:none;}
        ul.oylama li a:hover{background: url(../images/yildiz.gif) left bottom; z-index: 1; left: 0px;}
        ul.oylama li.mevcutOy{background: url(../images/yildiz.gif) left bottom; position: absolute; height: 17px; display: block; text-indent: -9999px; z-index: 1;}
        ul.oylama a.birYildiz{left: 0px;}
        ul.oylama a.birYildiz:hover{width:17px;}
        ul.oylama a.ikiYildiz{left:17px;}
        ul.oylama a.ikiYildiz:hover{width: 34px;}
        ul.oylama a.ucYildiz{left: 34px;}
        ul.oylama a.ucYildiz:hover{width: 51px;}
        ul.oylama a.dortYildiz{left: 51px;}
        ul.oylama a.dortYildiz:hover{width: 68px;}
        ul.oylama a.besYildiz{left: 68px;}
        ul.oylama a.besYildiz:hover{width: 85px;}
</pre>
<h3>Sosyal Alanın ve Alt Alanın Kodlanması</h3>
<p><a href="http://www.fatihhayrioglu.com/wp-content/sosyal_altalan.jpg"><img src="http://www.fatihhayrioglu.com/wp-content/sosyal_altalan.jpg" alt="" title="sosyal_altalan" width="450" height="111" class="aligncenter size-full wp-image-1493" /></a></p>
<p>Burada üstteki beyaz oval alanı için fazladan bir katman açıp ona atamaktan ise zaten ekleyeceğiz sosyalAlan&#8217;a üstteki kapsayıcı katmanın alt ovalliğini ekleyerek daha az kodlama bu işi çözmüş olduk. </p>
<p><strong>Sosyal Alanın Kodlanması</strong> </p>
<p>Sabit genişliği ve yüksekliği olan bir alan ve yan yana dizilmiş öğelerimiz var. Yukarıda bir çok defa uyguladığımız listeler ve ardalan kaydırma metodunu burada da uyguluyoruz. </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;sosyalAlan&quot; class=&quot;kapsayamamaSorunu&quot;&gt;
    &lt;ul&gt;
        &lt;li id=&quot;sBaslik&quot;&gt;Sosyal Medya&lt;/li&gt;
        &lt;li id=&quot;sRSS&quot;&gt;&lt;a href=&quot;&quot;&gt;RSS&lt;/a&gt;&lt;/li&gt;
        &lt;li id=&quot;sFacebook&quot;&gt;&lt;a href=&quot;&quot;&gt;facebook&lt;/a&gt;&lt;/li&gt;
        &lt;li id=&quot;sFriendfeed&quot;&gt;&lt;a href=&quot;&quot;&gt;friendfeed&lt;/a&gt;&lt;/li&gt;
        &lt;li id=&quot;sTwitter&quot;&gt;&lt;a href=&quot;&quot;&gt;twitter&lt;/a&gt;&lt;/li&gt;
        &lt;li id=&quot;sYoutube&quot;&gt;&lt;a href=&quot;&quot;&gt;youtube&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
</pre>
<p>CSS Kodu</p>
<pre class="brush: css; title: ; notranslate">
/* sosyalAlan */
#sosyalAlan{width:990px; margin:0 auto; background:url(../images/yatay_ayrac.gif) 0 0 no-repeat; height:71px}
    #sosyalAlan ul{float:right; width:310px; margin:30px 10px 0 0;}
        #sosyalAlan ul li{float:left; background:url(../images/sosyal_medya.gif) 0 0 no-repeat; text-indent:-9999px; margin-right:12px}
        #sosyalAlan ul li#sBaslik{ background-position:0 0; width:114px; height:23px}
        #sosyalAlan ul li#sRSS{ background-position:-125px 0; width:23px;}
        #sosyalAlan ul li#sFacebook{ background-position:-158px 0; width:23px}
        #sosyalAlan ul li#sFriendfeed{ background-position:-192px 0; width:23px;}
        #sosyalAlan ul li#sTwitter{ background-position:-226px 0; width:23px}
        #sosyalAlan ul li#sYoutube{ background-position:-260px 0; width:23px;}
        	#sosyalAlan ul li a{display:block; height:23px;}
</pre>
<p><strong>Alt Alanın Kodlanması</strong></p>
<p>altAlan kısmına baktığımızda 3 kolonlu bir yapıya sahip olduğunu görürüz. Sabit bir genişliği ve yüksekliği var. Tüm alt kısmı kapsayan bir background resmi var. Bu değerlendirmeleri yaptıktan sonra kodumuzu yazarsak. </p>
<pre class="brush: css; title: ; notranslate">
#altAlan{ background:url(../images/alt.png) 0 0 no-repeat; width:990px; height:122px; margin:0 auto; padding-top:10px; voice-family: &quot;\&quot;}\&quot;&quot;; voice-family:inherit; height:112px;} html&gt;body #altAlan{height:112px;}
</pre>
<p>Yukarıda bahsettiğimiz gibi bir elemana genişlik veya yükseklik tanımı yaptıktan sonra padding ve/veya border tanımı yaptığımızda kutu modeli sorunu ile karşılaşmamak için farklı bir kod yazıyoruz. Ayrıca ardalan resmindeki geçiş nedeni ile saydam png koymalıyız. Saydam pngler ie6&#8242;daki sorununu çözmek için kodumuz </p>
<pre class="brush: css; title: ; notranslate">
#altAlan{ background:url(../images/alt.png) 0 0 no-repeat; width:990px; height:122px; margin:0 auto; padding-top:10px; voice-family: &quot;\&quot;}\&quot;&quot;; voice-family:inherit; height:112px;} html&gt;body #altAlan{height:112px;}
* html #altAlan{background:transparent; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/alt.png', sizingMethod='crop');}
* html #altAlan a, * html #altAlan input, * html #altAlan button{position:relative; z-index:1}
</pre>
<p>şeklinde olmalıdır. Ayrıntılı bilgi için Internet Explorer 6 için saydam PNG desteği adlı makalemi okuyunuz. </p>
<p>Alttaki logoyu yerleştirmek için genişlik ve <strong>float</strong> tanımı yapıyoruz. Bu resmide CSS Sprite ile genel resimden çekiyoruz. </p>
<pre class="brush: css; title: ; notranslate">
#logoAltta{ background:url(../images/genel_resim.gif) 0 -236px no-repeat; width:123px; height:69px; text-indent:-9999px; margin:0 20px 0 10px; float:left;}
</pre>
<p>Ortadaki linkler ve copyright kısmını liste ve paragraflı bir yapı ile kodluyoruz. </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;altLinkler&quot;&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;&quot; title=&quot;Telif Hakları&quot;&gt;Telif Hakları&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;&quot; title=&quot;İletişim&quot; class=&quot;sonAltLink&quot;&gt;İletişim&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;© 2009 Fanatik Marşlar. Her hakkı saklıdır. Kaynak gösterilmeden kullanılamaz.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;&quot; title=&quot;Marşlar&quot;&gt;Marşlar&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;&quot; title=&quot;Eğlenceli Tezahüratlar&quot;&gt;Eğlenceli Tezahüratlar&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;&quot; title=&quot;Şöhretler Geçidi&quot;&gt;Şöhretler Geçidi&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;&quot; title=&quot;Klasikler&quot;&gt;Klasikler&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;&quot; title=&quot;+18&quot;&gt;+18&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;&quot; class=&quot;sonAltLink&quot; title=&quot;Nostaljik Tezahüratlar&quot;&gt;Nostaljik Tezahüratlar&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
</pre>
<p>Listeleri yan yana dizmek için li&#8217;ye display:inline tanımı yapıyoruz. </p>
<pre class="brush: css; title: ; notranslate">
#altLinkler{float:left; width:635px; font:12px Arial, Helvetica, sans-serif; padding-top:10px}
#altLinkler p{margin:3px 0}
#altLinkler ul li{display:inline;}
#altLinkler ul li a{color:#0c2b90; background:url(../images/genel_resim.gif) right -312px no-repeat; padding-right:8px; margin-right:5px}
#altLinkler ul li a.sonAltLink{background:none;}
#altLinkler ul li a:hover{text-decoration:underline}
</pre>
<p>Son olarakta RSS ve e-posta üyeliği kısmını kodluyoruz. </p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;rssEpostaUye&quot;&gt;
    &lt;a href=&quot;&quot; id=&quot;altRSSLink&quot;&gt;RSS&lt;/a&gt;
    &lt;p&gt;E-posta Üyeliği&lt;/p&gt;
    &lt;input type=&quot;text&quot; /&gt; &lt;button&gt;Gönder&lt;/button&gt;
&lt;/div&gt;
</pre>
<p>Bu gibi durumlarda şöyle bir seçim yapıyorum. Kapsayıcı bir katman içinde tek kullanımlık html elemanları koyarak css kodlamayı daha kolay hale getiriyorum. Burada mesela tek a, tek p, tek input ve tek button kullanmamın nedeni bu. </p>
<h3>Sonuç</h3>
<p>Bu makaleye kodlama yazarken tuttuğum notlardan yararlanarak hazırladım. Bazı bölümleri hızlı geçmiş, ayrıntısına inmemiş olabilirim, kafanıza takılan veya ayrıntısını öğrenmek istediğiniz kısımları yorumlar kısmında yazarsanız yardımcı olmaya çalışırım. Bir kusurumuz eksiğimiz oldu ise affola. </p>
<p>Örnek kodları görmek için <a href="http://fatihhayrioglu.com/dokumanlar/fm/index.html">tıklayınız.</a></p>
<p>Tüm kodları indirmek için <a href="http://www.fatihhayrioglu.com/dokumanlar/fm_anasayfa_html.rar">tıklayınız.</a>(rar dosyası index.html, images, style ve scripts klasörünü içerir) 388 Kb</p>
<p>Hazırladığımız bu dosyayı ilk makalemizdeki 30 &#8211; Musteriye kalsörü içine atıyoruz ve sıkıştırıp gönderiyoruz.</p>
<p>Not: Burada anlattığım kodlar ile yayındaki site arasında ufak tefek farklılıklar olabilir. Ben burada başta benim kodladığım sitenin kodları ve anlatımını yapıyorum.</p>
<p>Bir sonraki makalem <strong>Alt Sayfaların Kodlaması</strong> ile ilgili olacaktır. görüşmek dileğiyle hoşçakalın.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/psdden-htmle-%e2%80%93-fanatikmarslar-com-sitesinin-kodlamasi-ii/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>En çok kullandığım CSS Hileleri(Hack)</title>
		<link>http://www.fatihhayrioglu.com/en-cok-kullandigim-css-hilelerihack/</link>
		<comments>http://www.fatihhayrioglu.com/en-cok-kullandigim-css-hilelerihack/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 14:34:55 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standartları]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[clearfix]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[hileler]]></category>
		<category><![CDATA[Kutu-Modeli]]></category>
		<category><![CDATA[min-height]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=740</guid>
		<description><![CDATA[Yaklaşık 3-4 senedir css ile web sayfası kodluyorum. CSS ile web sayfası kodlarken en çok sorun çıkaran konulardan biri farklı tarayıcılar için kod yazmaktır. CSS hileleri ile geçiştirdiğimiz bu farklı tarayıcılara göre kod yazma işi bize aslında CSS ile sayfa kodlama imkanı sunması bakımından önemlidir. Eğer CSS hileleri olması idi biz farklı tarayıcılar için değil [...]]]></description>
			<content:encoded><![CDATA[<p>Yaklaşık  3-4 senedir css ile web sayfası kodluyorum. CSS ile web sayfası  kodlarken en çok sorun çıkaran konulardan biri farklı tarayıcılar için  kod yazmaktır. CSS hileleri ile geçiştirdiğimiz bu farklı tarayıcılara  göre kod yazma işi bize aslında CSS ile sayfa kodlama imkanı sunması  bakımından önemlidir. Eğer CSS hileleri olması idi biz farklı  tarayıcılar için değil belirli tarayıcılar için kod yazmış olacaktık ki  bu erişebilirlik açısından ve müşteri istekleri açısından sorun  oluşturan bir durumdur. </p>
<p>Başta dediğim gibi 3-4 senedir CSS ile  sayfa kodluyorum ve en çok kullandığım css hilelerini burada yazmamın  uygun olacağını düşündüm. Çünkü birçok bu işi yeni başlayan arkadaş  için önemli bir bilgi olacağını düşünüyorum. Lafı fazla uzatmadan  listemiz açıklayalım.</p>
<p><span id="more-740"></span></p>
<h3>1- Kutu Modeli ve CSS hillesi </h3>
<p><a title="Kutu modeli sorunları ve çözüm önerilerinde" href="http://www.fatihhayrioglu.com/kutu-modeli-sorunlari-ve-cozumleri" >Kutu modeli sorunları ve çözüm önerilerinde</a>n  bahsettiğimiz makale ve bu konunun önemi açısından bu css hilesini başa  aldık. Gerçekten birçok yerde karşılaştığımız bu sorun kullanılması en  karmaşık gelen bir sorundur. Genel mantık olarak ie&#8217;nin özellikle 6 ve  garip mod daki diğer tarayıcılarında farklı görünmesini engellemek için  tantek çelik tarafından oluşturulan bir hiledir.</p>
<p> Kutu genişliği tanımlanmışsa ve padding veya kenar çizgiside tanımladığımızda uygulanan bu yöntem için yazdığımız kod aşağıdadır</p>
<pre class="brush: css; title: ; notranslate">#icerik{
width:230px;
padding:10px;
margin:5px; /* Bundan sonraki kısmı ie5win sakla */
voice-family: &quot;\&quot;}\&quot;&quot;;
voice-family:inherit;
width:200px;
}
html&gt;body #icerik {
width:200px;
}</pre>
<p>Sorun olan kodumuza biz sadece</p>
<pre class="brush: css; title: ; notranslate">voice-family: &quot;\&quot;}\&quot;&quot;;
voice-family:inherit;
width:200px;
}
html&gt;body #icerik {
width:200px;
} </pre>
<p>Bölümünü  uygulamamız yeterlidir. Daha sonra eğer genişlik ise genişliği  yükseklik ise yüksekliği ayarlamamız gerekir. Daha sonra <strong>html&gt;body #icerik</strong> kısmından <strong>#icerik</strong> yerine kendi nesne adımızı yazmalıyız.</p>
<h3>2- Float uygulanmış nesnelerin kapsayamama sorunu</h3>
<p> Aslında clearfix olarakta adlandırılan bu sorun bir çok yerde başımıza dert olur. Alıştıktan sonra hemen uygular ve geçeriz. </p>
<p> Sorunumuzun genel tanımı Float uygulanmış bir elementi içeren kapsayıcı element içeriğine göre genişlememesidir.</p>
<p><img src="/images/clearfix_sorun.gif" alt="float sorunu" /></p>
<p>Kodumuz;</p>
<pre class="brush: css; title: ; notranslate">.kapsul:after {
content: &quot;.&quot;;
display: block;
height: 0;
clear: both;
visibility: hidden;
} 

.kapsul {display: inline-block;} 

/* IE-mac de bu bolumu sakla \ */
* html .kapsul {height: 1%;} 

.kapsul {display: block;}
/* IE-mac bu bolumu saklam artik */ </pre>
<p>
Bu kodda <strong>.kapsul</strong> yerine kendi nesne ismimizi yazmamız yeterlidir.</p>
<h3>3. IE6&#8242;un Tekrarlayan Karakter Sorunu</h3>
<p>  Bu hata birden fazla float uygulanmış iç içe elementlerde meydana gelir.  Son float uygulanmış elementin son karakterleri tekrarlar. Soruna nedeni html yorum satırlarıdır ve çözüm için<br />
  
</p>
<pre class="brush: xml; title: ; notranslate">&lt;!--[if !IE]&gt;Yorumunu buraya yaz &lt;![endif]--&gt; </pre>
<p>Kodunu  yazarız. Ben burada yorum yazarken bu sorunla karşılaşabilirim diye tüm  yorumlarımı bu şekilde yazarak bu sorundan kaçınmaya çalışıyorum.</p>
<h3>4. IE6&#8242;nın min-height Sorunu</h3>
<p>Son zamanlarda gelen işlerde çok rastlamam nedeni ile bu listeye son  anda ilave ettim. IE6&#8242;nın desteklemediği min-height özelliği için </p>
<pre class="brush: css; title: ; notranslate">min-height:500px;
height:auto !important;
height:500px;</pre>
<p>yazmamız yeterli.</p>
<p>Bunun dışında <a title="CSS Dersleri Sayfası" href="http://www.fatihhayrioglu.com/css-dersleri" >CSS Derslerindeki</a> sayfasındaki CSS Problemleri ve Çözüm Önerileri kısmında birçok problem  görünse de yukarıda saydıklarım problemlerle çok sık karşılaşıyorum. Bu  sorunlarla karşılaştığımda her defasında siteye girip bu kodları  kopyalamak sorun oluyor, bu nedenle Adobe Dreamweaver&#8217;ın Snippets Aracı  ile bu sorunu giderdim. </p>
<p>Dreamweaver&#8217;da Snippets eklemek çok basit. İlk olarak eğer açık değilse Snippets penceresini açmak için üst menüden <strong>Window -&gt; Sineppets</strong> veya <strong>shift+F9</strong> kısayolu ile açabiliriz. Açtıktan sonra farenin sağ tuşuna basarak <strong>New Sineppet</strong> tıklayalım.</p>
<p><img src="/images/snippets13.gif" alt="Dreamweaver Sineppet Penceresi" width="307" height="268" /></p>
<p>Açılan pencerede <strong>Name</strong> kısmına ismini yazalım(Örne: kutu hilesi) <strong>Insert Code</strong> kısmına da kodumuzu ekleyelim.</p>
<p><img src="/images/snippets2.gif" alt="Dreamweaver Sineppet Penceresi" /></p>
<p>Evet kodumuzu eklemiş olduk. Bu şekilde devamlı kullandığımız kodları Sineppets penceresine ekleyerek kolaylık sağlayabiliriz.</p>
<p><img src="/images/snippets3.gif" alt="Dreamweaver Sineppet Penceresi" /></p>
<p>Daha sonra kod yazarken bu kodlara ihtiyaç duyduğumuzda</p>
<p><img src="/images/koda_hile_ekle1.gif" alt="Dreamweaver Sineppet Penceresi" /></p>
<p>Hemen bu pencereden ilgili başlığa çift tıklayarak kodumuzun içine ekleyebiliriz.</p>
<p><img src="/images/koda_hile_ekle2.gif" alt="Dreamweaver Sineppet Penceresi" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/en-cok-kullandigim-css-hilelerihack/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Kutu Modeli &#8211; Görünüm Efekti Özellikleri</title>
		<link>http://www.fatihhayrioglu.com/kutu-modeli-gorunurluk-ozellikleri/</link>
		<comments>http://www.fatihhayrioglu.com/kutu-modeli-gorunurluk-ozellikleri/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 12:41:34 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standartları]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[clip]]></category>
		<category><![CDATA[görünürlük-özellikleri]]></category>
		<category><![CDATA[Kutu-Modeli]]></category>
		<category><![CDATA[overflow]]></category>
		<category><![CDATA[visibility]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=391</guid>
		<description><![CDATA[Bu aralar CSS kitabına(e-kitap) ağırlık verdim. Kitaptaki eksik bölümleri tamamlıyorum. İnşallah en yakın zamanda bitecek. Bu konuda onlardan biri. Kutu elementlerin görünümüne çeşitli etkiler yapan özellikleri göreceğiz bu makalede çoğu CSS2 ile birlikte gelen bu özellikler aşağıda sıralanmıştır. overflow &#8211; taşma clip &#8211; kırpma visibility &#8211; görünürlük Overflow Yapısı: overflow: &#60;deger&#62; Aldığı Değerler: visible &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Bu aralar CSS kitabına(e-kitap) ağırlık verdim. Kitaptaki eksik bölümleri tamamlıyorum. İnşallah en yakın zamanda bitecek. Bu konuda onlardan biri.</p>
<p>Kutu elementlerin görünümüne çeşitli etkiler yapan özellikleri göreceğiz bu makalede çoğu CSS2 ile birlikte gelen bu özellikler aşağıda sıralanmıştır.</p>
<ul>
<li><strong>overflow</strong> &#8211; taşma</li>
<li><strong>clip</strong> &#8211; kırpma</li>
<li><strong>visibility</strong> &#8211; görünürlük</li>
</ul>
<p><span id="more-391"></span></p>
<h3>Overflow</h3>
<p class="cssozelliktanimi"><strong>Yapısı:</strong> overflow: &lt;deger&gt;<br />
  <strong>Aldığı Değerler:</strong> visible | hidden | scroll | auto | inherit<br />
  <strong>Başlnagıç değeri:</strong> visible<br />
  <strong>Uygulanabilen elementler:</strong> blok-level elementler ve replacement elementlere <br />
  <strong>Kalıtsallık:</strong> Yok </p>
<p>Türkçeye taşmak(overflow) olarak çevirdiğimiz bu özellik sınırlarını belirlediğimiz kutu elementinin içeriğinin sınırları aşması durumunda nasıl davranacağını bildiren bir özelliktir. Özelliğe atanan değerleri tek tek incelersek. </p>
<ul>
<li>inherit &#8211; kalıtsallık üst elementin değerini alabilir
  </li>
<li>visible  &#8211; kutu sınırları dışına taşan alanları göster
  </li>
<li>hidden &#8211; kutu sınırları dışına taşan alanları gizle.</li>
<li>scroll &#8211; kutu sınırlarını taşan kısmı kaydırma çubuğu ile ulaşmamızı sağlar.
  </li>
<li>auto &#8211; kutu sınırlarını aşması durumunda scroll ile aynı etkiyi yapar.</li>
</ul>
<div class="tarayiciuyum"><strong>Browser Uyumu:</strong></p>
<p>  Internet Explorer 6+ <br />
  Mozilla 1.7+ <br />
  Opera 7.5+<br />
  Safari 1.2 <br />
  W3C&#8217;s CSS Level 2+ <br />
  CSS Profile 2.0</div>
<p><strong>overflow:visible</strong> Overflow&#8217;ın başlangıç değeri visible&#8217;dır. Bu değer taşma olan kısımların gösterilmesini sağlar. </p>
<pre class="brush: css; title: ; notranslate">
div#solMenu {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 120px;
background: #BBB;
overflow: visible;
}
</pre>
<p align="center"><img src="/images/overflow.gif" alt="overflow" width="223" height="180"><br />
  Kodun yeni nesil tarayıcılardaki görünümü </p>
<p><strong>overflow</strong> özelliğinin değeri <strong>visible</strong> olduğu için içerik taşmasına rağmen taşan bölümler gösterilmiştir. </p>
<p><strong>overflow:scroll</strong> Eğer içeriğin taşmasını engellemek istiyorsak ama yinede taşan kısımlara ulaşılması için kaydırma çubuğu çıkması için scroll özelliği ekleriz. </p>
<pre class="brush: css; title: ; notranslate">
div#solMenu {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 120px;
background: #BBB;
overflow: scroll;
}
</pre>
<p align="center"><img src="/images/overflow_scroll.gif" alt="overflow scroll" width="223" height="141"><br />
  overflow:scrool olma durumu</p>
<p><strong>overflow:hidden</strong> Eğer overflow:hidden değeri atarsak. Sınırladığımız kutunun dışına taşan kısımlar gösterilmeyecektir. </p>
<pre class="brush: css; title: ; notranslate">
div#solMenu {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 120px;
background: #BBB;
overflow: hidden;
}
</pre>
<p>kodu bu şekilde değiştirdiğimizde görüntü aşağıdaki gibi olacaktır.</p>
<p align="center"><img src="/images/overflow_hidden.gif" alt="overflow:hidden" width="223" height="143"></p>
<p><strong>overflow:auto</strong> Son olarakta otomatik değeri vardır. Bu değeri atayınca kutu içeriğine göre otomatik işlem yapacaktır. Eğer taşma olmuyorsa kaydırma çubuğu çıkmayacaktır. Ama eğer içerik taşıyorsa kaydırma çubuğu çıkacaktır.</p>
<pre class="brush: css; title: ; notranslate">
div#solMenu {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 120px;
background: #BBB;
overflow: hidden;
}
</pre>
<p align="center"><img src="/images/overflow_auto.gif" alt="overflow:auto" width="223" height="139"></p>
<p>Dikkat ederseniz scroll&#8217;dan farklı olarak sadece dikey kaydırma çubuğu çıkmıştır. Yatayda bir taşma olmadığı için yatay kaydırma çubuğu çıkmamıştır. </p>
<p>Örneği görüntülemek için <a href="/dokumanlar/overflow_test.html">tıklayınız.</a></p>
<p>Safari&#8217;nin eski sürümlerinde  sorun çıkarıyor Javascript ile bir çözüm var. <a href="http://blog.deconcept.com/2005/03/25/safari-and-links-to-elements-in-overflow-auto-content">http://blog.deconcept.com/2005/03/25/safari-and-links-to-elements-in-overflow-auto-content</a> </p>
<p>Operadaki sorun için ise sadece min-height ve min-width özelliklerini kullanmak yeterli. <a href="http://nontroppo.org/test/Op7/overflowbug.html">http://nontroppo.org/test/Op7/overflowbug.html</a></p>
<p>Bunların dışında Internet Explorer&#8217;ün tescillediği  ve CSS3 standartlarında yer alan iki adet özellik daha vardır. overflow-x ve overflow-y</p>
<p><strong>overflow-x ve overflow-y: </strong> Internet Explorer5x ve üzeri sürümlerden  itibaren desteklediği bu özellikler aslında overflow gibi çalışır. Buradaki x ve y&#8217;dende anlaşıldığı gibi overflow özelliğini yatay ve dikey olarak ikiye ayıran özelliklerdir. overflow-x özelliği yatayda taşma olması durumunda taşan kısımlara uygulanacak özellikleri(visible, scroll, hidden ve auto) atmamızı sağlar. overflow-y&#8217;de dikeyde aynı şeyi yapar. Firefox&#8217;unda 1.1 versiyonundan itibaren bu özellikleri desteklemesi kullanılabilirliğini arttırmıştır. Tabi biraz daha beklemekte yarar var.</p>
<p>Örnekler için <a href="http://www.brunildo.org/test/Overflowxy2.html">tıklayınız.</a> (brunildo.org&#8217;dan)</p>
<div class="tarayiciuyum"><strong>Browser Uyumu:</strong></p>
<p>  Internet Explorer 5x+ <br />
  Mozilla 1.8+ <br />
  Opera 7.5+<br />
  Safari 3 <br />
  W3C&#8217;s CSS Level 3+ <br />
  CSS Profile 3.0</div>
<h6>clip</h6>
<p class="cssozelliktanimi"><strong>Yapısı :</strong> clip: rect(&lt;üst&gt;,&lt;sağ&gt;,&lt;alt&gt;,&lt;sol&gt;)<br />
  <strong>Aldığı Değerler :</strong> rect(top, right, bottom, left) | auto | inherit<br />
  <strong>Başlangıç değeri:</strong> auto<br />
  <strong>Uygulanabilen elementler:</strong> mutlak konumlandır uygulanmış elementler (CSS2&#8242;den itibaren blok-level elementler ve replacement elementlere )<br />
  <strong>Kalıtsallık:</strong> Yok </p>
<div class="tarayiciuyum"><strong>Browser Uyumu:</strong></p>
<p>  Internet Explorer 4+ <br />
  Mozilla 1+ <br />
  Opera 3+<br />
  Safari 1 <br />
  W3C&#8217;s CSS Level 2+ <br />
  CSS Profile 2.0</div>
<div class="not">
<div class="notbaslik">
<p>Not</p>
</p></div>
<p>  W3C standartları belirlerken konumlandırmalar arasında virgül konmasını öneriyor. Ancak garip bir şekilde IE virgül kullanılan örnekleri normal modda farklı yorumlamaktadır. Acayip modda ise doğru yorumlamaktadır. Ne yapalım bizde tüm tarayıcılara uygun olması için virgül kullanamayacağız </p></div>
<p>clip, elementin içeriğinin belli bir bölümünün gösterilmesi sağlar. Başlangıç değerinin auto atanmış olması herhangi bir kırpmanın olmayacağını gösterir. </p>
<p>Resim düzenleme araçlarında yaptığımız kırpma işini CSS yardımıyla yapmamızı sağlayan bu özelliği Javascript ile birlikte kullanarak çok güzel uygulamalar yapabiliriz. </p>
<p>Clip&#8217;e atanan değerler <strong>em</strong> cinsinden verilerek esnek sonuçlar elde edilebilir. Ayrıca negatif değerlerde alabilir. Negatif değer atandığında element kutusunun dışına doğru kırpma yapacaktır. </p>
<p align="center"><img src="/images/kirpma.jpg" alt="kırpma" width="441" height="528"></p>
<p>Bir örnek yapalım.</p>
<p>CSS kodu:</p>
<pre class="brush: css; title: ; notranslate">
.kirpma{
position:absolute;
clip:rect(50px 130px 153px 40px);
}
</pre>
<p>HTML kodu:</p>
<pre class="brush: xml; title: ; notranslate">&lt;ol&gt;
&lt;div class=&quot;kirpma&quot;&gt;
&lt;img src=&quot;recepemice.jpg&quot; alt=&quot;ahmet emice&quot; /&gt;
&lt;/div&gt;
</pre>
<p align="center"><img src="/images/kirpma_ornek.jpg" alt="Kırpma " width="269" height="359"><br />
  örneğin görüntüsü</p>
<p>Örneği görmek için <a href="/dokumanlar/clip_test.html">tıklayınız.</a></p>
<h3>visibility</h3>
<p class="cssozelliktanimi"><strong>Yapısı :</strong> visibility: &lt;deger&gt;<br />
  <strong>Aldığı Değerler :</strong> visible | hidden | collapse | inherit<br />
  <strong>Başlnagıç değeri:</strong> visible<br />
  <strong>Uygulanabilen elementler:</strong> tüm elementlere<br />
  <strong>Kalıtsallık:</strong> Yok </p>
<div class="tarayiciuyum"><strong>Browser Uyumu:</strong></p>
<p>  Internet Explorer 4+ <br />
  Mozilla 1+ <br />
  Opera 3.6+<br />
  W3C&#8217;s CSS Level 2+ <br />
  CSS Profile 2.0</div>
<p>Görünürlük(visibility) özelliği nesnelerin görünümünü belirler. Değeri visible ise element görünür. Eğer değeri hidden ise element görünmezdir. Eğer bir elementin görünürlük değeri hidden olarak atanmış ise element sayfa yapısındaki yeri korur ancak gözle görülmez. </p>
<pre class="brush: xml; title: ; notranslate">&lt;ol&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;visibility Örneği&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;style&gt;
  &lt;li class=&quot;alternatifard&quot;&gt;body {font-family: sans-serif; font-weight: bold; font-size: 14px}&lt;/li&gt;
&lt;/style&gt;
  &lt;li class=&quot;alternatifard&quot;&gt;&lt;/head&gt;
&lt;body&gt;
&lt;h1 style=&quot;visibility: visible&quot;&gt;Görünür Başlık&lt;/h1&gt;
&lt;h1 style=&quot;visibility: hidden; background-color:#f00; border:1px solid #000; margin:20px 0; padding-top:10px;&quot;&gt;Görünmez Başlık&lt;/h1&gt;
&lt;h1 style=&quot;visibility: visible&quot;&gt;Görünür Başlık&lt;/h1&gt;
&lt;p style=&quot;font-size: large&quot;&gt;Görünür metin parçası&lt;b style=&quot;visibility: hidden&quot;&gt;görünmez metin parçası&lt;/b&gt; ve burası görünüyor.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;/ol&gt;</pre>
<p align="center"><img src="/images/visibility.gif" alt="Visibility örneği" width="450" height="326"></p>
<p>Örneği görmek için <a href="/dokumanlar/visibility.html">tıklayınız.</a></p>
<p>Örnekte gördüğümüz gibi element görünmediği halde sayfadaki yerini korumaktadır. Ayrıca gizli nesneye atanan kenarlık ve zemin rengide görünmemektedir. Ancak elementin konumu etkileyen kenar boşluğu(magrin) ve padding değeri görünmese de sayfayı etkilemektedir. </p>
<p>Ata elementi görünmez olan bir çocuk elemente eğer görünür özelliği atanmış ise ata element görünmez ancak çocuk element görünür. Bu ters bir durum olarak görünür ancak bu bize avantaj sağladığı durumlarda yok değildir. Örnek yaparsak</p>
<p>CSS kodu</p>
<pre class="brush: css; title: ; notranslate">
p.gorunmez {visibility: hidden;}
p.gorunmez strong {visibility: visible;}
</pre>
<p>HTML kodu </p>
<pre class="brush: css; title: ; notranslate">
&lt;p class=&quot;gorunmez&quot; &lt;strong&gt;Lorem ipsum dolor sit amet&lt;/strong&gt;, consectetuer adipiscing elit. Cras sem. In  sagittis mauris eu turpis. Mauris ut lorem nec pede consequat suscipit. &lt;/p&gt;
</pre>
<p align="center"><img src="/images/visibility2.gif" alt="visibility hiyerarşi" width="450" height="183"></p>
<p>Örneği görmek için <a href="/dokumanlar/visibility2.html">tıklayınız.</a></p>
<p><strong>visiblity:collapse</strong> özelliği vardır. collapse tablo elementler için hidden etkisi yapar. Ancak burada bir fark var gizlene elementler yerini korumaz. Ayrıca bu özelliği tüm tarayıcılar desteklemiyor, bunun yerine display:none özelliği kullanılır.</p>
<h3>Kaynaklar</h3>
<ul>
<li><a href="http://www.w3.org/TR/CSS21/visufx.html">http://www.w3.org/TR/CSS21/visufx.html</a></li>
<li><a href="http://www.seifi.org/css/creating-thumbnails-using-the-css-clip-property.html">http://www.seifi.org/css/creating-thumbnails-using-the-css-clip-property.html</a></li>
<li><a href="http://www.ibloomstudios.com/articles/misunderstood_css_clip/">http://www.ibloomstudios.com/articles/misunderstood_css_clip/</a></li>
<li><a href="http://www.w3schools.com/css/pr_pos_clip.asp">http://www.w3schools.com/css/pr_pos_clip.asp</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/kutu-modeli-gorunurluk-ozellikleri/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>CSS ile Kutu modeli, sorunları ve çözümleri</title>
		<link>http://www.fatihhayrioglu.com/kutu-modeli-sorunlari-ve-cozumleri/</link>
		<comments>http://www.fatihhayrioglu.com/kutu-modeli-sorunlari-ve-cozumleri/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 21:37:01 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standartları]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Border]]></category>
		<category><![CDATA[Box-Model]]></category>
		<category><![CDATA[düzeltme]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[kenar-çizgisi]]></category>
		<category><![CDATA[kenar-dış-boşluğu]]></category>
		<category><![CDATA[kenar-iç-boşluğu]]></category>
		<category><![CDATA[Kutu-Modeli]]></category>
		<category><![CDATA[Margin]]></category>
		<category><![CDATA[Padding]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=13</guid>
		<description><![CDATA[CSS&#8217;e geçişte en çok düşündüren konu niye CSS geçelim ve CSS&#8217;in avantajları nelerdir? CSS&#8217;in avantajı bize web sayfasındaki elemanlara daha fazla müdahele etme imkanı vermesidir. Burada bunun en güzel örneklerinden birini göreceğiz. CSS tüm HTML elementlerini bir dikdörtgen kutu içine konmuş varsayarak ona göre pozisyonları ve boyutlarını konrol eder. Bu elementler her zaman bir padding, [...]]]></description>
			<content:encoded><![CDATA[<p>CSS&#8217;e geçişte en çok düşündüren konu niye CSS geçelim ve CSS&#8217;in avantajları nelerdir? CSS&#8217;in     avantajı bize web sayfasındaki elemanlara daha fazla müdahele etme imkanı vermesidir. Burada bunun en güzel örneklerinden birini göreceğiz.</p>
<p>CSS tüm HTML elementlerini bir dikdörtgen kutu içine konmuş varsayarak     ona göre pozisyonları ve boyutlarını konrol eder. Bu elementler her zaman     bir padding, margin, border ve içerik alanını içerir. <span id="more-13"></span>Aşağıdaki şekle bir     bakınız:</p>
<p align="center"><img width="271" height="110" src="http://fatihhayrioglu.com/images/basit_boxmodel.gif" /></p>
<p>Margin&#8217;ler her zaman transparandır. Border&#8217;lar üç şekilde( solid, dashed ve dotted) olabilir. Background sadece border içerisine uygulanabilir,     yani  padding ve içerik alanı kısmını içerir.</p>
<p align="center"><img width="350" height="337" src="http://fatihhayrioglu.com/images/box_model.gif" /></p>
<p>Bir elementin toplam genişliği; sol+sağ marginleri, sol+sağ padding&#8217;leri,     sol+sağ border&#8217;ları ve elementin içeriğini kapsar. Margin&#8217;ler, padding&#8217;ler     ve border&#8217;lar opsiyonel elementlerdir fakat başlangıçta bunların değerleri     &#8217;0&#8242; olarak belirlenmiştir. Yükseklik içinde durum aynıdır. üst-alt margin     değerleri, üst-alt padding değerleri, üst-alt border değerleri ve içerik     alanı yükseliği toplamı <acronym title="height">yükseklik</acronym> değerini oluşturur.</p>
<p>Box modeli iki elementi bulunur. Blok-level elementler ve inline-level elementler.</p>
<p><strong>Blok-level elementler :</strong> Blok-level elementin görünüş formatı bir kutu gibidir.     Blok-level elementler inline elementleri ve diğer blok-level elementleri     içerebilir. Tipik özellikleri yeni bir satır başlangıcı yapmalarıdır. Örnek:     h6, p, li vd.</p>
<p><strong>Inline-level Elementler :</strong> Inline elementler bir içerik gibi görünür, diğer bir     inline elelementi veye bir metni içere bilir. Genelde yeni satır veya boşluk     oluşturmazlar. Örnek: a, strong, span vd.</p>
<p>Tüm kutu modelleri aşağıdaki bölümleri içerir:</p>
<p><strong>İçerik Alanı:</strong> Elementin asıl içeriğini oluşturan kısmıdır. Metin ve nesneler     içerir.</p>
<p><strong>Padding :</strong> Elementin kenarındaki dolgu alanıdır.</p>
<p><strong>Border :</strong> Elementin kenarlıklarıdır.</p>
<p><strong>Margin:</strong> Elementin kenar boşluklarıdır.</p>
<h6>Box Model Sorunu ve Çözümü</h6>
<p>W3C&#8217;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.</p>
<p>Buraya kadar çok güzel ancak tüm web tarayıcıları bu durumu aynı şekilde yorumlamaz. IE&#8217;un IE6/strict&#8217;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.</p>
<pre class="brush: css; title: ; notranslate">
#icerik{
    width:200px;
    padding:10px;
    border:5px solid #000;
}
</pre>
<p>Standart web tarayıcıları bu durumu şöyle yorumlayacaklardır.</p>
<p>200px + 10px sol kenar iç boşluğu + 5px sol kenar çizgisi + 10px sağ kenar iç boşluğu + 5px sağ kenar çizgisi = 230px toplam genişlik</p>
<p>kutu elemetinin genişliği 230px olacaktır.</p>
<p>Ancak <acronym title="İnternet Explorer">IE</acronym>&#8216;un IE6/strict&#8217;den önceki versiyonlar için kutu elementinin genişlik değeri 200px&#8217;dir.</p>
<p>Margin(Kenar dış boşluğu) değeri width değerini direk etkilemese de dolaylı olarak etkiler. Kutular arasındaki genişliği hesaplarken margin değerlerinide dikkate almalıyız. CSS ile sayfa yapıların oluştururken kenar dış boğluklarını(margin) da dikkate elmalıyız.</p>
<p>Bu sorunun çözümü için üretilmiş bir çok yöntem vardır. Ancak bence en sağlamı <a target="_blank" href="http://www.tantek.com/CSS/Examples/boxmodelhack.html">tantek</a>&#8216;in ürettiği koddur ve burada bundan bahsedeceğim.</p>
<pre class="brush: css; title: ; notranslate">
#icerik{
    width:230px;
    padding:10px;
    border:5px solid #000; /* Bundan sonraki kısmı ie5win sakla */
    voice-family: &quot;\&quot;}\&quot;&quot;;
    voice-family:inherit;
    width:200px;
}
</pre>
<p>Burdaki ilk genişilk değeri(2. satırdaki) IE&#8217;un IE6/strict&#8217;den önceki versiyonların yorumlayacağı genişlik değeri, ikinci genişlik değeri(7. satırdaki) ise standart yorumu destekleyen web tarayıcılarının kullanacağı değerdir.</p>
<p>Bu kodlamada son olarak Opera 5 için bir kod ekleyeceğiz.</p>
<pre class="brush: css; title: ; notranslate">
#icerik{
    width:230px;
    padding:10px;
    border:5px solid #000; /* Bundan sonraki kısmı ie5win sakla */
    voice-family: &quot;\&quot;}\&quot;&quot;;
    voice-family:inherit;
    width:200px;
}
html&gt;body #icerik {
	width:200px;
}
</pre>
<p>Not: Aynı şeyler yükseklik(height) içinde geçerlidir.</p>
<h6>Kaynaklar</h6>
<ul>
<li><a href="http://tantek.com/CSS/Examples/boxmodelhack.html">http://tantek.com/CSS/Examples/boxmodelhack.html</a></li>
<li><a href="http://css-discuss.incutio.com/?page=BoxModelHack">http://css-discuss.incutio.com/?page=BoxModelHack</a></li>
<li><a href="http://www.createwebmagic.com/css101/lesson2/?inc=part3">http://www.createwebmagic.com/css101/lesson2/?inc=part3</a></li>
<li><a href="http://www.amazon.com/gp/product/0764579851/ref=sr_11_1/103-3062475-1085468?%5Fencoding=UTF8">CSS Hacks and Filters : Making Cascading Stylesheets Work</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/kutu-modeli-sorunlari-ve-cozumleri/feed/</wfw:commentRss>
		<slash:comments>60</slash:comments>
		</item>
	</channel>
</rss>

