<?xml version='1.0' encoding='UTF-8'?>

<div1 id="visufx">
<head>Görsel sonuçlar</head>
  <div2 id="overflow-clipping">
  <indexterm><primary>taşma ve kırpılma</primary></indexterm>
  <indexterm><primary>çerçeve</primary> <secondary>taşma</secondary></indexterm>
  <head>Taşma ve kırpılma</head>

<p>Genellikle, bir çerçevenin içeriği çerçevenin içerik sınırları ile kuşatılır. Bazı durumlarda, çerçevenin içeriği tamamen veya kısmen çerçevenin dışında kalır ve bu durum <term>taşma</term> olarak adlandırılır. Taşma oluşturabilen durumlar:</p>

<ulist>
<item><p>Satır çerçevesi blok çerçevesinden daha geniş yapılarak bir satır kesilemez.</p></item>

<item><p><termref def="block-level">Blok seviyesinden</termref> bir çerçeve taşıyıcı blok için fazla geniştir. Bir elemanın <property>width</property> niteliğinin, üretilen çerçevenin taşıyıcı blokun kenarlarından dışarı dökülmesine sebep olacak bir değere sahip olması halinde bu mümkün olabilir.</p></item>

<item><p>Bir elemanın yüksekliği taşıyıcı bloka atanmış yükseklikten fazladır (yani, taşıyıcı blokun yüksekliği içerik yüksekliği ile değil, <property>height</property> niteliği ile belirleniyordur).</p></item>

<item><p>Bir astsal çerçeve, ebeveyn çerçevenin kısmen dışında kalacak şekilde <titleref ref="absolute-positioning">mutlak olarak konumlanmıştır</titleref>.</p></item>

<item><p>Bir astsal çerçeve, ebeveyn çerçevenin kısmen dışında kalacak şekilde <titleref ref="margin-properties">negatif kenar dış boşluklarına</titleref> sahiptir.</p></item>
</ulist>

<p>Taşma oluştuğunda, bir çerçevenin nasıl kırpılacağı (veya kırpılmayacağı) <property>overflow</property> niteliği ile belirtilir. <property>clip</property> niteliği ile kırpılma bölgesinin boyutları ve şekli belirtilir. İçerikten daha küçük bir kırpılma bölgesinin belirtilmesi, görünmesi gereken içeriğin kırpılmasına sebep olabilir.</p>

<div3 id="overflow">
<head>Taşma: <property>overflow</property> niteliği</head>

<indexterm><primary><property>overflow</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>overflow</property></secondary></indexterm>
<propinfo>
  <propname>overflow</propname>
  <value><literal>visible</literal> | <literal>hidden</literal> | <literal>scroll</literal> | <literal>auto</literal> |  <literal>inherit</literal></value>
  <initial><literal>visible</literal></initial>
  <applies-to><termref def="block-level">blok seviyesinden</termref> ve <termref def="replaced-element">yerleştirilen</termref> elemanlar</applies-to>
  <inherited>hayır</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p>Bu nitelik bir <termref def="block-level">blok seviyesinden</termref> elemanın içeriğinin, elemanın (içerik için taşıyıcı blokluk yapan) çerçevesinden taştığı zaman kırpılıp kırpılmayacağını belirler. Değerlerin anlamları şöyledir:</p>

