<?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; kenar-dış-boşluğu</title>
	<atom:link href="http://www.fatihhayrioglu.com/tag/kenar-dis-boslugu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fatihhayrioglu.com</link>
	<description>{ CSS, HTML ve Javascript }</description>
	<lastBuildDate>Thu, 09 Feb 2012 08:44:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=2012</generator>
		<item>
		<title>Kenar Boşluğu(Margin) Çökmesi</title>
		<link>http://www.fatihhayrioglu.com/kenar-boslugumargin-cokmesi/</link>
		<comments>http://www.fatihhayrioglu.com/kenar-boslugumargin-cokmesi/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 07:13:01 +0000</pubDate>
		<dc:creator>fatih.hayrioglu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[kenar-dış-boşluğu]]></category>
		<category><![CDATA[Margin]]></category>
		<category><![CDATA[margin-çökmesi]]></category>
		<category><![CDATA[marj]]></category>

		<guid isPermaLink="false">http://www.fatihhayrioglu.com/?p=362</guid>
		<description><![CDATA[Daha önceki makalelerimde devamlı margin kelimesini kullandım ancak bu makaleyi yazarken karşıma margin(marj) yerine Türkçe kenar boşluğunu kullanabileceğimi gördüm. Bu makalede ve sonraki makalelerimde bu şekilde kullanacağım. Makalelerimi yazarken devamlı Türkçe kelimeler kullanmayı tercih ediyorum, ancak bazı kelimelerin karşılılarını bulmakta zorlanıyorum. Neyse asıl konuya geçelim. Kenar boşluğu çökmesi nedir? Kenar boşluğu nasıl meydana gelir ve [...]]]></description>
			<content:encoded><![CDATA[<p>Daha önceki makalelerimde devamlı margin kelimesini kullandım ancak bu makaleyi yazarken karşıma <strong>margin</strong>(marj) yerine Türkçe <strong>kenar boşluğunu</strong> kullanabileceğimi gördüm. Bu makalede ve sonraki makalelerimde bu şekilde kullanacağım. Makalelerimi yazarken devamlı Türkçe kelimeler kullanmayı tercih ediyorum, ancak bazı kelimelerin karşılılarını bulmakta zorlanıyorum. Neyse asıl konuya geçelim.</p>
<p>Kenar boşluğu çökmesi nedir? Kenar boşluğu nasıl meydana gelir ve nasıl çözülür? Bu makalede bu sorulara cevap bulacağız.<br />
  <span id="more-362"></span>
</p>
<p>Kenar boşluğu çökmesini <a href="http://www.w3.org/TR/CSS21/box.html#collapsing-margins">W3C</a> <strong>bitişik kenar boşluğu</strong> olarak tanımlar. İki veya daha fazla kutunun(sonraki bir nesne veya kutu olabilir)arasındaki boşluğun tek kenar boşluğu şeklinde görünmesidir. </p>
<p> Bu sorun aslında bir hata olarak kabul edilmemelidir Belkide CSS ile  sayfa kodlarken karşılaştığımız ve farklı yöntemlerle çözdüğümüz bu soruna  burada açıklık getirmeye çalışacağım. </p>
<p>Sorun tam olarak; iki veya daha fazla kutu arasında dikey kenar boşluğu(margin) değeri ataması  yaptığımızda dikey kenar boşluklarının biri etki etmez biz sadece bir kenar boşluğunu görürüz.  Buna <strong>kenar boşluğu çökmesi</strong> denir. Bu kenar boşluğu değerlerinden küçük olan çöker, büyük  olanın değeri görünür. Kenar boşluğu çökmesi bir kaç farklı durumda meydana gelir. Bunları sırası ile inceleyelim.</p>
<h3>1- İki Blok-level Element Arasında Meydana Gelen Çökme</h3>
<p>Kenar boşluğu uygulanmış iki blok-level elementin dikey kenar boşluğunda bir çökme meydana gelir. Bir örnek yapalım. </p>
<p>Html kodu:</p>
<pre class="brush: css; title: ; notranslate">
&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;p&gt;
&lt;p&gt;Morbi eros lacus, volutpat at, interdum nec, dignissim at, turpis.&lt;/p&gt;
</pre>
<p>CSS kodu:</p>
<pre class="brush: css; title: ; notranslate">
p{
	margin:10px 0;
}
</pre>
<p>Örneği görmek için <a href="/dokumanlar/margin_cokmesi_01.html" title="Kenar boşluğu çökmesi">tıklayınız.</a></p>
<p> Bu kodu uyguladığımızda normalde aşağıdaki Resim-1&#8242;deki gibi bir görüntü elde  etmemiz gerekirken, kodu çalıştırdığımızda Resim-2&#8242;deki görüntüyü alırız.</p>
<p align="center"><img src="/images/margin_cokmesi2.gif" alt="Resim - 1" width="307" height="106"><br />
Resim -1 Olması gereken kenar boşluğu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p align="center"><img src="/images/margin_cokmesi1.gif" alt="Resim - 2" width="307" height="103"><br />
  Resim &#8211; 2 Görünen kenar boşluğu görünümü&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><strong>Çözüm:</strong> Çözüm için bir kaç yöntem var ben burada bir tanesi örnek olarak vereceğim, ayrıca makalenin sonundaki çözümlerde göz atmanızda yarar var.</p>
<pre class="brush: css; title: ; notranslate">
p{
	margin:10px 0;
    float:left;
    clear:both;
    width:100%
}
</pre>
<p>Bu kodlar sonrasında resim-1 deki görüntüyü alırız.</p>
<h3>2- Kenar Boşluğu Uyulanmış İç içe Bulunan Elementler Arasında Meydana Gelen Çökme</h3>
<p>Bir elemente ve içindeki elemente kenar boşluğu atadığımızda içte kalan elementin kenar boşlukları kaybolacaktır. Bir uygulama yapalım:</p>
<pre class="brush: css; title: ; notranslate">
*{
    margin:0;
    padding:0;
}
div#kapsul{
    margin:10px;
    background-color:#0066CC;
}
p{
    margin:10px;
    background-color:#0CF;
}
</pre>
<p>Html kodu yazalım:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;kapsul&quot;&gt;
	&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;/p&gt;
&lt;/div&gt;
</pre>
<p>Örneği görmek için <a href="/dokumanlar/margin_cokmesi_02.html">tıklayınız.</a> </p>
<p>Örnekte gördüğümüz gibi paragrafın kenar boşluk değerleri görünmemektedir. Sadece dıştaki kapsul nesnesinin üst ve alt kenar boşlukları etki etmektedir. </p>
<p align="center"><img src="/images/margin_cokmesi21.gif" alt="Olması gerek kenar boşluğu görünüm" width="307" height="70"><br />
  Resim -1 Görünen kenar boşluğu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p align="center"><img src="/images/margin_cokmesi22.gif" width="307" height="100"><br />
  Resim &#8211; 2 Olması gereken kenar boşluğu</p>
<p><strong>Çözüm:</strong> Bu tip kenar boşluğu çökmelerinde 1px&#8217;lik bir padding eklersek ve paragrafın kenar boşluk değerini de 1px azaltırsak sorun çözülür. Kodu aşağıdaki gibi değiştirirsek sorunumuz hallolacaktır. </p>
<pre class="brush: css; highlight: [7,11]; title: ; notranslate">
*{
    margin:0;
    padding:0;
}
div#kapsul{
    margin:10px;
    padding:1px;
    background-color:#0066CC;
}
p{
    margin:9px;
    background-color:#0CF;
}
</pre>
<h3>3- Sadece İçteki Elemente Kenar Boşluğu Uyulanmış İç içe Bulunan Elementler Arasında Meydana Gelen Çökme</h3>
<p>Diğer bir kenar boşluğu çökmesi görülen durumda yukarıdaki gibi içiçe durumda olan nesnelerden içteki paragrafta bir kenar boşluğu ataması varken(margin:10px) dıştaki <strong>kapsul</strong> nesnesinin kenar boşluğu değerinin sıfır olması durumunda meydana gelir. İçteki elementin dikey kenar boşlukları çökecektir.</p>
<pre class="brush: css; highlight: [6]; title: ; notranslate">
*{
    margin:0;
    padding:0;
}
div#kapsul{
    margin:0;
    background-color:#0066CC;
}
p{
    margin:10px;
    background-color:#0CF;
}
</pre>
<p>Html kodu yazarsak:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;kapsul&quot;&gt;
	&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;/p&gt;
