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

<div1 id="generate">
<head>Üretilen içerik, özdevinimli numaralama ve listeler</head>

<p>Bazı durumlarda yazarlar <termref def="doctree">belge ağacında</termref> yer almayan içeriği kullanıcı arayüzlerinin oluşturabilmesini isterler. Buna çok bilinen bir örnek numaralı listelerdir. Yazarlar bunları numaralamak istemezler bu numaraları kullanıcı arayüzlerinin üretmesini isterler. Benzer şekilde, yazarlar, bir şekil başlığının öncesine "Şekil" sözcüğünü veya yedinci kısmın başlığına "7. Kısım" dizgesini kullanıcı arayüzünün yazmasını isteyebilirler. İşitsel ve dokunsal ortamlar için de benzer şeyler istenebilir.</p>

<p>BB2'de içerik çeşitli mekanizmalarla üretilebilir:</p>

<ulist>
<item><p><selector>:before</selector> ve <selector>:after</selector> sözde elemanları ile birlikte <property>content</property> niteliği.</p></item>

<item><p><property>cue-before</property>, <property>cue-after</property> işitsel nitelikleri (<specref ref="aural"/> bölümüne bakınız). <property>content</property> niteliği işitsel niteliklerle birlikte kullanıldığında içerik oluşturma şu sırayı izler: <selector>:before</selector>, <property>cue-before</property>, (<property>pause-before</property>), elemanın içeriği, (<property>pause-after</property>), <property>cue-after</property> ve <selector>:after</selector>.</p></item>

<item><p><property>display</property> niteliğinin değeri <literal>list-item</literal> olan elemanlar.</p></item>
</ulist>

<p><property>content</property> niteliği ile ilişkili mekanizmalar aşağıda açıklanmıştır.</p>

<div2 id="before-after-content">
<indexterm><primary>sözde elemanlar</primary> <secondary><selector>:before</selector></secondary></indexterm>
<indexterm><primary><selector>:before</selector></primary></indexterm>
<indexterm><primary>before</primary></indexterm>
<indexterm><primary>sözde elemanlar</primary> <secondary><selector>:after</selector></secondary></indexterm>
<indexterm><primary><selector>:after</selector></primary></indexterm>
<indexterm><primary>after</primary></indexterm>
<head><selector>:before</selector> ve <selector>:after</selector> sözde elemanları</head>

<p>Yazarlar üretilen içeriğin biçemini ve yerini <selector>:before</selector> ve <selector>:after</selector> sözde elemanlarıyla belirtirler. İsimlerinden de anlaşılacağı gibi, <selector>:before</selector> (:önce) ve <selector>:after</selector> (:sonra) sözde elemanları üretilen içeriğin yerini elemanın <termref def="doctree">belge ağacı</termref>ndaki içeriğinden önce ve sonra olarak belirtirler. Bu sözde elemanlarla birlikte <property>content</property> niteliğinin değerinde neyin yerleştirileceği belirtilir.</p>

<ednote><edtext>Buradaki örneklerden başka güncel Türkçe bir örnek için ayrıca <specref ref="bb2-xml"/> bölümündeki örneğe de bakınız (<code>translator:before {&nbsp;content:&nbsp;"\c7&nbsp;eviren:&nbsp;"&nbsp;}</code> kuralına dikkat!).</edtext></ednote>

<example>
<p>Aşağıdaki kuralla, değeri "note" olan '<tt>class</tt>' özniteliğine sahip her <htmltag>p</htmltag> elemanının içeriğinden önce "Note: " dizgesi yerleştirilir:</p>

<eg>
p.note:before { content: "Note: " }
</eg>
</example>

<p>Bir eleman tarafından üretilen biçimleme nesneleri (çerçeveler gibi) de <titleref ref="generate">üretilen içerik</titleref> içerebilir.</p>

<example>
<p>Yukarıdaki biçembenti şöyle değiştirelim:</p>

<eg>p.note:before { content: "Note: " }
p.note        { border: solid green }
</eg>

<p>Bu kurallar, "Note: " dizgesini de içeren paragrafın çevresine kesintisiz yeşil bir çizgi çizilmesine sebep olur.</p>
</example>

<p><selector>:before</selector> ve <selector>:after</selector> sözde elemanları eklendikleri elemandan kalıtsal özellikleri <titleref ref="inheritance">miras</titleref> alırlar.</p>

<example>
<p>Aşağıdaki kurallar <htmltag>q</htmltag> elemanının öncesine bir sol tırnak imi yerleştirir. Tırnak iminin rengi kırmızı olmasına rağmen yazıtipi <htmltag>q</htmltag> elemanının kalanı ile aynı olacaktır:</p>

<eg>q:before {
  content: open-quote;
  color: red
}</eg>
</example>

<p>Bir <selector>:before</selector> veya <selector>:after</selector> sözde eleman bildiriminde, miras alınmayan nitelikler <termref def="initial-value">ilk değerlerini</termref> alırlar.</p>

<example>
<p><property>display</property> niteliğinin ilk değeri <literal>inline</literal> olduğundan önceki örnekteki tırnak, elemanın içeriğiyle aynı satıra bir satıriçi çerçeve olarak yerleştirilir. Aşağıdaki örnekte ise, <property>display</property> niteliğine açıkça <literal>block</literal> değeri atanmakta, dolayısıyla yerleştirilen metin bir blok haline gelmektedir:</p>

<eg>
body:after {
    content: "Bitti";
    display: block;
    margin-top: 2em;
    text-align: center;
}
</eg>

<p>Bir işitsel kullanıcı arayüzü <htmltag>body</htmltag> içeriğinin seslendirmesini tamamladıktan sonra "Bitti" diyecektir.</p>
</example>

<p>Kullanıcı arayüzlerinin <selector>:before</selector> ve <selector>:after</selector> sözde elemanları ile kullanıldıklarında şu nitelikleri yoksaymaları gerekir: <property>position</property>, <property>float</property>, <titleref ref="lists">liste</titleref> nitelikleri ve <titleref ref="tables">tablo</titleref> nitelikleri.</p>

<p><selector>:before</selector> ve <selector>:after</selector> sözde elemanları <property>display</property> niteliğinin değerlerine şöyle izin verir:</p>

<ulist>
<item><p>Eğer bir seçicinin <termref def="subject">konusu </termref> <termref def="block-level"> blok seviyesinden</termref> bir elemansa, izin verilen değerler: <literal>none</literal>, <literal>inline</literal>, <literal>block</literal> ve <literal>marker</literal>. Eğer <property>display</property> niteliği bunlardan başka bir değere sahipse, sözde eleman <literal>block</literal> değeri verilmiş gibi davranacaktır.</p></item>

<item><p>Eğer bir seçicinin <termref def="subject">konusu </termref> <termref def="inline-level"> satıriçi seviyeden</termref> bir elemansa, izin verilen değerler: <literal>none</literal> ve <literal>inline</literal>. Eğer <property>display</property> niteliği bunlardan başka bir değere sahipse, sözde eleman <literal>inline</literal> değeri verilmiş gibi davranacaktır.</p></item>
</ulist>

<note><p>BB'nin ileri aşamalarında başka değerlere de izin verilebilir.</p></note>
</div2>

<div2 id="content-prop">
<head><property>content</property> niteliği</head>

<indexterm><primary sortas="content-"><property>content</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>content</property></secondary></indexterm>
<propinfo>
  <propname>content</propname>
  <value>[ <valueref>dizge</valueref> | <valueref>tanım-yeri</valueref> | <valueref>sayaç</valueref> | <literal>attr(</literal><var>özn</var><literal>)</literal> | <literal>open-quote</literal> | <literal>close-quote</literal> | <literal>no-open-quote</literal> | <literal>no-close-quote</literal> ]+ | <literal>inherit</literal></value>
  <initial>boş dizge</initial>
  <applies-to><selector>:before</selector> ve <selector>:after</selector> sözde elemanları</applies-to>
  <inherited>hayır</inherited>
  <percentages/>
  <media><termref def="all-media-group">hepsi</termref></media>
</propinfo>

<p>Bu nitelik, bir belgede içerik üretmek için <selector>:before</selector> ve <selector>:after</selector> sözde elemanları ile birlikte kullanılır. Değerlerin anlamları:</p>