<varlist>
<gitem>
<label><indexterm><primary><literal>visible</literal></primary></indexterm>
<literal>visible</literal></label>
<def><p>Bu değer içeriğin kırpılmayacağını belirtir, yani, blok çerçevesinden dışarı taşan içerik kırpılmayıp oluşturulur.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>hidden</literal></primary></indexterm>
<literal>hidden</literal></label>
<def><p>Bu değer taşan içeriğin kırpılacağını ve kırpılan içeriği göstermek için bir kaydırma mekanizmasının olmayacağını belirtir; kullanıcılar kırpılan içeriğe erişemeyecektir. Kırpma bölgesinin şekli ve boyutları <property>clip</property> niteliği ile belirtilir.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>scroll</literal></primary></indexterm>
<literal>scroll</literal></label>
<def><p>Bu değer taşan içeriğin kırpılacağını ve eğer kullanıcı arayüzü kırpılan içeriği göstermek için bir kaydırma mekanizması kullanıyorsa, içerik kırpılsın/kırpılmasın çerçeve üzerinde bu mekanizmanın gösterilmesi gerektiğini belirtir. Bu değer, özdevimli bir ortamda kaydırma çubuklarının görünür ve görünmez yapılması ile ilgili sorunların ortaya çıkmasını önler. Bu değer hedef ortam <literal>print</literal> iken belirtildiğinde, taşan içerik basılacaktır.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>auto</literal></primary></indexterm>
<literal>auto</literal></label>
<def><p><literal>auto</literal> değerinin davranışı kullanıcı arayüzüne bağlıdır fakat kaydırma mekanizmasının sadece taşan çerçeveler için gösterilmesini gerektirir.</p></def>
</gitem>
</varlist>

<p><property>overflow</property> niteliği <literal>visible</literal> olarak belirtilse bile,  kullanıcı arayüzünün belge penceresindeki içerik yerel işletim sistemi tarafından kırpılabilir.</p>

<example>
<p>Aşağıdaki belgede <htmltag>blockquote</htmltag> içeriğinin (<htmltag>div</htmltag> elemanının oluşturduğu) taşıyıcı blok için çok büyük olduğunu varsayalım:</p>

<eg><![CDATA[<div>
<blockquote>
<p>Bütün dünya ölçüsünde çocuklarımızı dünya vatandaşı olarak,
hırstan, kinden, garazdan ve her türlü husumetten kurtulmuş
olarak terbiye etmeliyiz.</p>
<cite>- M. K. Atatürk</cite>
</blockquote>
</div>]]></eg><!-- Kaynak: Bilim ve Teknik (TUBİTAK) - Ocak 1974 - cilt:7 sayı: 74 Sayfa: 44-->

<p>Üretilen çerçevelerin boyutlarını ve şeklini denetleyen biçembent:</p>

<eg>
div {
  width : 200px; height: 200px;
  border: thin solid red;

}

blockquote  {
  width : 190px; height : 190px;
  margin-top: 50px; margin-left: 50px;
  border: dashed black;
}

cite {
  display: block;
  text-align : right;
  border: none;
  padding: 5px
}
p { margin: 0; padding: 5px }</eg>

<p><property>overflow</property> niteliğinin ilk değeri <literal>visible</literal> olduğundan <htmltag>blockquote</htmltag> kırpılmadan biçimlenecektir:</p>

<figure id="img-overflow1">
<graphic source="images/overflow1.png" alt="Taşma oluşturma" />
[<loc href="images/longdesc/overflow1-desc.html" title="Kırpılmamış taşma örneği için geniş açıklama">Açıklama</loc>]
</figure>

<p><htmltag>div</htmltag> elemanı için <property>overflow</property> değerini <literal>hidden</literal> yaparak <htmltag>blockquote</htmltag> içeriğinin kırpılmasına sebep oluruz:</p>

<figure id="img-overflow2">
<graphic source="images/overflow2.png" alt="Kırpılmış taşma" />
[<loc href="images/longdesc/overflow2-desc.html" title="Taşması kırpılmış örnek için geniş açıklama">Açıklama</loc>]
</figure>

<p><literal>hidden</literal> yerine  <literal>scroll</literal> değeri verilseydi, kaydırma mekanizmasını destekleyen bir kullanıcı arayüzü bunu göstererek kullanıcının kırpılmış içeriğe de erişmesi mümkün kılınabilirdi.</p>
</example>
</div3>

<div3 id="clipping">
<indexterm><primary>kırpılma bölgesi</primary></indexterm>
<head>Kırpma: <property>clip</property> niteliği</head>

<p><term>Kırpılma bölgesi</term> bir elemanın oluşturulan içeriğinin ne kadarlık bölümünün görünür olaçağını tanımlar. Öntanımlı olarak kırpılma bölgesi elemanın çerçeveleri ile aynı şekil ve boyuttadır. Bununla birlikte, kırpılma bölgesinde <property>clip</property> niteliği ile değişiklik yapılabilir.</p>

