<?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; kapsayamama-sorunu</title>
	<atom:link href="http://www.fatihhayrioglu.com/tag/kapsayamama-sorunu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fatihhayrioglu.com</link>
	<description>{ CSS, HTML ve Javascript }</description>
	<lastBuildDate>Sat, 31 Jul 2010 09:20:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=2010</generator>
		<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;">
&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;">
/************************************************** 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;">
&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;">
#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;">
&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;">
&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;">
&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;">
&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;">
#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;">
&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;">
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;">
&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;">
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;">
&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;">
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;">
#ortaIcerikAlani{float:left; width:440px; margin-right:20px}
</pre>
<p>Sonra üstteki resmi ekliyoruz.</p>
<pre class="brush: xml;">
&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;">
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;">
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;">
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;">
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;">
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;">
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;">
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;">
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;">
#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;">
&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;">
&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;">
#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;">
&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;">
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;">
&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;">
/* 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;">
#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;">
#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;">
#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;">
&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;">
#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;">
&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>30</slash:comments>
		</item>
		<item>
		<title>Sayfa Dibine Yapışık Alt Alanlar(Sticky Footer)</title>
		<link>http://www.fatihhayrioglu.com/sayfa-dibine-yapisik-alt-alanlarsticky-footer/</link>
		<comments>http://www.fatihhayrioglu.com/sayfa-dibine-yapisik-alt-alanlarsticky-footer/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 11:58:39 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standartları]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[alta-yapışık-alanlar]]></category>
		<category><![CDATA[kapsayamama-sorunu]]></category>
		<category><![CDATA[sticky-footer]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=1161</guid>
		<description><![CDATA[Bir çok sitede karşılaştığımız sayfanın dibine yapışık alt kısımları bu makalede anlatmaya çalışacağım. Bunu hiç javascript kullanmadan sadece css yardımı ile yapacağız. Site içeriğinin az olduğu durumlarda sayfanın alt kısımları normal akış içerisinde ise yukarı doğru kayacaktır ve hoş olmayan görüntülere neden olacaktır. Bu gibi durumları engellemek için sayfamızın alt kısımlarını sayfa dibine yapıştırmalıyız, böylece [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.fatihhayrioglu.com/wp-content/yapisik_altalan.gif" alt="yapisik_altalan" title="yapisik_altalan" width="233" height="323" class="alignright size-full wp-image-1166" />Bir çok sitede karşılaştığımız sayfanın dibine yapışık alt  kısımları bu makalede anlatmaya çalışacağım. Bunu hiç javascript  kullanmadan sadece css yardımı ile yapacağız.</p>
<p>Site  içeriğinin az olduğu durumlarda sayfanın alt kısımları normal akış  içerisinde ise yukarı doğru kayacaktır ve hoş olmayan görüntülere neden  olacaktır. Bu gibi durumları engellemek için sayfamızın alt kısımlarını  sayfa dibine yapıştırmalıyız, böylece sayfa içeriğinin az olması ve çok  olması durumunda  alt kısmın yerini aynı olacaktır.</p>
<p>Bu işi  yapmak için bir kaç türlü yöntem geliştirilmiştir, mantık olarak aynı  olan bu yöntemlerde farklı tarayıcılardaki sorunlara çözüm bulmak için  farklılıklar içerir. Ben bunlarda bazıları çeşitli projelerimde  uyguladım, ancak makaleyi yazarken en iyisi hangisi ise onu yazmaya  karar verdim. <a title="cssstickyfooter.com" href="http://www.cssstickyfooter.com" id="zf92">cssstickyfooter.com</a>&#8216;um anlattığı yöntem benim gördüğüm en iyi yöntem.</p>
<p>Kodumuzu yazmaya başlarsak.</p>
<p>XHTML kodu:</p>
<pre class="brush: xml;">
&lt;div id=&quot;kapsul&quot;&gt;
    &lt;div id=&quot;ustAlan&quot;&gt;
		&lt;h1&gt;Lorem ipsum dolor sit amet&lt;/h1&gt;
    &lt;/div&gt;
    &lt;div id=&quot;icerikAlani&quot;&gt;
        &lt;div id=&quot;icerik&quot;&gt;
        &lt;/div&gt;

        &lt;div id=&quot;icerikSagAlani&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;altAlan&quot;&gt;
&lt;/div&gt;
</pre>
<p>XHTML kodunda dikkate değer olan kısım içerik alanı ve alt alanı iki farklı bölüm olarak kodlamamız. <strong>altAlan</strong> ve diğer alanları kapsayan bir kapsayıcı katmandan(<strong>#kapsul</strong>) oluşuyor kodumuz. Bizim yaptığımız örnekte üst alanı ve iki kolonlu içerik kısmını kapsayıcı katman içine alıyoruz.</p>
<p>CSS Kodu</p>
<pre class="brush: css;">
html, body, #kapsul {height: 100%;}
body &gt; #kapsul {height: auto; min-height: 100%;}
#icerik {padding-bottom: 133px;} /* altAlan yukseligi ile ayni olmali */
#altAlan {
	position: relative;
    margin-top: -133px; /* altAlan yuksekliginin eksi degeri */
    height: 133px;
    clear:both;
}
</pre>
<p>Buradaki 133px tanımına dikkat etmemiz gerekiyor. 133px altAlan yüksekliğidir ve 3 yerde birden aynı değeri kullandığımıza dikkat edeniz.</p>
<p>Kodu incelersek birinci ve ikinci satırda yüksekliklerin tüm alanı kapsaması için farklı tarayıcılar için %100 tanımını yapıyoruz.</p>
<p>3. satırda alta yapışık alan kadar padding değeri vererek içerik kısmının alt kısmın altında kalmasını engelliyoruz.</p>
<p>4-8 satır arasında alt alan tanımlarımızı yapıyoruz. Göreceli konumlandırdığımız alanı içerik alanında padding-bottom değeri ile açtığımız boşluğa yerleştirmek için negatif üst kenar boşluğu değeri veriyoruz. </p>
<p>Bu yöntemde float uygulanmış içerik kısmında tam alanı kapsayamama sorunu  ile karşılaşıyoruz. Float uygulanmış alanların kapsayamama sorunu  çözmek için <a title="http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu/" href="http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu/">http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu/</a> makalemiz anlattığımız yöntemi kullanıyoruz.</p>
<pre class="brush: css;">
.kapsayamamaSorunu:after {content: &quot;.&quot;; display: block; height: 0; clear: both; visibility: hidden;}
.kapsayamamaSorunu {display: inline-block;}
/*IE-mac de bu bolumu sakla \ */
* html .kapsayamamaSorunu {height: 1%;}
.kapsayamamaSorunu {display: block;}
/* IE-mac bu bolumu saklam artik */
</pre>
<p>Bu sınıfı tanımlıyoruz ve içeriği kapsayan(#icerikAlani) katmana atıyoruz.</p>
<pre class="brush: xml;">
&lt;div id=&quot;kapsul&quot;&gt;
    &lt;div id=&quot;ustAlan&quot; class=&quot;kapsayamamaSorunu&quot;&gt;
		&lt;h1&gt;Lorem ipsum dolor sit amet&lt;/h1&gt;
    &lt;/div&gt;
    &lt;div id=&quot;icerikAlani&quot; class=&quot;kapsayamamaSorunu&quot;&gt;
        &lt;div id=&quot;icerik&quot;&gt;
        &lt;/div&gt;

        &lt;div id=&quot;icerikSagAlani&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;altAlan&quot;&gt;
&lt;/div&gt;
</pre>
<p>Bu yöntemin ryanfait.com&#8217;un yöntemine göre en büyük avantajı bence  ryanfait.com&#8217;un yöntemindeki anlamsız tampon katmanı gibi bir fazla  kodlamadan kaçınış oluyoruz.</p>
<p>Örneği görüntülemek için <a href="/dokumanlar/sayfa_dibine_yapisik.html">tıklayınız.</a></p>
<h3>Sorunlar ve Çözümleri</h3>
<p>-  Benim kullandığım projede body ve üstAlan&#8217;daki margin-top değeri sorun  çıkardı. Bunun yerine padding kullanarak sorunu çözdüm. Üst kısım  body&#8217;deki margin-top ve margin-bottom tanımları sorun çıkarıyor, bunun  yerine padding kullanın.</p>
<p>- Ayrıca yazı tipi boyutunu büyük  kullanmak isteyen kullanıcılarda sorun çıkabileceği söyleniyor. Eğer  yazı tipi boyutunu piksel(px) vb. kesin değerler ile belirlerseniz bu  tip sorunları engelleyebilirsiniz.</p>
<p>- Son olarakta asp.net ile  oluşturulan sayfalarda &lt;form&gt; elemanı ile kapsanan sayfanızda  sorun çıkabilir. Bunu engellemek için kodunuzu</p>
<pre class="brush: css;">
	html, body, form, #kapsul {height: 100%;}
</pre>
<p>şeklinde değiştirmelisiniz. <a title="http://www.cssstickyfooter.com/using-sticky-footer-code.html" href="http://www.cssstickyfooter.com/using-sticky-footer-code.html"></a></p>
<h3>Kaynaklar</h3>
<ul>
<li><a title="http://www.cssstickyfooter.com/" href="http://www.cssstickyfooter.com/">http://www.cssstickyfooter.com/</a></li>
<li><a title="http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/" href="http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/">http://www.lwis.net/journal/2008/02/08/pure-css-sticky-footer/</a></li>
<li><a title="http://ryanfait.com/resources/footer-stick-to-bottom-of-page/" href="http://ryanfait.com/resources/footer-stick-to-bottom-of-page/">http://ryanfait.com/resources/footer-stick-to-bottom-of-page/</a>
    </li>
<li><a title="http://cokbasit.blogspot.com/2009/01/yapkan-taban-sticky-footer.html" href="http://cokbasit.blogspot.com/2009/01/yapkan-taban-sticky-footer.html">http://cokbasit.blogspot.com/2009/01/yapkan-taban-sticky-footer.html</a></li>
<li><a title="http://css-tricks.com/sticky-footer/" href="http://css-tricks.com/sticky-footer/">http://css-tricks.com/sticky-footer/</a></li>
<li><a title="http://www.waycoolwebdesign.com/Blog/2008/11/15/CSS-Sticky-Footer" href="http://www.waycoolwebdesign.com/Blog/2008/11/15/CSS-Sticky-Footer">http://www.waycoolwebdesign.com/Blog/2008/11/15/CSS-Sticky-Footer</a></li>
<li><a title="http://stever.ca/web-design/css-sticky-footer/" href="http://stever.ca/web-design/css-sticky-footer/">http://stever.ca/web-design/css-sticky-footer/</a></li>
<li><a title="http://brassblogs.com/blog/sticky-footer" href="http://brassblogs.com/blog/sticky-footer">http://brassblogs.com/blog/sticky-footer</a></li>
<li><a title="http://www.davidjrush.com/blog/2009/01/css-sticky-footer/" href="http://www.davidjrush.com/blog/2009/01/css-sticky-footer/">http://www.davidjrush.com/blog/2009/01/css-sticky-footer/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/sayfa-dibine-yapisik-alt-alanlarsticky-footer/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Float Uygulanmış Elementleri Tam Kapsayamama Sorunu İpuçları</title>
		<link>http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu-ipuclari/</link>
		<comments>http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu-ipuclari/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 08:18:49 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[ipucu]]></category>
		<category><![CDATA[kapsayamama-sorunu]]></category>
		<category><![CDATA[sorun]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=881</guid>
		<description><![CDATA[1- Firefox 3&#8242;de form elemenalarının Tıklanamaması Sorunu Daha önce bir kaç kez bahsettiğim ve web kod yazarlarının birçok zaman karşılaştığı &#8216;Float uygulanmış elementlerin kapsayamama sorunu&#8217; bugün xpur(Gökhan)&#8217;un bir sorusu üzerine bu yazıyı yazma gereği duydum. Kapsayamama sorunu yaşadığımız katman içinde eğer selectbox var ise Firefox 3&#8242;de bu selectbox tıklanabilir olmuyor. Açılmıyor yani Kodumuz aşağıdaki gibi [...]]]></description>
			<content:encoded><![CDATA[<h3>1- Firefox 3&#8242;de form elemenalarının Tıklanamaması Sorunu</h3>
<p>Daha önce bir kaç kez bahsettiğim ve web kod yazarlarının birçok zaman karşılaştığı &#8216;Float uygulanmış elementlerin kapsayamama sorunu&#8217; bugün xpur(Gökhan)&#8217;un bir sorusu üzerine bu yazıyı yazma gereği duydum.</p>
<p>Kapsayamama sorunu yaşadığımız katman içinde eğer selectbox var ise Firefox 3&#8242;de bu selectbox tıklanabilir olmuyor. Açılmıyor yani</p>
<p>Kodumuz aşağıdaki gibi</p>
<pre class="brush: css;">
.kapsayamamaSorunu: after {
    content: &quot;.&quot;;
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
.kapsayamamaSorunu {display: inline-block;}
/*IE-mac de bu bolumu sakla \ */
* html .kapsayamamaSorunu {height: 1%;}
.kapsayamamaSorunu {display: block;}
/* IE-mac bu bolumu saklam artik */
</pre>
<p>sorunu çözümü ise .kapsayamamaSorunu ile :after arasındaki boşluğu kapatmak .kapsayamamaSorunu:after</p>
<pre class="brush: css;">
.kapsayamamaSorunu:after {
    content: &quot;.&quot;;
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
</pre>
<p>Küçük bir nokta olsa da zamanı gelince insanın çok zamanını alıyor.</p>
<h3>2- Sorunun Kısayolu</h3>
<p>Bu konuda hakkında bir başka ipucuda float&#8217;uygulanmış nesnelerde bu sorun ile çok fazla karşılaşıyoruz, ben eskiden her bir sorunlu eleman için bu kodu yazıyordum. Sonra bunu bir sınıfa atayıp gerekli yerlerde bu sınıfı kullanmanın daha avantajlı olacağını düşündüm. </p>
<pre class="brush: css;">
.kapsayamamaSorunu:after {content: &quot;.&quot;; display: block; height: 0; clear: both; visibility: hidden;}
.kapsayamamaSorunu {display: inline-block;}
/*IE-mac de bu bolumu sakla \ */
* html .kapsayamamaSorunu {height: 1%;}
.kapsayamamaSorunu {display: block;}
/* IE-mac bu bolumu saklam artik */
</pre>
<pre class="brush: xml;">
&lt;div id=&quot;icerik&quot; class=&quot;kapsayamamaSorunu&quot;&gt;
    &lt;ul&gt;
        &lt;li&gt;
            &lt;select&gt;
                &lt;option value=&quot;-1&quot;&gt;Seçiniz&lt;/option&gt;
                &lt;option value=&quot;1&quot;&gt;Deneme1&lt;/option&gt;
                &lt;option value=&quot;2&quot;&gt;Deneme2&lt;/option&gt;
            &lt;/select&gt;
        &lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;resimAlani kapsayamamaSorunu&quot;&gt;
	&lt;img src=&quot;images/deneme.jpg&quot; width=&quot;150&quot; height=&quot;80&quot; /&gt;
&lt;/div&gt;
</pre>
<p>#icerik ve .resimAlani bu sorun ile karşılaştığımızı düşünelim. Tek tek bu kodu yazmaktansa .kapsayamamaSorunu isimli bir sınıf tanımlayıp sorunumuz ile karşılaştığımız her yerde bu sınıfı tanımlarız. Tek tanımla ile işimizi hallettik.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu-ipuclari/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Float Uygulanmış Elementleri Tam Kapsayamama Sorunu</title>
		<link>http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu/</link>
		<comments>http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 07:47:44 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Standartları]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[:after]]></category>
		<category><![CDATA[clear]]></category>
		<category><![CDATA[clearfix]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[kapsayamama-sorunu]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=373</guid>
		<description><![CDATA[Float CSS ile web sayfası kodlamak için en çok kullandığımız özelliktir. Beni bu makaleyi yazmaya iten en önemli etkende float&#8217;ın çok fazla kullanılması ve bu sorunla birçok kez karşılaşmamdır. Sorun; float uygulanmış bir elementi içeren kapsayıcı element içeriğine göre genişlememesidir. Bu sorun zemin rengi/resmi uygulanmış veya kenarlık atanmış kapsayıcılarda daha iyi görünür. Sorun şekil.1&#8242;de gösterildiği [...]]]></description>
			<content:encoded><![CDATA[<p>Float CSS ile web sayfası kodlamak için en çok kullandığımız özelliktir. Beni bu makaleyi yazmaya iten en önemli etkende float&#8217;ın çok fazla kullanılması ve bu sorunla birçok kez karşılaşmamdır.<br />
  <span id="more-373"></span>
</p>
<p>Sorun; float uygulanmış bir elementi içeren kapsayıcı element içeriğine göre genişlememesidir. Bu sorun zemin rengi/resmi uygulanmış veya kenarlık atanmış kapsayıcılarda daha iyi görünür. Sorun şekil.1&#8242;de gösterildiği şekilde kapsayıcı elementin float uygulanmış elementi kapsamamasıdır.</p>
<p>Bu bir hata değildir. Ama sayfalarımızı kodlarken genelde bu durumun meydana gelmesinden hoşlanmayız. </p>
<p align="center"><img src="/images/clearfix_sorun.gif" alt="float sorunu" width="421" height="195"><br />
  <strong>şekil.1</strong> float sorun</p>
<p>Bir örnek yaparsak daha iyi anlayacağız. </p>
<p>CSS kodu:</p>
<pre class="brush: css;">
.kapsul {
    border: 1px solid #000;
    padding: 2px;
}
img {
	float: left;
}
</pre>
<p>Html kodu:</p>
<pre class="brush: xml;">
&lt;div class=&quot;kapsul&quot;&gt;
    &lt;img src=&quot;koy_01.jpg&quot; alt=&quot;Bizim köy&quot; weight=&quot;250&quot; height=&quot;160&quot; /&gt;
    &lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. &lt;/p&gt;
&lt;/div&gt;
</pre>
<p align="left">Örneği görmek için <a href="/dokumanlar/float_sorunu.html">tıklayınız.</a></p>
<p>Floatuygulanan resim div(.kapsul) içindeki resme göre genişlemez. Duruma tersten bakarsakbazen bu görünümü kullanabileceğimiz durumlarda olabilir, yani bu durumu bazı durumlarda kullanabiliriz. Bu durum bir hata değildir. CSS&#8217;in birhatası hiç değildir. Biz genelde float uyguladığımız kutuların içeriklerine göre genişlemesini isteriz. </p>
<p>Float özelliğiNetscape1.1 ile gelen bir özelliktir.Eğer kutularımıza kenarlık ataması yaparsak bu sorunu daha iyi görürüz.Biz kutunun içeriğe göre uzamasını yani sonunun temizlenmesini isteriz. <strong>.kapsul</strong> uygulanan div elementin tüm içeriği kapsaması için sonuna <strong>clear</strong> özelliği atanmış bir nesne koymalıyız. Bu işlemi farklı yöntemlerle yapabiliriz. </p>
<h6>Boş bir elemente clear atayarak çözmek</h6>
<p>Geneldekutuların içeriğine göre uzamasını isteriz. Bu sorunu çözmek küçük bir yapısalekleme yapmak yeterli olacaktır.</p>
<pre class="brush: xml;">
&lt;div class=&quot;kapsul&quot;&gt;
    &lt;img src=&quot;resim.png&quot;&gt;
    &lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. &lt;/p&gt;
    &lt;div style=&quot;clear:both;&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Buşekilde sorunumuzu çözmüş oluruz ancak bu sorunla karşılaştığımız heryerde bu eklemeyi yapmak zorun kalacağız ve sırf bu düzeltme için boşbir div ekleyeceğiz. Buda mantıklı(semantik) kodlama açısından uygun değildir. Pekibunu başka nasıl çözeriz. </p>
<h6>:after ile çözüm</h6>
<p>CSS2ile birlikte gelen <strong>:after</strong> özelliğini kullanarak çözebiliriz. Css(:after) kodu ile bir elementinsonuna bir içerik ekleyebiliyoruz ve bu elemente css komutları atayabiliyoruz.Ayrıntılı bilgi için <a title="psedu elementleri ve seçicileri " href="http://www.fatihhayrioglu.com/?p=86">tıklayınız</a>.Bu özellikten yararlanarak kutunun sonuna bir nokta koyup bu noktaya<strong>clear</strong>(clear:both) ataması yaparsak sorunumuz çözülmüş olacaktır. Tabi birde bunoktayı görünmez yapmamız gerekiyor, Kutuların sonunda nokta görünmesipek hoş olmaya bilir. </p>
<pre class="brush: css;">
.kapsul:after {
    content: &quot;.&quot;;
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
</pre>
<p>Ayrıca<strong>display:block</strong> koyduk çünkü satır için(inline-level) elementler clear özelliğiatamasını kabul etmiyor. Aslında <strong>overflow</strong> ile de bu sorun halledilebilir ancakMozilla Firefox&#8217;un yeni sürümlerinde bu metot sorun çıkarıyor. </p>
<pre class="brush: css;">
.kapsul:after {
    content: &quot;.&quot;;
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
/*IE-mac den bu bolumu sakla \*/
* html .clearfix {height: 1%;}
/* IE-mac bu bolumu saklama artik */
</pre>
<p>Tabibu kod burada kalmıyor çünkü IE ile sorunları var. Normalde IE&#8217;nin float uygulanmış elementin tamamı kapsamama sorunu diye bir problemi(bu ilginç bir durumdur) yoktur, ancak float uygulanmış elemente genişlik ve yükseklik tanımı yapılmadığında sorun ortaya çıkıyor. Bunu engellemek için sadece IE/Win gördüğü kapsayıcı elementin yüksekliğine %1 ataması yaparız. Ancak bu kısımı IE/Mac&#8217;lerden saklamamız gerek bunun için ters bölme(\) işaretini kullanırız böylelikle IE/Mac sürümü komut satırının devam ettiğini farz ederek bu satırı görmez.</p>
<p>Sıra geldi IE/Mac&#8217;de sorunu aşmaya, IE/Mac&#8217;deki sorunu aşmak için <strong>display: inline-block;</strong> tanımlamasını yapıyoruz. Tabi diğer web tarayıcılarının bundan etkilenmemesi için IE/Mac&#8217;den gizlediğimiz alana <strong>display: block;</strong> atamasını eklemeliyiz. </p>
<pre class="brush: css;">
.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>Örneğin son halini görmek için <a href="/dokumanlar/float_cozumu.html">tıklayınız.</a></p>
<p align="center"><img src="/images/clearfix_cozum.gif" alt="float çözümü" width="421" height="210"><br />
  <strong>şekil2</strong> float sorununun çözülmüş hali</p>
<p>Bu metot bu sorunun çözümü için en ideal çözümdür. Bu sorunun çözümünde birçok insanın emeği geçmiştir. <a title="Doug" href="http://dougsdvds.info/">Doug</a>, <a title="Mark Hadley" href="http://www.nolocation.com/">Mark Hadley</a>, <a title="Matt Keogh" href="http://www.loungepenguin.co.uk/indexno.htm">Matt Keogh</a>, <a title="Holly'n John"href="http://www.positioniseverything.net/design/">Holly’n John</a> ve <a title="CSSCreator" href="http://www.csscreator.com/">Tony Asslet</a>‘a bundan dolayı şükranlarımızı sunarız. thank you guys :D Ayrıca bu konuda Türkçe bir makale yazan <a href="http://www.dahaiyi.net/yazilar/temiz-bir-clearfix-metodu/">dahaiyi.net</a>&#8216;e çok teşekkürler.</p>
<h6>CSS3 ile sorunun çözümü</h6>
<p>Bu sorunun farkında olan CSS standart geliştiriciler bu soruna kökten çözüm getirmişler. <a href="http://www.w3.org/TR/2002/WD-css3-box-20021024/#the-clear-after">clear-after</a> yeni özelliği sayesinde bu kodlardan kurtulacağız tabi biraz zaman gerekecek bu özelliği kullanmak için. Malum hala uygulamada değil CSS3.0</p>
<pre class="brush: css;">
.kapsul {
	clear-after: both;
}
</pre>
<p>Yukarıdaki örnekteki gibi tek satırlık bir kod sorunumuzu çözecektir.</p>
<h6>Sonuç</h6>
<p>Sonuç olarak şunu söyleyebiliriz ki bu sorunu çözmek için bir kaç çözüm yolu mevcut olsada şu an için <strong>:after ile çözüm</strong> başlığı altındaki kodu kullanmak bizim için uygundur. Ben web sitelerini kodlarken bu sorunla çok karşılaştığım için bir yere not ettim(Macromedia Dreamweaver &#8211; Snippets) ve lazım olduğu zaman hemen ekliyorum. Bu şekilde sorun hızlı bir şekilde çözmek mümkün oluyor. </p>
<h6>Kaynaklar</h6>
<p></p>
<ul>
<li><a href="http://www.positioniseverything.net/easyclearing.html">http://www.positioniseverything.net/easyclearing.html</a></li>
<li><a href="http://www.complexspiral.com/publications/containing-floats/">http://www.complexspiral.com/publications/containing-floats/</a></li>
<li><a href="http://www.dahaiyi.net/yazilar/temiz-bir-clearfix-metodu/">http://www.dahaiyi.net/yazilar/temiz-bir-clearfix-metodu/</a></li>
<li><a href="http://csscreator.com/?q=attributes/containedfloat.php">http://csscreator.com/?q=attributes/containedfloat.php</a></li>
<li><a href="http://css-discuss.incutio.com/?page=ClearingSpace">http://css-discuss.incutio.com/?page=ClearingSpace</a></li>
<li><a href="http://www.cs.hmc.edu/~mbrubeck/clear-after/">http://www.cs.hmc.edu/~mbrubeck/clear-after/</a></li>
<li><a href="http://www.w3.org/TR/2002/WD-css3-box-20021024/#the-clear-after">http://www.w3.org/TR/2002/WD-css3-box-20021024/#the-clear-after</a>
  </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/float-uygulanmis-elementleri-tam-kapsayamama-sorunu/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.480 seconds -->