<varlist>
<gitem>
<label><indexterm><primary><valueref>dizge</valueref></primary></indexterm>
<valueref>dizge</valueref></label>
<def><p>Metin içerik (<specref ref="strings"/> bölümüne bakınız).</p></def>
</gitem>
<gitem>
<label>
<indexterm><primary><valueref>tanım-yeri</valueref></primary></indexterm>
<valueref>tanım-yeri</valueref></label>
<def><p>Değer harici bir özkaynağın tanım-yeridir. Bir kullanıcı arayüzü <titleref ref="media">ortam türleri</titleref>nin desteklemesinden ötürü özkaynağı destekleyemezse, özkaynağı yoksaymalıdır.</p>
<note><p>BB2 gömülü bir nesnenin boyutlarını değiştirecek mekanizmalar belirtmez veya HTML'deki '<tt>alt</tt>' veya '<tt>longdesc</tt>' özniteliklerindeki gibi bir metinsel açıklama  sağlamaz. Bu BB'nin gelecekteki aşamalarında değişebilir.</p></note></def>
</gitem>
<gitem>
<label><indexterm><primary><valueref>sayaç</valueref></primary></indexterm>
<valueref>sayaç</valueref></label>
<def><p><titleref ref="counter">Sayaçlar</titleref> iki farklı işlevle belirtilebilir: <literal>counter()</literal> veya <literal>counters()</literal>.</p>
<p> İlkinin iki biçimi vardır: <literal>counter</literal><code>(</code><var>ad</var><code>)</code> veya
<code>counter(<var>ad</var>, <var>biçem</var>)</code>. Üretilen metin, biçimleme yapısında bu noktadaki isimli sayacın değeridir. Belirtilen <titleref ref="counter-styles">biçem</titleref>de (öntanımlı olarak <literal>decimal</literal>) biçimlenir.</p>
<p>İkinci işlevin de iki biçimi vardır:<code>counters(<var>ad</var>,
<var>dizge</var>)</code> veya <code>counters(<var>ad</var>, <var>dizge</var>, <var>biçem</var>)</code>. Üretilen metin, biçimleme yapısında bu noktadaki adı belirtilen tüm sayaçların değeridir. Sayaçlar belirtilen <titleref ref="counter-styles">biçem</titleref>de (öntanımlı olarak <literal>decimal</literal>) oluşturulur. Daha fazla bilgi için <specref ref="counters"/> bölümüne bakınız.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>open-quote</literal></primary></indexterm>
<indexterm><primary><literal>close-quote</literal></primary></indexterm>
<literal>open-quote</literal></label>
<label><literal>close-quote</literal></label>
<def><p>Bu dizgeler <property>quotes</property> niteliğindeki uygun dizgelerle değiştirilir.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>no-open-quote</literal></primary></indexterm>
<indexterm><primary><literal>no-close-quote</literal></primary></indexterm>
<literal>no-open-quote</literal></label>
<label><literal>no-close-quote</literal></label>
<def><p>Hiçbir şey yerleştirmez (boş dizge), fakat tırnakların iç içelik seviyesini azaltır (ya da arttırır).</p></def>
</gitem>
<gitem>
<label><indexterm><primary><code>attr(</code><var>X</var><code>)</code> </primary></indexterm>
<code>attr(</code><var>özn</var><code>)</code></label>
<def><p>Bu işlev seçicinin konusu için <var>özn</var> özniteliğinin değerini bir dizge olarak döndürür. Dizge BB işlemcisi tarafından çözümlenmez. Eğer seçicinin konusu  <var>özn</var> özniteliğine sahip değilse bir boş dizge döner. Öznitelik isimlerinin harf büyüklüğüne duyarlılığı belge diline bağlıdır.</p>
<note><p>BB2'de, seçicinin diğer elemanları için öznitelik değerlerine atıfta bulunmak olanaklı değildir.</p></note></def>
</gitem>
</varlist>

<p><selector>:before</selector> ve <selector>:after</selector> sözde elemanları <property>display</property> özniteliğinin değerlerine şöyle izin verir:</p>

<ulist>
<item><p>Eğer seçicinin konusu <termref def="block-level">blok seviyesinden</termref> bir elemansa, izin verilen değerler: <literal>none</literal>, <literal>inline</literal>, <literal>block</literal> ve <literal>marker</literal>. Eğer sözde elemanın <literal>display</literal> niteliğinin değeri bunlardan farklı bir değerse sözde eleman niteliğin değeri <literal>block</literal>'muş gibi davranmalıdır.</p></item>

<item><p>Eğer seçicinin konusu satıriçi seviyeden bir elemansa, izin verilen değerler: <literal>none</literal> ve <literal>inline</literal>. Eğer sözde elemanın <literal>display</literal> niteliğinin değeri bunlardan farklı bir değerse sözde eleman niteliğin değeri <literal>inline</literal>'mış gibi davranmalıdır.</p></item>
</ulist>

<p><indexterm><primary><code>@media</code></primary></indexterm>
İçerik ortama duyarlıysa, biçembent yazarlarının <property>content</property> bildirimlerini <titleref ref="at-media-rule"><code>@media</code></titleref> kurallarına koymaları gerekir. Örneğin dizgesel sabitler her ortam grubunda kullanılabilirken, resimler sadece görsel + biteşlemli ortam gruplarına ve ses dosyaları da sadece işitsel ortam gruplarına uygulanabilir.</p>

<example>
<p>Aşağıdaki kural, bir tırnaklı blokun sonunda bir ses dosyasının çalınmasına sebep olur (ek mekanizmalar için <specref ref="aural"/> bölümüne bakınız):</p>

<eg>@media aural {
   blockquote:after { content: url("harika-musiki.wav") }
   }</eg>
</example>

<example>
<p>Aşağıdaki kural, HTML '<tt>alt</tt>' özniteliğinin metnini resmin öncesine yerleştirir. Resim gösterilmese bile okuyucu '<tt>alt</tt>' özniteliğinin metnini görecektir.</p>

<eg>img:before { content: attr(alt) }</eg>
</example>

<example id="newlined-string">
<p><indexterm><primary>zorlanmış satırsonu</primary></indexterm>
Biçembent yazarları <property>content</property> niteliğinin değeri içinde "\A" öncelemlerini satırı sonlandırmak istedikleri yerlere yerleştirerek çok satırlı  metin üretebilirler. Bu işlem, HTML'deki <htmltag>br</htmltag> elemanlarının yaptığına benzer şekilde bir <term>zorlanmış satırsonu</term> yerleştirir. "\A" öncelemleri hakkında ayrıntılı bilgi edinmek için <specref ref="strings"/> bölümüne ve <termref def="escaped-characters">karakter öncelemi</termref> tanımına bakınız.</p>

<eg>H1:before {
    display: block;
    text-align: center;
    content: "chapter\A hoofdstuk\A chapitre"
}</eg>
</example>

<p><titleref ref="generate">üretilen içerik</titleref> belge ağacını değiştirmez. Özellikle, belge dili işlemcisini harekete geçirmez (yeniden çözümleme gibi).</p>

<note><p>BB'nin gelecekteki aşamalarında, <property>content</property> niteliği üretilen içeriğin parçalarının biçemlerini değiştirecek ek değerler kabul edebilir, fakat BB2'de <selector>:before</selector> veya <selector>:after</selector> sözde elemanının içeriği tamamen aynı biçeme sahiptir.</p></note>
</div2>

<div2 id="compact-run-in-gen">
<indexterm><primary><literal>compact</literal></primary></indexterm>
<indexterm><primary><literal>run-in</literal></primary></indexterm>
<head><selector>:before</selector> ve <selector>:after</selector> ile gömme ve girintili başlık çerçeveleri arasındaki etkileşim</head>

<p>Aşağıdaki durumlar sözkonusu olabilir:</p>

<olist>
<item><p>Bir <titleref ref="run-in">gömme</titleref> veya <titleref ref="compact">girintide</titleref> başlık çerçevesi olarak <kw>satıriçi</kw> türünde bir <selector>:before</selector> sözde elemanı varsa: sözde eleman, başlık çerçevesinin boyutları (<literal>compact</literal> için) hesaplanırken dikkate alınır ve elemanla aynı blok çerçevesi içinde oluşturulur.</p></item>

<item><p>Bir gömme veya girintide başlık çerçevesi olarak <kw>satıriçi</kw> türünde bir <selector>:after</selector> sözde elemanı varsa: önceki maddenin kuralları uygulanır.</p></item>

<item><p>Bir gömme veya girintide başlık çerçevesi olarak <kw>blok</kw> türünde bir <selector>:before</selector> sözde elemanı varsa: sözde eleman başlık çerçevesinin yukarısında bir blok çerçevesi olarak oluşturulur ve başlık çerçevesinin boyutlarının hesabında (<literal>compact</literal> için) dikkate alınmaz.</p></item>

<item><p>Bir <titleref ref="run-in">gömme</titleref> veya <titleref ref="compact">girintide</titleref> başlık çerçevesi olarak <kw>blok</kw> türünde bir <selector>:after</selector> sözde elemanı varsa: Başlık çerçevesi ve <selector>:after</selector> sözde elemanı blok çerçevesi olarak biçimlenir. Başlık çerçevesi kendi <selector>:after</selector> sözde elemanı içindeki bir satıriçi çerçeve olarak biçimlenmez.</p></item>

<item><p>Bir gömme veya girintide başlık çerçevesi olarak <kw>blok</kw> türünde bir <selector>:before</selector> sözde elemanından sonra bir eleman varsa: başlık çerçevesinin nasıl biçimleneceği kararı <selector>:before</selector> sözde elemanından elde edilen blok çerçevesine göre verilir.</p></item>