&lt;/div&gt;
</pre>
<p align="center"><img src="/images/margin_cokmesi31.gif" width="307" height="80"><br />
  Resim -1 Görünen kenar boşluğu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p align="center"><img src="/images/margin_cokmesi32.gif" width="307" height="71"><br />
  Resim &#8211; 2 Olması gereken kenar boşluğu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>Örneği görmek için <a href="/dokumanlar/margin_cokmesi_03.html">tıklayınız.</a></p>
<p><strong>Çözüm:</strong> Bu durumda padding veya kenarlık(border) ataması yaparsak sorunumuz çözülecektir. </p>
<h3>Sonuç ve Çözüm Önerileri</h3>
<p>Yukarıda bazı çözüm önerileri sundak, ayrıca kenar boşluğu çökmesi hakkındaki aşağıdaki bilgilerde bize çözüm konusunda yardımcı olacaktır.</p>
<ul>
<li>Normal akışa sahip dokümanlardaki blok-level bir kutuda dikey kenar boşluğu çökmesi olur.</li>
<li><strong>Float</strong> uygulanmış nesnelerde çökme olmaz.</li>
<li>Konumlandırma atamaları(<strong>position:absolute</strong> ve <strong>postion:relative</strong>) yapılmış nesnelerde çökme olmaz.</li>
<li><strong>overflow</strong> uygulanmış nesnelerde ve alt elementlerinde çökme olmaz. </li>
<li><strong>inline-block</strong> elementlerde çökme olmaz.</li>
<li><strong>html</strong> ve <strong>body</strong> elementlerine uygulanan kenar boşluğunda çökme olmaz.</li>
</ul>
<h3>Kaynaklar</h3>
<ul>
<li><a href="http://www.w3.org/TR/CSS21/box.html#collapsing-margins">http://www.w3.org/TR/CSS21/box.html#collapsing-margins</a></li>
<li><a href="http://www.andybudd.com/archives/2003/11/no_margin_for_error/">http://www.andybudd.com/archives/2003/11/no_margin_for_error/</a></li>
<li><a href="http://www.search-this.com/2007/05/07/wheres-my-margin-gone-or-why-111/">http://www.search-this.com/2007/05/07/wheres-my-margin-gone-or-why-111/</a></li>
<li><a href="http://www.ryznardesign.com/web_coding/tests/2004/preventing_margin_collapse.html">http://www.ryznardesign.com/web_coding/tests/2004/preventing_margin_collapse.html</a></li>
<li><a href="http://maxdesign.com.au/presentation/workshop/slide46.htm">http://maxdesign.com.au/presentation/workshop/slide46.htm</a></li>
<li><a href="http://reference.sitepoint.com/css/collapsingmargins">http://reference.sitepoint.com/css/collapsingmargins</a></li>
<li><a href="http://www.seifi.org/css/understanding-taming-collapsing-margins-in-css.html">http://www.seifi.org/css/understanding-taming-collapsing-margins-in-css.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fatihhayrioglu.com/kenar-boslugumargin-cokmesi/feed/</wfw:commentRss>
		<slash:comments>14</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>