<indexterm><primary><property>clip</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>clip</property></secondary></indexterm>
<propinfo>
  <propname>clip</propname>
  <value><valueref>şekil</valueref> | <literal>auto</literal> |  <literal>inherit</literal></value>
  <initial><literal>auto</literal></initial>
  <applies-to><termref def="block-level">blok seviyesinden</termref> ve <termref def="replaced-element">yerleştirilen</termref> elemanlar</applies-to>
  <inherited>hayır</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p><property>clip</property> niteliği, <property>overflow</property> niteliğinin değeri <literal>visible</literal>'dan farklı olan elemanlara uygulanır. Değerlerin anlamları şöyledir:</p>

<varlist>
<gitem>
<label><indexterm><primary><literal>auto</literal></primary></indexterm>
<literal>auto</literal></label>
<def><p>Kırpılma bölgesi elemanın çerçeveleri ile aynı boyut ve konumda olur.</p></def>
</gitem>
<gitem>
<label id="value-def-şekil">
<indexterm><primary><valueref>şekil</valueref></primary></indexterm>
<valueref>şekil</valueref></label>
<def><p>BB2'de, geçerli tek <var>şekil</var> dikdörtgendir; <code>rect (</code><valueref>üst</valueref>, <valueref>sağ</valueref>, <valueref>alt</valueref>, <valueref>sol</valueref><code>)</code> sözdizimiyle belirtilir ve buradaki <valueref>üst</valueref>, <valueref>alt</valueref>, <valueref>sağ</valueref> ve <valueref>sol</valueref> çerçevenin ayrı ayrı kenarlarını belirler. Belirsizlikten dolayı, kullanıcı arayüzleri <code>rect()</code> işlevinin argümanları arasında virgülü desteklemeyebilir.</p>

<p><indexterm><primary><valueref>üst</valueref></primary></indexterm>
<indexterm><primary><valueref>sağ</valueref></primary></indexterm>
<indexterm><primary><valueref>alt</valueref></primary></indexterm>
<indexterm><primary><valueref>sol</valueref></primary></indexterm>
<termdef id="value-def-üst" term="üst"><var>üst</var></termdef>, <termdef id="value-def-sağ" term="sağ"><var>sağ</var></termdef>, <termdef id="value-def-alt" term="alt"><var>alt</var></termdef> ve <termdef id="value-def-sol" term="sol"><var>sol</var></termdef> bir<valueref>uzunluk</valueref> değerine veya  <literal>auto</literal> değerine sahip olabilir. Negatif uzunluklara izin verilir. <literal>auto</literal> değeri, kırpma bölgesinin sınırının elemanın üretilen çerçevesinin sınırıyla aynı olacağı anlamına gelir (yani, <literal>auto</literal> değeri '0' ile aynı anlama gelir).</p>

<p>Koordinatlar piksel değerlerine yuvarlandığında, <var>sol</var> ve <var>sağ</var> toplamının elemanın genişliğine (veya <var>üst</var> ve
<var>alt</var> toplamının elemanın yüksekliğine) eşit olduğu zaman hiçbir görünür piksel kalmayacağı ve bunun tersi olarak, bu toplamlar '0' olduğunda hiçbir pikselin gizli kalmayacağı dikkate alınmalıdır.</p></def>
</gitem>
</varlist>

<p>Elemanın üstsellerinin de kırpılma bölgeleri olabilir (<property>overflow</property> niteliklerinin değeri <literal>visible</literal> olmadığında); oluşturulan içerik kırpılma bölgelerinin kesişimi olur.</p>

<p>Eğer kırpılma bölgesinin sınırları kullanıcı arayüzünün belge penceresinin sınırlarını aşarsa içerik yerel işletim sistemi tarafından bu pencereyle kırpılabilir.</p>

<example>
<p>Şu iki kural:</p>

<eg>
P { clip: rect(5px, 10px, 10px, 5px); }
P { clip: rect(5px, -5px, 10px, 5px); }
</eg>