<item><p>Bir gömme veya girintide başlık çerçevesi olarak <kw>satıriçi</kw> türünde bir <selector>:before</selector> sözde elemanından sonra bir eleman varsa: başlık çerçevesinin nasıl biçimleneceği kararı, <selector>:before</selector> sözde elemanının eklemlendiği elemanın <property>display</property> değerine bağlıdır.</p></item>
</olist>

<example>
<p>Burada, gömme başlıklı (<literal>run-in</literal>) bir <selector>:after</selector> sözde elemanından sonra <selector>:before</selector> sözde elemanlı bir paragrafın gelmesi durumu örneklenmiştir. Bu örnekteki tüm sözde elemanlar satıriçi (öntanımlı) seviyedendir. Biçembent şöyle olsun:</p>

<eg>
h3       { display: run-in }
h3:after { content: ": " }
p:before { content: "... " }
</eg>

<p>ve şu belgeye uygulanmış olsun:</p>

<eg><![CDATA[<H3>Atlar</H3>
<p>yelesi vardır
<p>bir kuyruğu olur]]></eg>

<p>Sonuç şöyle olurdu:</p>

<eg>Atlar: ... yelesi vardır
... bir kuyruğu olur</eg>
</example>
</div2>

<div2 id="quotes">
<head>Tırnak imleri</head>
<p>BB2'de biçembent yazarları kullanıcı arayüzlerinin tırnak imlerini bağlama bağlı ve biçeme duyarlı manada nasıl biçimlemesi gerektiğini belirtebilirler. <property>quotes</property> niteliğinde her iç içelik seviyesinden tırnak için tırnak imi çiftleri belirtilir. <property>content</property> niteliği ise bu tırnak imlerine erişim verir ve bunların bir tırnağın öncesine veya sonrasına yerleştirilmesine sebep olur.</p>

<div3 id="quotes-specify">
<head>Tırnakların <property>quotes</property> niteliği ile belirtilmesi</head>

<indexterm><primary><property>quotes</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>quotes</property></secondary></indexterm>
<propinfo>
  <propname>quotes</propname>
  <value>[ <valueref>dizge</valueref> <valueref>dizge</valueref> ]+ | <literal>none</literal> | <literal>inherit</literal></value>
  <initial>kullanıcı arayüzüne bağlı</initial>
  <applies-to/>
  <inherited>evet</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p>Bu nitelik çok seviyeli tırnaklama için tırnak çiftlerini belirtmekte kullanılır. Değerlerin anlamları:</p>

<varlist>
<gitem>
<label><indexterm><primary><literal>none</literal></primary></indexterm>
<literal>none</literal></label>
<def><p><property>content</property> niteliğinin <literal>open-quote</literal> ve <literal>close-quote</literal> değerleri hiçbir tırnak imi üretmez.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><valueref>dizge</valueref></primary></indexterm>
<code>[ </code><valueref>dizge</valueref> <valueref>dizge</valueref> <code>]+</code></label>
<def><p><property>content</property> niteliğinin <literal>open-quote</literal> ve <literal>close-quote</literal> değerleri bu tırnak (açan ve kapatan) çiftleri  listesinden alınır. İlk (en soldaki) çift en dış tırnaklama seviyesi için, ikinci çift ilkinin içinde kalır ve böyle gider. Kullanıcı arayüzleri tırnak çiftlerini belirtilen seviyelere uygun olarak kullanmalıdır.</p></def>
</gitem>
</varlist>

<example>
<p>Bu biçembendin:</p>

<eg>/* Çiftler iki dil ve iki seviye için belirtiliyor */
Q:lang(tr) { quotes: '"' '"' "'" "'" }
Q:lang(no) { quotes: "«" "»" "&lt;" ">" }
/* Tırnakları Q elemanının öncesine ve sonrasına yerleştir */
Q:before { content: open-quote }
Q:after  { content: close-quote }</eg>

<p>bu HTML belgeye uygulandığını varsayalım:</p>

<eg><![CDATA[<HTML lang="tr">
  <head>
  <title>Tırnaklar</title>
  </head>
  <body>
    <p><Q>Beni tırnak içine al!</Q>
  </body>
</html>]]></eg>

<p>Sonuç şöyle olurdu:</p>

<eg>"Beni tırnak içine al!"</eg>

<p>Böyle bir HTML belgeye uygulansaydı:</p>

<eg><![CDATA[<HTML lang="no">
  <head>
  <title>Quotes</title>
  </head>
  <body>
    <p><Q>Trøndere gråter når <Q>Vinsjan på kaia</Q> blir deklamert.</Q>
  </body>
</html>]]></eg>

<p>Sonuç böyle olurdu:</p>

<eg>«Trøndere gråter når &lt;Vinsjan på kaia> blir deklamert.»</eg>
</example>

<note><p>Yukarıdaki örneklerde <property>quotes</property> tarafından belirtilen tırnak imleri bilgisayar klavyesinden kolayca elde edilen tırnaklardır; yüksek kalitede tırnakların gerektiği durumlarda ISO 10646 tırnak karakterleri kullanılabilir. Aşağıdaki bilgilendirici tablo bazı ISO 10646 tırnak karakterlerini listelemektedir:</p>

<table border="1" cellpadding="3" cellspacing="0">
<tr>
<th>Yaklaşık biçimleme</th>
<th>ISO 10646 kodu (onaltılık)</th>
<th>Açıklama (Karakterlerin ISO 10646 isimleri tercüme edilmemiştir)</th>
</tr>
<tr>
<td>"</td>
<td>0022</td>
<td>QUOTATION MARK [ASCII çift tırnak imi]</td>
</tr>
<tr>
<td>'</td>
<td>0027</td>
<td>APOSTROPHE [ASCII tek tırnak imi]</td>
</tr>
<tr>
<td>‹</td>
<td>2039</td>
<td>SINGLE LEFT-POINTING ANGLE QUOTATION MARK</td>
</tr>
<tr>
<td>›</td>
<td>203A</td>
<td>SINGLE RIGHT-POINTING ANGLE QUOTATION MARK</td>
</tr>
<tr>
<td>«</td>
<td>00AB</td>
<td>LEFT-POINTING DOUBLE ANGLE QUOTATION MARK</td>
</tr>
<tr>
<td>»</td>
<td>00BB</td>
<td>RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK</td>
</tr>
<tr>
<td>‘</td>
<td>2018</td>
<td>LEFT SINGLE QUOTATION MARK [single high-6]</td>
</tr>
<tr>
<td>’</td>
<td>2019</td>
<td>RIGHT SINGLE QUOTATION MARK [single high-9]</td>
</tr>
<tr>
<td>“</td>
<td>201C</td>
<td>LEFT DOUBLE QUOTATION MARK [double high-6]</td>
</tr>
<tr>
<td>”</td>
<td>201D</td>
<td>RIGHT DOUBLE QUOTATION MARK [double high-9]</td>
</tr>
<tr>
<td>„</td>
<td>201E</td>
<td>DOUBLE LOW-9 QUOTATION MARK [double low-9]</td>
</tr>
</table>
</note>
</div3>

<div3 id="quotes-insert">
<indexterm><primary><literal>open-quote</literal></primary></indexterm>
<indexterm><primary><literal>close-quote</literal></primary></indexterm>
<head>Tırnakların <property>content</property> niteliği ile yerleştirilmesi</head>

<p><termdef id="value-def-open-quote" term="open-quote değeri">Bir belgedeki tırnak imleri <property>content</property> niteliğinin <code>open-quote</code></termdef> ve <termdef id="value-def-close-quote" term="close-quote değeri"><code>close-quote</code> değerlerine uygun olarak yerleştirilir</termdef>. <literal>open-quote</literal> veya <literal>close-quote</literal> değerlerinin varlığı iç içelik seviyesine bağlı olarak <property>quotes</property> değerindeki dizgelerden birinin yerleştirilmesine sebep olur.</p>

<p><literal>open-quote</literal> tırnak çiftinin ilkinin, <literal>close-quote</literal> ise ikincisinin yerleştirilmesine sebep olur. Hangi tırnak çiftlerinin kullanılacağı tırnakların iç içelik seviyesine bağlıdır: geçerli <literal>open-quote</literal>'tan önceki <literal>open-quote</literal>'ların sayısı eksi <literal>close-quote</literal>'ların sayısı. Derinlik 0 ise ilk çift kullanılır, 1 ise ikincisi, böyle gider. Eğer derinlik, çiftlerin sayısından fazlaysa son çift yinelenir. Bir <literal>close-quote</literal>'un derinliği negatif yapması bir hatadır ve yoksayılır: derinlik 0'da kalır ve bir tırnak imi konmaz (ise de, <property>content</property> niteliğinin değeri hala yerleştirilmeye devam edilir).</p>

<p>Bu tırnaklama derinliğinin kaynak belgenin veya biçimleme yapısının iç içeliğinden bağımsız oluşuna dikkat ediniz.</p>

<p><indexterm><primary><literal>no-close-quote</literal></primary></indexterm>
<termdef id="value-def-no-close-quote" term="no-close-quote değeri">Bazı dizgisel (typographic) biçemler açan tırnak imlerinin her paragrafın başında yinelenmesini ve kapatan tırnağın sadece son paragrafın sonuna konmasını gerektirebilir. BB2'de böyle durumlar için kullanılmak üzere bir tırnak imi yerleştirilmesine yol açmayan bir "hayalet" açan tırnak imi değeri (<code>no-close-quote</code>) vardır</termdef>.</p>

<example>
<p>Aşağıdaki biçembent bir <htmltag>blockquote</htmltag> içindeki paragrafların her birinin başına bir açan tırnak imi, son paragrafın sonuna da bir kapatan tırnak imi yerleştirir:</p>

<eg>blockquote P:before     { content: open-quote }
blockquote P:after      { content: no-close-quote }
blockquote P.last:after { content: close-quote }</eg>

<p>Son kural, son paragrafa "last" değerli bir '<tt>class</tt>' özniteliği atanmış olmasını gerektirir (bir elemanın son çocuğuyla eşleşecek bir seçici olmadığından).</p>
</example>

<p><indexterm><primary><literal>no-open-quote</literal></primary></indexterm>
<termdef id="value-def-no-open-quote" term="no-open-quote değeri">Bakışım gereği, tırnaklama derinliğini bir arttırdığı halde hiçbir tırnak imi yerleştirilmemesine sebep olan bir <code>no-open-quote</code> değeri de mevcuttur</termdef>.</p>

<note><p>Sarmalanan metnin dili sarmalayan metnin dilinden farklıysa, adet olduğu üzere sarmalanan metin, sarmalayan metnin dilinde sarmalanır(tırnaklanır), kendi dilinde değil.</p></note>

<example>
<p>Fransızca tırnaklı metin İngilizce metnin içinde:</p>

<bquote xml:lang="en">
<p>The device of the order of the garter is “Honi soit qui mal y pense.”</p>
</bquote>

<p>İngilizce tırnaklı metin Fransızca metnin içinde:</p>

<bquote xml:lang="fr">
<p>Il disait: « Il faut mettre l'action en ‹ fast forward ›.»</p>
</bquote>

<p><indexterm><primary>bağdaştırıcı</primary></indexterm>
Aşağıdaki gibi bir biçembent <property>quotes</property> niteliğini, <literal>open-quote</literal> ve <literal>close-quote</literal> değerleri tüm elemanlarla düzgün çalışacak şekilde ayarlar. Bu kurallar, sadece İngilizce, sadece Fransızca veya her ikisini de içeren belgeler içindir. Her ek dil için bir kural gerekir. Tırnakları sarmalanan metnin diline göre ayarlamak için çocuk <termref def="combinator">bağdaştırıcı</termref> (">") kullanımına dikkat ediniz:</p>

<eg>[LANG|=fr] > *  { quotes: "«" "»" "\2039" "\203A" }
[LANG|=en] > *  { quotes: "\201C" "\201D" "\2018" "\2019" }</eg>

<p>Yukarıdaki tırnak imleri çoğunlukla klavyeden yazılabilecek karakterlerden seçilmiştir. Doğrudan yazmak isterseniz şöyle görünürler::</p>

<eg>[LANG|=fr] > * { quotes: "«" "»" "‹" "›" }
[LANG|=en] > * { quotes: "“" "”" "‘" "’" }</eg>
</example>
</div3>
</div2>

<div2 id="counters">
<indexterm><primary>sayaçlar</primary></indexterm>
<head>Özdevinimli sayaçlar ve numaralama</head>

<p>BB2'de özdevinimli numaralama iki niteliğin denetimi altındadır:
<property>counter-increment</property> ve <property>counter-reset</property>. Bu niteliklerle tanımlanan sayaçlar <property>content</property> niteliğinin <code>counter()</code> ve <code>counters()</code> işlevlerinde kullanılır.</p>

<indexterm><primary><property>counter-reset</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>counter-reset</property></secondary></indexterm>
<propinfo>
  <propname>counter-reset</propname>
  <value>[ <valueref>betimleyici</valueref> <valueref>tamsayı</valueref> ]+ | <literal>none</literal> | <literal>inherit</literal></value>
  <initial><literal>none</literal></initial>
  <applies-to/>
  <inherited>hayır</inherited>
  <percentages/>
  <media><termref def="all-media-group">hepsi</termref></media>
</propinfo>

<indexterm><primary><property>counter-increment</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>counter-increment</property></secondary></indexterm>
<propinfo>
  <propname>counter-increment</propname>
  <value>[ <valueref>betimleyici</valueref> <valueref>tamsayı</valueref> ]+ | <literal>none</literal> | <literal>inherit</literal></value>
  <initial><literal>none</literal></initial>
  <applies-to/>
  <inherited>hayır</inherited>
  <percentages/>
  <media><termref def="all-media-group">hepsi</termref></media>
</propinfo>

<p><property>counter-increment</property> niteliği değer olarak bir veya daha fazla sayıda sayaç ismi (<valueref>betimleyici</valueref>) ile birlikte isteğe bağlı olarak bir <valueref>tamsayı</valueref> kabul eder. <valueref>tamsayı</valueref>, elemanın her nesnelleştirimi için sayacın ne kadar arttırılacağını belirler. Öntanımlı artış 1'dir. Sıfır ve negatif değerlere izin verilir.</p>

<p><property>counter-reset</property> niteliği de değer olarak bir veya daha fazla sayıda sayaç ismi (<valueref>betimleyici</valueref>) ile birlikte isteğe bağlı olarak bir <valueref>tamsayı</valueref> kabul eder. <valueref>tamsayı</valueref>, elemanın her nesnelleştirimi için sayaca hangi değerin atanacağını belirler. Öntanımlı değer 0'dır.</p>

<p><property>counter-increment</property> niteliği, bir <property>counter-reset</property> niteliğinin <titleref ref="scope">etki alanında</titleref> bulunmayan bir sayaca atıfta bulunuyorsa, sayaca ilk değer olarak kök eleman tarafından 0 atandığı varsayılır.</p>

<example>
<p>Bu örnekte fasıl ve bölümlerin "1. Fasıl", "1.1 ", "1.2 ", vb. şeklinde numaralanmasının yolu gösterilmiştir.</p>

<eg>h1:before {
    content: counter(chapter) ". Fasıl ";
    counter-increment: chapter;  /* chapter sayacını 1 arttır*/
    counter-reset: section;      /* section sayacına 0 ata */
}
h2:before {
    content: counter(chapter) "." counter(section) " ";
    counter-increment: section;  /* section sayacını 1 arttır */
}</eg>
</example>

<p>Eğer bir eleman bir sayacı arttırır/sıfırlarsa ve ayrıca kullanırsa (<selector>:before</selector> veya <selector>:after</selector> sözde elemanının <property>content</property> niteliğinde), sayaç artış/sıfırlama yapıldıktan <emph>sonra</emph> kullanılır.</p>

<p>Eğer bir eleman bir sayacı hem sıfırlar hem de arttırısa, sayaç önce sıfırlanıp sonra arttırılır.</p>

<p><property>counter-reset</property> niteliği bütünleşim kurallarına uyar. Bu bakımdan, bütünleşim nedeniyle aşağıdaki biçembent sadece 'imagenum' sayacını sıfırlayacaktır:</p>

<eg>h1 { counter-reset: section -1 }
h1 { counter-reset: imagenum 99 }</eg>

<p>Her iki sayacı da sıfırlamak için birlikte belirtilmeleri gerekir:</p>

<eg>h1 { counter-reset: section -1 imagenum 99 }</eg>

<div3 id="scope">
<head>Sayaçlarda iç içelik ve etki alanı</head>

<p>Sayaçlar "kendinden iç içelik" özelliğine sahiptir, yani her yeni çocuk eleman için sayaç kendinin yeni bir kopyasını yapar. HTML'deki listeler gibi listelerin keyfi derinliklerde olduğu  durumlarda bu özellik önem kazanır. Keyfi iç içelikte her yeni seviye için eşsiz isimli sayaçlar tanımlamak söz konusu olamazdı.</p>

<example>
<p>Aşağıdaki kurallar iç içe liste öğelerini numaralamak için sonek oluşturur. Elde edilen sonuç <htmltag>li</htmltag> elemanı için <code>display:list-item</code> ve <code>list-style: inside</code> atamalarının sonuçlarının benzeridir:</p>

<eg>ol { counter-reset: madde }
li { display: block }
li:before { content: counter(madde) ". "; counter-increment: madde }</eg>
</example>

<p><indexterm><primary>etki alanı</primary></indexterm>
Kendinden iç içelik şu ilkeye dayanır: bir X sayacı için bir <property>counter-reset</property> niteliğine sahip her eleman taze bir X sayacı oluşturur; sayacın <term>etki alanı</term> elemanın kendi içeriği, elemanın büyük kardeşleri ve elemanın tüm astsallarıdır.</p>