<p>aşağıdaki resimlerdeki gibi kesikli çizgilerle sınırlanmış dikdörtgen kırpılma bölgeleri oluşturacaktır:</p>

<figure id="img-clip">
<graphic source="images/clip.png" alt="İki kırpılma bölgesi" />
[<loc href="images/longdesc/clip-desc.html" title="Kırpılma bölgesi örneği için geniş açıklama">Açıklama</loc>]
</figure>
</example>

<note><p>BB2'de, tüm kırpılma bölgeleri dikdörtgendir. Belirtimin sonraki aşamalarında dikdörtgenden farklı kırpılma bölgelerine de izin verileceğini umuyoruz.</p></note>
</div3>
</div2>

<div2 id="visibility">
<head>Görünürlük: <property>visibility</property> niteliği</head>

<indexterm><primary><property>visibility</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>visibility</property></secondary></indexterm>
<propinfo>
  <propname>visibility</propname>
  <value><literal>visible</literal> | <literal>hidden</literal> | <literal>collapse</literal> | <literal>inherit</literal></value>
  <initial><literal>visible</literal></initial>
  <applies-to/>
  <inherited>evet</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p><property>visibility</property> niteliği bir eleman tarafından üretilen çerçevelerin oluşturulup oluşturulmayacağını belirler. Görünmez çerçeveler hala yerleşimi etkiliyor olacaktır (etkilememesi için ayrıca <property>display</property> niteliğine de <literal>none</literal> atanabilir). Değerlerin anlamları şöyledir:</p>

<varlist>
<gitem>
<label><indexterm><primary><literal>visible</literal></primary></indexterm>
<literal>visible</literal></label>
<def><p>Üretilen çerçeve görünür.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>hidden</literal></primary></indexterm>
<literal>hidden</literal></label>
<def><p>Üretilen çerçeve görünmez (tamamen saydam olur), ama hala yerleşimi etkiler.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>collapse</literal></primary></indexterm>
<literal>collapse</literal></label>
<def><p>Lütfen tablolarda <specref ref="dynamic-effects"/> bölümüne bakınız. Satır ve sütun elemanları dışında kullanıldığında <literal>collapse</literal> değeri <literal>hidden</literal> ile aynı anlamdadır.</p></def>
</gitem>
</varlist>

<p>Bu nitelik betiklerle özdevimli etkiler oluşturmak için kullanılabilir.</p>

<example>
<p>Bu örnekte, iki düğmeden birine basarak ilgili çerçevenin görünür olması, diğerinin gizlenmesi sağlanmaktadır. Bu çerçeveler aynı konumda ve aynı boyutta olduklarından içerikler değişiyormuş gibi görünür. (Betik dili olarak JavaScript kullanılmış olup, kodlar hemen hemen her güncel tarayıcı ile çalışacak şekilde seçilmiştir.)</p>

<eg><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <style type="text/css">
      #container1 { position: absolute;
                    left: 5cm; width: 5cm }
      #container2 { position: absolute;
                    left: 5cm; width: 5cm;
                    visibility: hidden; }
    </style>
  </head>
  <body>
    <p>Bir şüpheli seçiniz:</p>
    <div id="container1">
      <img alt="Al Capone"
           width="100" height="100"
           src="suspect1.jpg">
      <p>Adı: Al Capone</p>
      <p>İkametgahı: Chicago</p>
    </div>

    <div id="container2">
      <img alt="Lucky Luciano"
           width="100" height="100"
           src="suspect2.jpg">
      <p>Adı: Lucky Luciano</p>
      <p>İkametgahı: New York</p>
    </div>

    <p>
      <input name="Capone" type="button" value="Capone"
onclick='document.getElementById("container1").style.visibility = "visible";
         document.getElementById("container2").style.visibility = "hidden"'>
      <input name="Luciano" type="button" value="Luciano"
onclick='document.getElementById("container2").style.visibility = "visible";
         document.getElementById("container1").style.visibility = "hidden"'>
    </p>
  </body>
</html>]]>
</eg>
</example>
</div2>
</div1>