<p>Yukarıdaki örnekte, <htmltag>ol</htmltag> elemanı bir sayaç oluşturacak ve <htmltag>ol</htmltag>'nin tüm çocukları bu sayaca atıf yapacaktır.</p>

<example>
<p>Aşağıdaki HTML kodunda <code>madde[n]</code> ile <tt>madde</tt> sayacının <code>n.</code> nesnelleştirimi, <tt>(</tt> ve <tt>)</tt> ile de etki alanının başlangıcı ve sonu gösterilmiştir (bu örnek için yukarıdaki örneğin biçembendinin kullanıldğı varsayılmıştır)</p>

<eg><![CDATA[
<OL>                <!-- (madde[0] => 0       -->
  <LI>madde         <!--  madde[0]++ (= 1)    -->
  <LI>madde         <!--  madde[0]++ (= 2)    -->
    <OL>            <!--  (madde[1] => 0      -->
      <LI>madde     <!--   madde[1]++ (= 1)   -->
      <LI>madde     <!--   madde[1]++ (= 2)   -->
      <LI>madde     <!--   madde[1]++ (= 3)   -->
        <OL>        <!--   (madde[2] => 0     -->
          <LI>madde <!--    madde[2]++ (= 1)  -->
        </OL>       <!--   )                  -->
        <OL>        <!--   (madde[3] => 0     -->
          <LI>madde <!--    madde[3]++ (= 1)  -->
        </OL>       <!--   )                  -->
      <LI>madde     <!--   madde[1]++ (= 4)   -->
    </OL>           <!--  )                   -->
  <LI>madde         <!--  madde[0]++ (= 3)    -->
  <LI>madde         <!--  madde[0]++ (= 4)    -->
</OL>               <!-- )                    -->
<OL>                <!-- (madde[4] => 0       -->
  <LI>madde         <!--  madde[4]++ (= 1)    -->
  <LI>madde         <!--  madde[4]++ (= 2)    -->
</OL>               <!-- )                    -->
]]></eg>
</example>

<p><literal>counters()</literal> işlevi aynı isimli sayaçların değerlerinin arasına belirtilen dizgenin yerleştirilmesiyle elde edilen dizge ile döner.</p>

<example>
<p>Aşağıdaki biçembent liste öğelerini "1", "1.1", "1.1.1", vb. olarak numaralar:</p>

<eg>OL { counter-reset: madde }
LI { display: block }
LI:before { content: counters(madde, "."); counter-increment: madde }</eg>
</example>
</div3>

<div3 id="counter-styles">
<head>Sayaç biçemleri</head>

<p>Öntanımlı olarak, sayaçlar onluk tabandaki sayılarla biçimlenir, ancak <property>list-style-type</property> niteliğinde geçerli tüm biçemler sayaçlar için de geçerlidir. Öntanımlı biçem için sözdizimi şöyledir:</p>

<eg role="layout">counter(<var>ad</var>)</eg>

<p>Biçem belirtmek gerekirse, sözdizimi şöyle olur:</p>

<eg role="layout">counter(<var>ad</var>, <valueref>list-style-type</valueref>)</eg>

<p><literal>disc</literal>, <literal>circle</literal>,
<literal>square</literal> ve <literal>none</literal> dahil bütün biçemlere izin verilir.</p>

<eg>h1:before        { content: counter(chno, upper-latin) ". " }
h2:before        { content: counter(section, upper-roman) " - " }
blockquote:after { content: " [" counter(bq, hebrew) "]" }
div.note:before  { content: counter(notecntr, disc) " " }
p:before         { content: counter(p, none) }</eg>
</div3>

<div3 id="generate53">
<head>Gösterilmeyen elemanlardaki sayaçlar</head>

<p>Gösterilmeyen (<property>display</property> niteliğinin değeri <literal>none</literal> olan) bir eleman bir sayacı sıfırlayamaz veya arttıramaz.</p>

<example>
<p>Aşağıdaki biçembentte "secret" değerli <tt>class</tt> özniteliklerine sahip <htmltag>h2</htmltag> elemanları 'count2' sayacını arttırmayacaktır:</p>

<eg>h2.secret {counter-increment: count2; display: none}</eg>
</example>

<p><property>visibility</property> niteliğinin değeri <literal>hidden</literal> olan elemanlar da sayaçları arttıramaz.</p>
</div3>
</div2>

<div2 id="markers">
<head>İmleyiciler ve listeler</head>

<p>BB'de <termref def="block-level">blok seviyesinden</termref> elemanların çoğu bir <termref def="principal-box">ilkesel blok çerçevesi</termref> üretir. Bu bölümde bir elemanın iki çerçeve üretmesine sebep olan iki BB mekanizması inceleyeceğiz. Üretilen çerçevelerden biri <termref def="principal-box">ilkesel blok çerçevesi</termref> (elemanın içeriği için), diğeri ayrı bir <term>imleyici çerçevesi</term>dir (imleyici olarak bir şekil, harf veya numara). İmleyici çerçevesi, ilkesel çerçevenin içinde veya dışında konumlanabilir. <selector>:before</selector> ve <selector>:after</selector> içeriğinin tersine, imleyici çerçevesi, konumlama şeması ne olursa olsun ilkesel çerçevenin konumunu etkilemez.</p>

<p><indexterm><primary>imleyiciler</primary></indexterm>
İki mekanizmanın daha genel olanı BB2 ile gelen <term>imleyiciler</term> mekanizmasıdır. Daha sınırlı mekanizma ise BB1'in <termref def="lists">liste</termref> nitelikleridir. Liste nitelikleri biçembent yazarlarına çoğu sıralı ve sırasız liste senaryosu için hızlı ve kolay sonuçlar üretir. Bununla birlikte imleyiciler biçembent yazarlarına imleyici içeriği ve konumu üzerinde daha hassas bir denetim sunar. İmleyiciler, yeni liste biçemleri oluşturma, kenar dış boşluklarındaki notları numaralama ve daha bir çok şey için <termref def="counters">sayaçları</termref> kullanabilirler.</p>

<example>
<p>Aşağıda, her numaralı liste öğesinden sonra nokta eklemek için imleyicilerin nasıl kullanılacağı gösterilmiştir:</p>

<eg><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
   <head>
     <title>İmleyicilerle bir listenin oluşturulması</title>
     <style type="text/css">
          li:before {
              display: marker;
              content: counter(sayacim, lower-roman) ".";
              counter-increment: sayacim;
          }
     </style>
  </head>
  <body>
    <ol>
      <li> Bu birinci madde.
      <li> Bu ikinci madde.
      <li> Bu üçüncü madde.
    </ol>
  </body>
</html>]]></eg>

<p>Bu HTML belgenin şöyle bir sonuç üretmesi gerekir:</p>

<eg>   i. Bu birinci madde.
  ii. Bu ikinci madde.
 iii. Bu üçüncü madde.</eg>
</example>

<p><specref ref="descendant-selectors"/> ve <specref ref="child-selectors"/> ile, iç içe listelerin derinliğine bağlı olarak farklı imleyici türleri belirtmek mümkündür.</p>

<div3 id="marker-offset">
<head>İmleyiciler: <property>marker-offset</property> niteliği</head>

<p>İmleyiciler bir <selector>:before</selector> veya <selector>:after</selector> sözde elemanının <property>display</property> niteliğine <literal>marker</literal> değeri atanarak oluşturulurlar. Blok ve satıriçi <selector>:before</selector> ve <selector>:after</selector> içeriği eleman tarafından üretilen <termref def="principal-box">ilkesel çerçevenin</termref> parçasıyken, <literal>marker</literal> içeriği ilkesel çerçevenin dışında, bağımsız bir imleyici çerçevesinde biçimlenir. İmleyici çerçeveleri tek bir satır (yani bir <termref def="line-box">satır çerçevesi</termref>) olarak biçimlenir, dolayısıyla <titleref ref="floats">yüzen elemanlar</titleref> kadar esnek değildirler. İmleyici çerçevesi sadece, içeriği üreten sözde elemanın <property>content</property> niteliği olduğu takdirde üretilir.</p>

<p>İmleyici çerçevelerinin kenar iç boşlukları (padding) ve kenar çizgileri (border) vardır ama kenar dış boşlukları (margin) yoktur.</p>

<p><selector>:before</selector> sözde elemanı için, imleyici çerçevesinin taban çizgisi (baseline) ile ilkesel çerçevenin ilk satır çerçevesinin taban çizgisi düşey olarak hizalanır. Eğer ilkesel çerçevenin ilk satır çerçevesi yoksa veya ilkesel çerçevenin içinde ilk satır çerçevesinden önce bir blok çerçevesi varsa, imleyici çerçevesinin üst kenarı ile ilkesel çerçevenin üst kenarı hizalanır.</p>

<p><selector>:after</selector> sözde elemanı için, imleyici çerçevesinin taban çizgisi  ile ilkesel çerçevenin son satır çerçevesinin taban çizgisi düşey olarak hizalanır. Eğer ilkesel çerçeve bir son satır çerçevesine sahip değilse veya ilkesel çerçevenin içinde son satır çerçevesinden sonra bir blok çerçevesi varsa, imleyici çerçevesinin alt kenarı ile ilkesel çerçevenin alt kenarı hizalanır.</p>

<p>İmleyici çerçevesinin yüksekliği <property>line-height</property> niteliği ile verilir. <selector>:before</selector> (<selector>:after</selector>) imleyici çerçevesi ilkesel çerçevenin ilk (son) satır çerçevesinin yükseklik hesabıyla etkileşir. Bu bakımdan, imleyiciler ayrı satır çerçevelerinde bulunsalar bile bir elemanın içeriğinin ilk ve son satırı ile hizalanırlar. İlkesel çerçevenin ilk satır çerçevesinin yokluğunda imleyici çerçevesi kendi satır çerçevesini tek başına oluşturur.</p>

<p>Bir imleyici çerçevenin kendi satır çerçevesi içindeki düşey hizası <property>vertical-align</property> niteliği ile belirtilir.</p>

<p><property>width</property> niteliğinin değeri <literal>auto</literal> olduğu takdirde imleyici çerçevesinin <termref def="content-width">içerik genişliği</termref> içeriğin kendi genişliği olur; aksi takdirde, <property>width</property> niteliğinin değeri geçerlidir. İçerik genişliğinden daha küçük <property>width</property> değerleri için, taşma davranışını <property>overflow</property> niteliği belirler. İmleyici çerçevesi ile ilkesel çerçeve bir miktar birbirlerinin için girebilirler. İçerik genişliğinden daha büyük <property>width</property> değerleri için, imleyici çerçevesi içindeki yatay hiza <property>text-align</property> niteliği ile belirlenir.</p>

<p><property>marker-offset</property> niteliği, bir imleyici çerçevesinin ilişkili olduğu <termref def="principal-box">ilkesel çerçeve</termref> ile arasındaki yatay mesafeyi belirtir. Bu mesafe, bunların en yakın <termref def="border-edge">kenar çizgileri</termref> arasındaki uzaklıktır.</p>

<note><p>Soldan sağa biçimlenen bir bağlamda, bir imleyici bir yüzen çerçevenin sağından akıyorsa, ilkesel çerçeve yüzen çerçevenin sağından aşağı doğru akacak, fakat imleyici çerçeve yüzen elemanın solunda görünecektir. İlkesel çerçevenin sol kenarı yüzen çerçevenin soluna düştüğünden (<specref ref="floats"/> bölümündeki açıklamaya bakınız) ve imleyici çerçevesi ilkesel çerçevenin kenarının dışında kaldığından, imleyici ayrıca yüzen çerçevenin de solunda kalacaktır. Sağdan sola biçimlenen, imleyici çerçevesinin yüzen çerçevenin solundan aktığı bağlamda benzer bir davranış uygulanır.</p></note>

<p><code>display: list-item</code>'lı bir eleman tarafından <titleref ref="generate">üretilen içerik</titleref> için <property>display</property> niteliği <literal>marker</literal> değerine sahip olduğu takdirde, <selector>:before</selector> için üretilen bir imleyici çerçevesi normal liste öğesi imleyicisinin yerine geçer.</p>

<example>
<p>Bu örnekte, içerik, sabit genişlikteki bir imleyici çerçevesi içinde ortalanmaktadır:</p>

<eg><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
 <html>
    <head>
      <title>İmleyici çerçevesinde içeriğin hizalanması</title>
      <style type="text/css">
           li:before {
               display: marker;
               content: "(" counter(sayac) ")";
               counter-increment: sayac;
               width: 6em;
               text-align: center;
           }
      </style>
   </head>
   <body>
     <ol>
       <li> Bu madde, listenin birinci maddesidir.
       <li> Bu madde, listenin ikinci maddesidir.
       <li> Bu madde, listenin üçüncü maddesidir.
     </ol>
   </body>
 </html>]]></eg>

<p>Bu belge şöyle bir çıktı üretecektir:</p>

<eg>  (1)    Bu madde, listenin
         birinci maddesidir.
  (2)    Bu madde, listenin
         ikinci maddesidir.
  (3)    Bu madde, listenin
         üçüncü maddesidir.</eg>
</example>

<p>Sonraki örnekte imleyiciler liste öğelerinden önce ve sonra oluşturulmaktadır.</p>

<example>
<eg><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
  <head>
    <title>Liste öğelerinden önceki ve sonraki imleyiciler</title>
    <style type="text/css">
      @media screen, print {
         li:before {
              display: marker;
              content: url("smiley.gif");
         }
         li:after {
              display: marker;
              content: url("sad.gif");
         }
      }
    </style>
  </head>
  <body>
    <ul>
      <li>Birinci madde birinci gelir
      <li>İkinci madde ikinci gelir
    </ul>
  </body>
</html>]]></eg>

<p>Bu belge şöyle bir çıktı üretir (duygu belirten resimlerin yerine ascii karşılıkları kullanılmıştır):</p>

<eg>  :-) Birinci madde
      birinci gelir    :-(
  :-) İkinci madde
      ikinci gelir     :-(</eg>
</example>

<p>Aşağıdaki örnekte, imleyiciler uyarıları (paragrafları) numaralamakta kullanılmaktadır:</p>

<example>
<eg><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
  <head>
    <title>Uyarıları numaralayan imleyiciler</title>
    <style type="text/css">
      p { margin-left: 12 em; }
      @media screen, print {
         p.warn:before  {
              display: marker;
              content: url("warn.gif")
                       "Uyar\131 " counter(warn-counter) ":";
              counter-increment: warn-counter;
              text-align: left;
              width: 10em;
         }
     }
    </style>
  </head>
  <body>
    <p>Burası belgenin ilk paragrafıdır.</p>
    <p class="warn">Burada bir şeylere dikkat çekilmektedir.</p>
    <p>Belge bu paragrafla bitmektedir.</p>
  </body>
</html>]]></eg>

<p>Bu belge şöyle bir çıktı üretir:</p>

<eg>            Burası belgenin
            ilk paragrafıdır.

 Uyarı 1:   Burada bir şeylere
            dikkat çekilmektedir.

            Belge bu paragrafla
            bitmektedir.</eg>
</example>

<indexterm><primary><property>marker-offset</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>marker-offset</property></secondary></indexterm>
<propinfo>
  <propname>marker-offset</propname>
  <value><valueref>uzunluk</valueref> | <literal>auto</literal> | <literal>inherit</literal></value>
  <initial><literal>auto</literal></initial>
  <applies-to><code>display: marker</code> bildirimli elemanlar</applies-to>
  <inherited>hayır</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p><indexterm><primary><valueref>uzunluk</valueref></primary></indexterm>
Bu nitelik, bir imleyici çerçevesinin ilişkili olduğu <termref def="principal-box">ilkesel çerçeve</termref> ile arasındaki yatay mesafeyi belirtir. Bu mesafe, ya kullanıcı arayüzü tarafından seçilir (<literal>auto</literal>) ya da kullanıcı tarafından belirtilir (<valueref>uzunluk</valueref>). Uzunluk negatif olabilir ama gerçeklenime özgü sınırlamalar olabilir.</p>

<example>
<p>Bu örnekte imleyicilerin liste öğelerinin numaralarından sonra nokta koymak için kullanılışı gösterilmektedir:</p>

<eg><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
    <head>
      <title>İmleyiciler 5. örnek</title>
      <style type="text/css">
           p { margin-left: 8em } /* İmleyiciler için boşluk bırak */
           li:before {
               display: marker;
               marker-offset: 3em;
               content: counter(hepsayar, lower-roman) ".";
               counter-increment: hepsayar;
           }
      </style>
   </head>
   <body>
     <p> Burası listeden önceki uuupuzun paragraftır.
     <ol>
       <li> Listenin birinci maddesi.
       <li> Listenin ikinci maddesi.
       <li> Listenin üçüncü maddesi.
     </ol>
     <p> Burası listeden sonraki uuupuzun paragraftır.
   </body>
 </html>]]></eg>

<p>Bu belge şöyle bir çıktı üretir:</p>

<eg>        Burası listeden önceki
        uuupuzun paragraftır.

   i.   Listenin birinci maddesi.
  ii.   Listenin ikinci maddesi.
 iii.   Listenin üçüncü maddesi.

        Burası listeden sonraki
        uuupuzun paragraftır.</eg>
</example>
</div3>

<div3 id="lists">
<indexterm><primary>liste nitelikleri</primary></indexterm>
<head>Listeler: the <property>list-style-type</property>, <property>list-style-image</property>, <property>list-style-position</property> ve <property>list-style</property> nitelikleri</head>

<p><term>Liste nitelikleri</term> listelerin temel görsel biçimini sağlar. Daha genel imleyicilerde olduğu gibi, <code>display: list-item</code>'lı bir eleman, içeriği ve seçimlik imleyici çerçevesi için bir <termref def="principal-box">ilkesel çerçeve</termref> üretir. Diğer liste nitelikleri sayesinde biçembent yazarları bu ilkesel çerçeveyle ilgili imleyici türünü (resim, harf, rakam) ve konumunu belirtebilirler (içerikten önce içerde veya dışarda). Biçembent yazarlarının liste imleyicisi için ayrı ayrı biçem (renk, yazıtipi, hiza, vb.) ve ilkesel çerçeveye göre konum belirtmesine izin verilmez.</p>

<p>Öte yandan, (<code>display: marker</code> ile oluşturulan) bir M imleyicisi liste nitelikleri tarafından oluşturulan bir liste öğesi ile kullanılırken, M, standart liste öğesi imleyicisinin yerine geçer.</p>

<p>Liste nitelikleri ile birlikte, ilkesel çerçeveye sadece <titleref ref="background-properties">artalan nitelikleri</titleref> uygulanır; bir <literal>outside</literal> imleyici çerçevesi saydamdır. İmleyiciler imleyici çerçevesi biçemi üzerinde daha fazla denetim sunarlar.</p>

<indexterm><primary sortas="list-style-type"><property>list-style-type</property></primary></indexterm>
<indexterm><primary><valueref>list-style-type</valueref></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>list-style-type</property></secondary></indexterm>
<propinfo role="asvalue">
  <propname>list-style-type</propname>
  <value><literal>disc</literal> | <literal>circle</literal> | <literal>square</literal> | <literal>decimal</literal> | <literal>decimal-leading-zero</literal> | <literal>lower-roman</literal> | <literal>upper-roman</literal> | <literal>lower-greek</literal> | <literal>lower-alpha</literal> | <literal>lower-latin</literal> | <literal>upper-alpha</literal> | <literal>upper-latin</literal> | <literal>hebrew</literal> | <literal>armenian</literal> | <literal>georgian</literal> | <literal>cjk-ideographic</literal> | <literal>hiragana</literal> | <literal>katakana</literal> | <literal>hiragana-iroha</literal> | <literal>katakana-iroha</literal> | <literal>none</literal> | <literal>inherit</literal></value>
  <initial><literal>disc</literal></initial>
  <applies-to><code>display: list-item</code> bildirimli elemanlar</applies-to>
  <inherited>evet</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p><property>list-style-image</property> niteliği <literal>none</literal> değerine sahipse veya <valueref>tanım-yeri</valueref> ile belirtilen resim gösterilemezse, bu nitelik liste öğesi imleyicisinin görünümünü belirler. <literal>none</literal> değeri hiçbir imleyici belirtmez, aksi takdirde üç tür imleyici vardır: şekiller, numaralama sistemleri ve alfabetik sistemler. <kw>Ek Bilgi:</kw> Numaralı listeler, gezinmeyi kolaylaştırarak belge erişilebilirliğini arttırırlar.</p>

<p><indexterm><primary><literal>disc</literal></primary></indexterm>
<indexterm><primary><literal>circle</literal></primary></indexterm>
<indexterm><primary><literal>square</literal></primary></indexterm>
<termdef id="value-def-disc" term="disk şekli">Şekiller <code>disc</code> (içi dolu daire)</termdef>, <termdef id="value-def-circle" term="daire şekli"><code>circle</code> (içi boş daire)</termdef> ve <termdef id="value-def-square" term="kare şekli"><code>square</code> (kare) değerleriyle belirtilirler</termdef>. Şekillerin yorumlanışı kullanıcı arayüzüne bağlıdır.</p>

<p>Numaralama sistemleri şöyle belirtilir:</p>

<varlist>
<gitem>
<label id="value-def-decimal">
<indexterm><primary><literal>decimal</literal></primary></indexterm>
<code>decimal</code></label>
<def><p>Onluk tabandaki sayılar 1'den başlar.</p></def>
</gitem>
<gitem>
<label id="value-def-decimal-leading-zero"> <indexterm><primary><literal>decimal-leading-zero</literal></primary></indexterm>
<code>decimal-leading-zero</code></label>
<def><p>Önlerine sıfır konmuş onluk tabandaki sayılar (01, 02, 03, ...,
98, 99 gibi).</p></def>
</gitem>
<gitem>
<label id="value-def-lower-roman">
<indexterm><primary><literal>lower-roman</literal></primary></indexterm>
<code>lower-roman</code></label>
<def><p>Küçük harflerle romen rakamları (i, ii, iii, iv, v, vs.).</p></def>
</gitem>
<gitem>
<label id="value-def-upper-roman">
<indexterm><primary><literal>upper-roman</literal></primary></indexterm>
<code>upper-roman</code></label>
<def><p>Büyük harflerle romen rakamları (I, II, III, IV, V, vs.).</p></def>
</gitem>
<gitem>
<label id="value-def-hebrew">
<indexterm><primary><literal>hebrew</literal></primary></indexterm>
<code>hebrew</code></label>
<def><p>Geleneksel İbranice numaralama (Alef, Bet, ... Tet Vav, Tet Zayin, ... Yod Tet, Kaf ...).</p></def>
</gitem>
<gitem>
<label id="value-def-georgian">
<indexterm><primary><literal>georgian</literal></primary></indexterm>
<code>georgian</code></label>
<def><p>Geleneksel Gürcüce numaralama (an, ban, gan, ..., he, tan, in,
in-an, ...).</p></def>
</gitem>
<gitem>
<label id="value-def-armenian">
<indexterm><primary><literal>armenian</literal></primary></indexterm>
<code>armenian</code></label>
<def><p>Geleneksel Ermenice numaralama.</p></def>
</gitem>
<gitem>
<label id="value-def-cjk-ideographic">
<indexterm><primary><literal>cjk-ideographic</literal></primary></indexterm>
<code>cjk-ideographic</code></label>
<def><p>Düz sembolik (Çince/Japonca) numaralama</p></def>
</gitem>
<gitem>
<label id="value-def-hiragana">
<indexterm><primary><literal>hiragana</literal></primary></indexterm>
<code>hiragana</code></label>
<def><p>a, i, u, e, o, ka, ki, ...</p></def>
</gitem>
<gitem>
<label id="value-def-katakana">
<indexterm><primary><literal>katakana</literal></primary></indexterm>
<code>katakana</code></label>
<def><p>A, I, U, E, O, KA, KI, ...</p></def>
</gitem>
<gitem>
<label id="value-def-hiragana-iroha">
<indexterm><primary><literal>hiragana-iroha</literal></primary></indexterm>
<code>hiragana-iroha</code></label>
<def><p>i, ro, ha, ni, ho, he, to, ...</p></def>
</gitem>
<gitem>
<label id="value-def-katakana-iroha">
<indexterm><primary><literal>katakana-iroha</literal></primary></indexterm>
<code>katakana-iroha</code></label>
<def><p>I, RO, HA, NI, HO, HE, TO, ...</p></def>
</gitem>
</varlist>

<p>Numaralama sistemini tanımayan bir kullanıcı arayüzünün <literal>decimal</literal> değeri belirtilmiş gibi davranması gerekir.</p>

<note><p>Bu belge numaralama sistemlerinin algoritmalarını (romen rakamlarının oluşturuluşu gibi) belirtmez. Gelecekte bir W3C notu olarak bu bilgi sağlanabilir.</p></note>

<p>Alfabetik sistemler şöyle belirtilir:</p>

<varlist>
<gitem>
<label id="value-def-lower-latin">
<indexterm><primary><literal>lower-latin</literal></primary></indexterm>
<indexterm><primary><literal>lower-alpha</literal></primary></indexterm>
<code>lower-latin</code></label>
<label id="value-def-lower-alpha"><code>lower-alpha</code></label>
<def><p>Küçük ascii harfleri (a, b, c, ... z).</p></def>
</gitem>
<gitem>
<label id="value-def-upper-latin">
<indexterm><primary><literal>upper-latin</literal></primary></indexterm>
<indexterm><primary><literal>upper-alpha</literal></primary></indexterm>
<code>upper-latin</code></label>
<label id="value-def-upper-alpha"><code>upper-alpha</code></label>
<def><p>Büyük ascii harfleri (A, B, C, ... Z).</p></def>
</gitem>
<gitem>
<label id="value-def-lower-greek">
<indexterm><primary><literal>lower-greek</literal></primary></indexterm>
<code>lower-greek</code></label>
<def><p>Küçük Yunan harfleri (α, β, γ, ...)</p></def>
</gitem>
</varlist>

<p>Bu belirtim alfabetik karakterleri sıralamada alfabenin sonuna gelindiğinde nasıl devam edileceğini tanımlamaz. Örneğin, <literal>lower-latin</literal> için 27. liste öğesinin nasıl imleneceği tanımsızdır. Uzun listelerde yazarların gerçek sayılar belirtmelerini öneririz.</p>

<example>
<eg><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
   <head>
     <title>Küçük latin harfli numaralama</title>
     <style type="text/css">
          ol { list-style-type: lower-roman }
     </style>
  </head>
  <body>
    <ol>
      <li> Birinci şık.
      <li> İkinci şık.
      <li> Üçüncü şık.
    </ol>
  </body>
</html>]]></eg>

<p>Bu belge şöyle bir çıktı üretir:</p>

<eg>  i Birinci şık.
 ii İkinci şık.
iii Üçüncü şık.</eg>

<p>Liste imleyicisinin hizalamasının (burada sağa yanaşıktır) kullanıcı arayüzüne bağlı oluşuna dikkat ediniz.</p>
</example>

<note><p>BB'nin gelecekteki sürümlerinde uluslararası numaralama için daha karmaşık mekanizmalar sağlanabilir.</p></note>

<indexterm><primary sortas="list-style-image"><property>list-style-image</property></primary></indexterm>
<indexterm><primary><valueref>list-style-image</valueref></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>list-style-image</property></secondary></indexterm>
<propinfo role="asvalue">
  <propname>list-style-image</propname>
  <value><valueref>tanım-yeri</valueref> | <literal>none</literal> | <literal>inherit</literal></value>
  <initial><literal>disc</literal></initial>
  <applies-to><code>display: list-item</code> bildirimli elemanlar</applies-to>
  <inherited>evet</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p>Bu nitelik, liste öğesi imleyicisi olarak kullanılacak resmi atamak için kullanılır. Resim elde edilebilirse, <property>list-style-type</property> ile atanan imleyicinin yerine kullanılır.</p>

<example>
<p>Bu örnekte, her liste öğesinin başlangıcına imleyici olarak "ellipse.png" resmi yerleştirilmektedir:</p>

<eg>ul { list-style-image: url("http://png.com/ellipse.png") }</eg>
</example>

<indexterm><primary sortas="list-style-position"> <property>list-style-position</property></primary></indexterm>
<indexterm><primary><valueref>list-style-position</valueref></primary> </indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>list-style-position</property></secondary></indexterm>
<propinfo role="asvalue">
  <propname>list-style-position</propname>
  <value><literal>inside</literal> | <literal>outside</literal> | <literal>inherit</literal></value>
  <initial><literal>outside</literal></initial>
  <applies-to><code>display: list-item</code> bildirimli elemanlar</applies-to>
  <inherited>evet</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p>Bu nitelik imleyici çerçevesinin ilkesel blok çerçevesindeki konumunu belirler. Değerlerin anlamları:</p>

<varlist>
<gitem>
<label><indexterm><primary><literal>outside</literal></primary></indexterm>
<literal>outside</literal> [dışarısı]</label>
<def><p>İmleyici çerçevesi, ilkesel blok çerçevesinin dışındadır.<br/>
<kw>Bilgi: </kw> BB1 imleyici çerçevesinin konumunu hassas olarak belirlemezdi ve geriye uyumluluktan dolayı, BB2 belirsizlikte eşdeğer kalır. İmleyici çerçevelerinin denetiminde hassasiyet istiyorsanız lütfen imleyicileri kullanınız.</p></def>
</gitem>
<gitem>
<label><indexterm><primary><literal>inside</literal></primary></indexterm>
<literal>inside</literal> [içerisi]</label>
<def><p>İmleyici çerçevesi, ilkesel blok çerçevesinin ilk satır çerçevesidir.</p></def>
</gitem>
</varlist>

<example>
<eg><![CDATA[<html>
  <head>
    <title>İç ve dış imleyiciler</title>
    <style type="text/css">
      ul         { list-style: outside }
      ul.compact { list-style: inside }
    </style>
  </head>
  <body>
    <ul>
      <li>birinci liste maddesi birinci gelir
      <li>ikinci liste maddesi ikinci gelir
    </ul>

    <uL class="compact">
      <li>birinci liste maddesi birinci gelir
      <li>ikinci liste maddesi ikinci gelir
    </ul>
  </body>
</html>]]></eg>

<p>Bu belgenin çıktısı şöyle olurdu:</p>

<figure id="img-list-inout">
<graphic source="images/list-inout.png" alt="İç ve dış imleyicili listelerin farkı" />
[<loc href="images/longdesc/list-inout-desc.html" title="İç ve dış liste imleyicileri arasındaki farkı gösteren örneğin geniş açıklaması">Açıklama</loc>]
</figure>
</example>

<p>Sağdan sola yazılan metinlerde imleyiciler çerçevenin sağ tarafında kalır.</p>

<indexterm><primary><property>list-style</property></primary></indexterm>
<indexterm><primary>nitelikler</primary> <secondary><property>list-style</property></secondary></indexterm>
<propinfo>
  <propname>list-style</propname>
  <value>[ <valueref>list-style-type</valueref> || <valueref>list-style-position</valueref> || <valueref>list-style-image</valueref> ] | <literal>inherit</literal></value>
  <initial>kestirme nitelikler için tanımlanmaz</initial>
  <applies-to><code>display: list-item</code> bildirimli elemanlar</applies-to>
  <inherited>evet</inherited>
  <percentages/>
  <media><termref def="visual-media-group">görsel</termref></media>
</propinfo>

<p><property>list-style</property> niteliği <property>list-style-type</property>, <property>list-style-image</property> ve <property>list-style-position</property> nitelikleri için kestirme niteliktir.</p>

<eg>ul { list-style: upper-roman inside }   /* Bir "ul" elemanı */
ul > li > ul { list-style: circle outside } /* Bir "ul" elemanının
                                            "li" çocuğunun "ul" çocuğu */</eg>

<p>Yazarlar <property>list-style</property> bilgisini doğrudan liste öğesi elemanlarında (örn, HTML'de <htmltag>li</htmltag>) belirtebiliyor olsalar da, bunu dikkatli yapmalıdırlar. Aşağıdaki kurallar benzer olmakla beraber, ilki bir <titleref ref="descendant-selectors">astsal seçici</titleref> belirtirken ikincisi (daha özgü) bir <titleref ref="child-selectors">çocuk seçici</titleref> belirtir.</p>

<eg>
ol.alpha li   { list-style: lower-alpha } /* Bir <kw>ol</kw>'nin bir <kw>li</kw> astsalı */
ol.alpha > li { list-style: lower-alpha } /* Bir <kw>ol</kw>'nin bir <kw>li</kw> çocuğu */</eg>

<p>Sadece <titleref ref="descendant-selectors">astsal seçicileri</titleref> kullanan yazarlar umduklarını bulamayabilirler. Aşağıdaki kuralları ele alalım:</p>

<eg><![CDATA[<html>
  <head>
    <title>UYARI: Bütünleşimden dolayı beklenmedik sonuçlar</title>
    <style type="text/css">
      ol.alpha li  { list-style: lower-alpha }
      ul li        { list-style: disc }
    </style>
  </head>
  <body>
    <ol class="alpha">
      <li>seviye 1</li>
      <ul>
         <li>seviye 2</li>
      </ul>
    </ol>
  </body>
</html>]]></eg>

<p>Bu belge şu sonucu üretir:</p>
<eg>a. seviye 1
    a. seviye 2</eg>

<p>Halbuki istenen "seviye 2" nin imleyicisinin bir <literal>disc</literal> olmasıydı. <titleref ref="cascading-order">Bütünleşim sırasından</titleref> dolayı ilk kural (daha özgü sınıf bilgisi içerdiğinden) ikincisini gölgeler. Aşağıdaki kurallar bir <titleref ref="child-selectors">çocuk seçici</titleref> belirterek sorunu çözer:</p>

<eg>ol.alpha > li  { list-style: lower-alpha }
ul li   { list-style: disc }</eg>

<p>Başka bir çözüm de <property>list-style</property> bilgisini sadece liste türü elemanlarında belirtmektir:</p>

<eg>ol.alpha  { list-style: lower-alpha }
ul        { list-style: disc }</eg>

<p>Kalıtım <property>list-style</property> değerlerini <htmltag>ol</htmltag> ve <htmltag>ul</htmltag> elemanlarından <htmltag>li</htmltag> elemanlarına aktaracaktır. Liste biçemi bilgisini belirmek için önerilen yol budur.</p>

<example>
<p>Tanım-yeri değerinin başka bir değerle birlikte kullanımı:</p>

<eg>UL { list-style: url("http://png.com/ellipse.png") disc }</eg>

<p>Burada belirtilen <literal>disc</literal>, resim bulunamazsa kullanılacaktır.</p>
</example>

<p><property>list-style</property> niteliğinde belirtilen bir <literal>none</literal> değeri hem <property>list-style-type</property> hem de
<property>list-style-image</property> niteliğine <literal>none</literal> değeri atanmasına sebep olur.</p>

<example>
<eg>UL { list-style: none }</eg>

<p>Bu kural hiçbir liste öğesi imleyicisi gösterilmemesiyle sonuçlanacaktır.</p>
</example>
</div3>
</div2>
</div1>


