Bütünleşik Biçembentler, 2. Aşama
ÖncekiYukarıSonraki

13 Sayfalı Ortam

İçindekiler

    13.1 Sayfalı ortama giriş
    13.2 Sayfa çerçeveleri: @page kuralı
          13.2.1 Sayfa dış boşlukları
          13.2.2 Sayfa boyutları: size niteliği
               13.2.2.1 Hedef yaprağa sığmayan sayfa çerçevelerinin oluşturulması
               13.2.2.2 Sayfa çerçevesinin hedefte konumlanması
          13.2.3 Kesme imleri: marks niteliği
          13.2.4 Sol, sağ ve ilk sayfalar
          13.2.5 Sayfa çerçevesi dışındaki içerik
    13.3 Sayfa kesmeleri
          13.3.1 Önden/sondan/içinden sayfa kesme elemanları: page-break-before, page-break-after, page-break-inside
          13.3.2 İsimli sayfaların kullanımı: page niteliği
          13.3.3 Elemanların içindeki kesmeler: orphans, widows
          13.3.4 İzin verilen sayfa kesmeleri
          13.3.5 Zorlanmış sayfa kesmeleri
          13.3.6 "En iyi" sayfa kesmeleri
    13.4 Sayfa bağlamında bütünleşme

13.1 Sayfalı ortama giriş

Sayfalı ortam (kağıt, saydam, bilgisayar ekranında gösterilen sayfalar, vb.), belge içeriğinin kesikli sayfalara ayrıldığı sürekli ortamdan farklıdır. Sayfalara bölünmeyi sağlamak için BB2 görsel biçimleme modelini şöyle genişletir:

  1. sayfa çerçevesi, çerçeveli modeli genişleterek yazarlara sayfa boyutu, kenar boşlukları, vb. belirtme imkanı sağlar.

  2. Sayfa modeli, sayfalara bölünmeyi sağlamak adına görsel biçimleme modelini genişletir.

BB2 sayfa modeli bir belgenin sonsuz genişlikte ve yükseklikteki dörtgen bir alanın (sayfa çerçevesi) içinde nasıl biçimleneceğini belirtir. Sayfa çerçevesi, belgenin eninde sonunda yer aldığı gerçek yaprağın (kağıt, saydam, vs.) karşılığı olmak zorunda değildir. BB sayfa modeli sayfa çerçevesinde biçimleme belirtir, fakat sayfa çerçevesini yaprağa aktarmak kullanıcı arayüzünün sorumluluğundadır. Bazı aktarım olasılıkları:

BB2, kullanıcı arayüzlerinin sayfa çerçevelerini yapraklara nasıl aktaracağını belirtmese de, hedef yaprağın boyutları ve baskı yönü hakkında birşeyler söyleyecek mekanizmaları içerir.

13.2 Sayfa çerçeveleri: @page kuralı

Bir sayfa çerçevesi iki alan içeren bir dikdörtgen alandır:

Not:
BB2'de, çerçeve çizgisi nitelikleri ve iç boşluk nitelikleri sayfalara uygulanmaz; ama ilerde olabilir.

Biçembent yazarları bir sayfa çerçevesinin boyutlarını, baskı yönünü, dış boşluklarını, vs.yi bir @page kuralı içinde belirtirler. Bir @page kuralı sırayla @page anahtar sözcüğü, bir sayfa seçici (arada boşluk olmaksızın ardından isteğe bağlı bir sayfa sözde sınıfı gelebilir) ve (sayfa bağlamı da denen) bir bildirim blokundan oluşur.

Bir sayfa seçici bildirimlerin hangi sayfalara uygulanacağını belirtir. BB2'de, sayfa seçiciler ilk sayfa, bütün sol sayfalar, bütün sağ sayfalar veya belli bir ismi olan bir sayfa için atanabilirler.

Sayfa çerçevesinin boyutları size nitelikleri ile ayarlanır. Sayfa alanının boyutları sayfa çerçevesinden dış boşluk alanı çıkarılarak bulunur.

Örnek:
Aşağıdaki @page kuralı, 8.5 x 11 inçlik sayfa çerçevesi ile sayfa alanı arasında tüm kenarlarda 2 cm.lik dış boşluk oluşturur:

@page { size: 8.5in 11in; margin: 2cm }

Bir @page kuralı içindeki bir marks niteliği sayfa çerçevesi için kesme ve hizalama imlerini belirtir.

13.2.1 Sayfa dış boşlukları

Dış boşluk nitelikleri (margin-top, margin-right, margin-bottom, margin-left ve margin) sayfa bağlamına uygulanır. Aşağıdaki şekilde yaprak, sayfa çerçevesi ve sayfa dış boşlukları arasındaki ilişki resmedilmiştir:

Sayfa alanının aşağı ve yukarısındaki çerçeve dış boşluklarının hesaplanmış değeri '0'dır.

Sayfa bağlamının yazıtipleriyle bir bağı yoktur, dolayısıyla em ve ex birimlerine izin verilmez. Dış boşluk niteliklerinin yüzdelik değerleri sayfa çerçevesinin boyutlarına görelidir; sol ve sağ dış boşluklar için sayfa çerçevesinin genişliği ölçü alınırken, alt ve üst dış boşluklar için sayfa çerçevesinin yüksekliği ölçü alınır. BB2 nitelikleri ile ilgili diğer tüm birimlere izin verilmiştir.

Negatif dış boşluk değerleri (hem sayfa çerçevesi hem de elemanlar üzerinde) veya mutlak konumlama nedeniyle içerik sayfa çerçevesinin dışına taşabilir, fakat bu içerik kullanıcı arayüzü, yazıcı veya belki de bir kağıt kesici tarafından "kesilebilir".

13.2.2 Sayfa boyutları: size niteliği

sizeNİTELİK
Değer:uzunluk{1,2} | auto | portrait | landscape | inherit
İlk değer:auto
Uygulama yeri:sayfa bağlamı
Kalıtsallık:Elverişsiz
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

Bu nitelik sayfa çerçevesinin boyutlarını ve baskı yönünü belirtir.

Bir sayfa çerçevesinin boyutları göreli (ölçeklenebilir) ya da mutlak (sabit boyut) olabilir. Göreli sayfa çerçeveleri, kullanıcı arayüzlerine belgeyi ölçekleme ve hedef boyutu en iyi şekilde kullanma imkanı verir.

Bir göreli sayfa çerçevesi size niteliğinin üç değeri ile oluşturulur (Değerlerin Türkçeleri köşeli ayraç içinde yanlarına yazılmıştır):

auto
Sayfa çerçevesi hedef yaprağın yönüne ve boyutlarına ayarlanacaktır.

landscape [yatay]
Hedefin yönüne bakmaksızın, sayfa çerçevesi hedefle aynı yapılırken, uzun kenarlar yatay basılır.

portrait [düşey]
Hedefin yönüne bakmaksızın, sayfa çerçevesi hedefle aynı yapılırken, kısa kenarlar yatay basılır.

Örnek:
Bu örnekte, sayfa çerçevesinin dış kenarları hedefle hizalanacaktır. margin niteliğinin yüzdelik değerleri hedef boyuta göreli olarak belirtilmiştir. Yani, hedef yaprağın boyutları 21.0cm x 29.7cm (yani A4) ise dış boşluklar 2.10cm ve 2.97cm olur.

@page {
  size: auto;   /* auto değeri zaten ilk değerdir */
  margin: 10%;
}

size niteliği için uzunluk değerleri bir mutlak sayfa çerçevesi oluşturur. Eğer sadece bir uzunluk değeri belirtilmişse, bu değeri sayfa çerçevesinin hem genişliğine hem de yüksekliğine uygular. Sayfa çerçevesi ilk taşıyıcı blok olduğundan size niteliğinde yüzdelik değerlere izin verilmez.

Örnek:
@page {
  size: 8.5in 11in;  /* genişlik ve yükseklik */
}

Bu örnekte sayfa çerçevesinin genişliği 8.5inç, yüksekliği ise 11 inç olup hedef yaprak boyutlarının 8.5"x11" veya daha büyük olması gerekir.

Kullanıcı arayüzleri sayfa çerçevesinin yaprağa aktarımının denetimini kullanıcılarına verebilir (mutlak sayfa çerçevesinin döndürülmesi gibi).

13.2.2.1 Hedef yaprağa sığmayan sayfa çerçevelerinin oluşturulması

Bir sayfa çerçevesi hedef yaprağa sığmadığı takdirde kullanıcı arayüzü şunlardan birini yapmayı seçebilir:

  • Sayfa çerçevesini, böyle sığacaksa, 90° döndürür.
  • Hedefe sığacak şekilde sayfayı ölçeklendirir.

Kullanıcı arayüzlerinin bu işlemleri yerine getirmeden önce kullanıcıya sorması gerekir.

13.2.2.2 Sayfa çerçevesinin hedefte konumlanması

Sayfa çerçevesi hedef boyuttan küçük olduğu takdirde, kullanıcı arayüzü sayfa çerçevesini yaprağın herhangi bir yerine yerleştirmekte özgürdür. Bununla birlikte, çift taraflı basılan sayfaların hizalanması ve yaprağın kenarına yakın basılan bilgilerin ister istemez kaybından kaçınmak için sayfa çerçevesinin yaprağa ortalanması önerilir.

13.2.3 Kesme imleri: marks niteliği

marksNİTELİK
Değer:[ crop || cross ] | none | inherit
İlk değer:none
Uygulama yeri:sayfa bağlamı
Kalıtsallık:Elverişsiz
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

Yüksek nitelikli baskıda, sayfa çerçevesine çoğunlukla imler eklenir. Bu nitelik kesme ve/veya hizalama imlerinin sayfa çerçevesi kenarlarının hemen dışında oluşturulup oluşturulmayacağını belirtir.

Kesme imleri sayfanın nerede kesileceğini belirtir. Hizalama imleri ise yaprakları hizalamakta kullanılır.

İmler sadece mutlak sayfa çerçevelerinde bulunurlar. (size niteliğine bakınız). Göreli sayfa çerçevelerinde, sayfa çerçevesi hedefle hizalanır ve imler basılabilir alanın dışına konur.

İmlerin boyutları, biçemi ve konumu kullanıcı arayüzlerine bağlıdır.

13.2.4 Sol, sağ ve ilk sayfalar

Belgeler çift taraflı basılırken, sol ve sağ sayfaların sayfa çerçeveleri farklı olacaktır. Bu, sayfa bağlamında belirtilen BB sözde sınıfları ile sağlanabilir.

Kullanıcı arayüzleri tarafından tüm sayfalar özdevinimli olarak ya :left ya da :right sözde sınıfı olarak sınıflandırılır.

@page :left {
  margin-left: 4cm;
  margin-right: 3cm;
}

@page :right {
  margin-left: 3cm;
  margin-right: 4cm;
}

Eğer sol ve sağ sayfalar için ayrı bildirimler yapılmışsa, kullanıcı arayüzleri sayfa çerçevelerini sağ ve sol yapraklara aktarmıyor (yazıcı sadece tek taraflı baskı yapıyor olabilir) olsa bile bu bildirimleri dikkate almak zorundadır.

Biçembent yazarları bir belgenin ilk sayfası için :first sözde sınıfı ile ayrıca biçem belirtebilirler:

@page { margin: 2cm } /* Tüm dış boşluklar 2cm */

@page :first {        /* Baş sayfa için */
  margin-top: 10cm    /* Üst dış boşluk 10cm */
}

Belgenin ilk sayfasının :left veya :right sınıfından olması, belgenin ana yazma yönüne bağlı olup bu belgenin kapsamında değildir. Bununla birlikte, bir sol veya sağ ilk sayfa oluşturmaya zorlamak için biçembent yazarları ilk üretilen sayfa çerçevesinden önce bir sayfa kesmesi yerleştirebilirler. (örn, HTML'de bu <body> elemanı için belirtilir.)

:left veya :right @page kuralında belirtilmiş nitelikler, hiçbir sınıf belirtilmemiş @page kuralının niteliklerini geçersiz kılarlar. :first @page kuralında belirtilmiş nitelikler ise :left veya :right @page kuralında belirtilmiş nitelikleri geçersiz bırakırlar.

Not:
:left veya :right sözde sınıflarının belirtilmiş olması belgeyi tek veya çift taraflı basılır yapmaz ve bu konu bu belgenin kapsamı dışındadır.

Not:
BB'nin sonraki aşamalarında başka sayfa sözde sınıfları eklenebilir.

13.2.5 Sayfa çerçevesi dışındaki içerik

İçerik sayfa modeline göre biçimlenirken içeriğin bir kısmı sayfa çerçevesinin dışında kalabilir. Örneğin, white-space niteliğinin değeri olarak pre belirtilmiş bir eleman sayfa çerçevesinden daha geniş bir çerçeve üretebilir. Ayrıca, çerçeveler mutlak olarak konumlandıklarında münasebetsiz yerlerde bitebilirler. Örneğin resimler sayfa çerçevesinin kenarına veya 100.000 inç aşağısına yerleştirilmeye çalışılabilir.

Böyle elemanların gerektiği gibi biçimlenmesi için bir belirtim, bu belgenin kapsamı dışındadır. Yine de yazarlara ve kullanıcı arayüzlerine sayfa çerçevesinin dışında kalan içerikle ilgili olarak aşağıdaki genel ilkelere uymaları önerilir:

  • Sayfa çerçevesinin çok az dışında içeriğin yaprağın kenarına kadar basılmasına (sayfanın kanamasına) izin verilmelidir.

  • Elemanların konumlanmasına uyum sağlamak için kullanıcı arayüzlerinin büyük miktarda boş sayfa basmaktan kaçınması gerekir (100 boş sayfa istemezsiniz, herhalde). Yine de az miktarda boş sayfa üretmeye, page-break-before ve page-break-after niteliklerinin left ve right değerlerine uyum sağlamak için izin verilebilir.

  • Yazarların oluşmasını önlemek için elemanları alakasız yerlere konumlamaması gerekir. Bunun yerine şunlar yapılabilir:

    • Çerçeve üretimini tamamen baskılamak için display niteliğine none değeri atanabilir.
    • Çerçeveyi görünmez yapmak için visibility niteliği kullanılabilir.

  • Kullanıcı arayüzleri sayfa çerçevesi dışına konumlanan çerçeveleri çeşitli yollarla işleme sokabilir; onları iptal edebilir veya belge sonunda onlar için sayfa çerçeveleri oluşturabilirler.

13.3 Sayfa kesmeleri

Aşağıdaki bölümlerde BB2'de sayfa biçimleme açıklanmaktadır. Beş nitelik kullanıcı arayüzlerinin nerelerde sayfa kesebileceğini veya kesmesi gerektiğini ve kalan içeriğin hangi sayfadan devam edeceğini belirler. Her sayfa kesmesi geçerli sayfa çerçevesinin sonlandırır ve belge ağacının kalan parçalarının yeni bir sayfa çerçevesine yerleştirilmeye devam edilmesine sebep olur.

13.3.1 Önden/sondan/içinden sayfa kesme elemanları: page-break-before, page-break-after, page-break-inside

Önden sayfa kesme:

page-break-beforeNİTELİK
Değer:auto | always | avoid | left | right | inherit
İlk değer:auto
Uygulama yeri:blok seviyesinden elemanlar
Kalıtsallık:hayır
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

Sondan sayfa kesme:

page-break-afterNİTELİK
Değer:auto | always | avoid | left | right | inherit
İlk değer:auto
Uygulama yeri:blok seviyesinden elemanlar
Kalıtsallık:hayır
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

İçinden sayfa kesme:

page-break-insideNİTELİK
Değer:auto | avoid | inherit
İlk değer:auto
Uygulama yeri:blok seviyesinden elemanlar
Kalıtsallık:evet
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

Bu niteliklerin değerlerinin anlamları (Değerlerin Türkçeleri köşeli ayraç içinde yanlarına yazılmıştır):

auto
Üretilen çerçeveden önce/sonra/içinde bir sayfa kesmesini ne yasaklar ne de zorlar.

always [daima]
Üretilen çerçeveden önce/sonra bir sayfa kesmesi daima yapılır.

avoid [yasakla]
Üretilen çerçeveden önce/sonra/içinde bir sayfa kesmesini yasaklar.

left [sol]
Sonraki sayfanın bir sol sayfa olarak biçimlenmesini sağlamak için üretilen çerçeveden önce/sonra bir veya iki sayfa kesmesi yapılır.

right [sağ]
Sonraki sayfanın bir sağ sayfa olarak biçimlenmesini sağlamak için üretilen çerçeveden önce/sonra bir veya iki sayfa kesmesi yapılır.

Olası bir sayfa kesme yeri genellikle ebeveyn elemanın page-break-inside, önceki elemanın page-break-after ve sonraki elemanın page-break-before niteliğinin etkisi altındadır. Bu nitelikler auto dışında değerlere sahip oldukları takdirde, always, left ve right değerleri avoid değerine göre öncelikli olurlar. Bu niteliklerin nasıl bir sayfa kesmesini zorlayabileceği veya bastırabileceği ile ilgili kesin kurallar için İzin verilen sayfa kesmeleri bölümüne bakınız.

13.3.2 İsimli sayfaların kullanımı: page niteliği

pageNİTELİK
Değer:betimleyici | auto | inherit
İlk değer:auto
Uygulama yeri:blok seviyesinden elemanlar
Kalıtsallık:evet
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

page niteliği bir elemanın gösterilmesi için belli bir sayfa türü belirtmek için kullanılır.

Örnek:
Bu örnekte tüm tablolar sayfa yatay kullanılarak sağdaki sayfa konacaktır ("rotated" isimli sayfaya):

@page rotated {size: landscape}
table {page: rotated; page-break-before: right}

page niteliği şöyle çalışır: satıriçi içerikli bir blok çerçevesi, önceki satıriçi içerikli bir blok çerçevesinden farklı bir page niteliğine sahipse, bunlar arasına bir veya iki sayfa kesmesi yerleştirilir ve kesmeden sonraki çerçeveler isimli türde bir sayfa çerçevesinde oluşturulur. Aşağıda Zorlanmış sayfa kesmeleri bölümüne bakınız.

Örnek:
Bu örnekte, iki tablo yatay sayfalarda (gerçekte sığıyorsa, aynı sayfalarda) oluşturulmakta ve <div> üzerinde atanmış olmasına rağmen hiçbirinde "narrow" sayfa türü kullanılmamaktadır:

@page narrow {size: 9cm 18cm}
@page rotated {size: landscape}
div {page: narrow}
TABLE {page: rotated}

belge:

<div>
<TABLE>...</TABLE>
<TABLE>...</TABLE>
</div>

13.3.3 Elemanların içindeki kesmeler: orphans, widows

Sayfada tutulacak satır sayısı:

orphansNİTELİK
Değer:tamsayı | inherit
İlk değer:2
Uygulama yeri:blok seviyesinden elemanlar
Kalıtsallık:evet
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

Sonraki sayfaya aktarılacak satır sayısı:

widowsNİTELİK
Değer:tamsayı | inherit
İlk değer:2
Uygulama yeri:blok seviyesinden elemanlar
Kalıtsallık:evet
Yüzdelik değerler:Elverişsiz
Ortam:görsel, sayfalı

orphans niteliği bir sayfanın dibinde kalması gereken olası en az sayıda satırdan oluşan bir paragraf belirtir. widows niteliği ise bir sayfanın tepesinde kalması gereken olası en az sayıda satırdan oluşan bir paragraf belirtir. Bunların sayfa kesmelerinde nasıl kullanıldıkları aşağıda örneklerle açıklanmıştır.

Paragraf biçimleme hakkında bilgi için lütfen satır çerçevelerinin açıklandığı bölüme bakınız.

13.3.4 İzin verilen sayfa kesmeleri

Normal akışta sayfa kesmeleri aşağıdaki belirtilen yerlerde yer alabilir:

  1. Blok çerçeveleri arasında düşey dış boşluklarda. Bir sayfa kesmesi böyle bir yerde yer alırsa, ilgili margin-top ve margin-bottom niteliklerinin hesaplanmış değerleri '0'a ayarlanır.

  2. Bir blok çerçevesi içindeki satır çerçeveleri arasında.

Bu kesmeler aşağıdaki kurallara konu olurlar:

  • Kural A: Dış boşluklarla bütünleşen çerçeveyi üreten öğelerin page-break-after ve page-break-before niteliklerinden en az birinin always, left, veya right değerinde olması veya tümünün auto değerinde olması durumunda (1)'de sayfa kesmeye izin verilir.

  • Kural B: Bununla birlikte, bunların hepsi auto ise ve tüm elemanların en yakın ortak üstseli, değeri avoid olan bir page-break-inside niteliğine sahipse, burada kesmeye izin verilmez.

  • Kural C: En yakın blok çerçevesinin başlangıcı ile olası kesme arasındaki satır çerçevelerinin sayısı orphans değerine eşit veya büyükse ise veya olası kesmeyle en yakın blok çerçevesinin sonu arasındaki satır çerçevelerinin sayısı widows değerine eşit veya büyükse (2)'de kesmeye izin verilir.

  • Kural D: Ek olarak, (2)'de kesmeye sadece page-break-inside niteliğinin değeri auto ise izin verilir.

Eğer yukarıdakiler sayfa çerçevelerinden taşan içeriği tutmak için yeterli kesme noktaları sağlamazsa, B ve D kuralları ek kesme noktalarını bulmak için kaldırılırlar.

Eğer hala yeterli sayfa kesmesi sağlanamıyorsa, daha fazla kesme noktası bulmak için A ve C kuralları da kaldırılır.

Sayfa kesmeleri mutlak olarak konumlanmış çerçevelerin içinde bulunamazlar.

13.3.5 Zorlanmış sayfa kesmeleri

Bir sayfa kesmesinin (1)'de yer alması için, dış boşluklarla bütünleşen çerçeveyi üreten tüm elemanların page-break-after ve page-break-before nitelikleri arasından en az birinin always, left veya right değerini taşıması gerekir.

Bir sayfa kesmesinin (1)'de yer alması için, ayrıca, dış boşluğun üstündeki son ve altındaki ilk satır çerçevesinin page nitelikleri aynı değere sahip olmamalıdır.

13.3.6 "En iyi" sayfa kesmeleri

BB2 izin verilen sayfa kesmelerinden hangisinin kullanılması gerektiğini tanımlamaz; BB2 kullanıcı arayüzlerinin olası kesme noktalarında kesme yapmasını/yapmamasını tümden yasaklamaz. Fakat kullanıcı arayüzlerinin aşağıdaki ampirik davranışları gözlemlemeleri önerilir (bazıları aykırı gelebilir):

  • Mümkün olan en az sayıda kesme yapın.
  • Bütün sayfaların, hep aynı yükseklikte sayfa kesmeye zorlayan zorlanmış kesmelerle bitmemesini sağlayın.
  • Dış çizgisi olan bir çerçevenin içinde sayfa kesmekten kaçının.
  • Bir tablo içinde sayfa kesmekten kaçının.
  • Bir yüzen elemanın içinde sayfa kesmekten kaçının.
Örnek:
Bir biçembendin orphans: 4, widows: 2 bildirimlerini içerdiğini ve geçerli sayfanın altında 20 satırlık (satır çerçevesi) yer kaldığını varsayalım:

  • Geçerli sayfanın sonunda 20 veya daha az satırdan oluşan bir paragraf varsa, paragraf geçerli sayfada kalmalıdır.

  • Eğer paragraf 21 veya 22 satırdan oluşuyorsa, paragrafın artanı widows kısıtı ile çelişmemelidir, yani sonraki sayfaya geçen kısım tam olarak iki satır içermelidir.

  • Eğer paragraf 23 satır veya daha fazlasını içeriyorsa, ilk parça 20 satır, ikinci parça ise kalan satırları içermelidir.

Şimdi orphans için '10', widows için '20' değerlerinin verilmiş olduğunu ve sayfanın altında 8 satırlık yer kaldığını varsayalım:

  • Geçerli sayfanın sonunda 8 veya daha az satırdan oluşan bir paragraf varsa, paragraf geçerli sayfada kalmalıdır.

  • Eğer paragraf 9 veya daha fazla sayıda satır içeriyorsa, (orphans kısıtı ile çelişeceği için) paragraf bölünmeden sonraki sayfaya aktarılmalıdır.

13.4 Sayfa bağlamında bütünleşme

Sayfa bağlamındaki bildirimler normal BB2 bildirimleri gibi bütünleşime itaat ederler.

Örnek:
Şu örneği ele alalım:

@page {
  margin-left: 3cm;
}

@page :left {
  margin-left: 4cm;
}

Sözde sınıf seçicilerin daha yüksek özgülüğü nedeniyle sol sayfaların sol dış boşluğu '4cm' ve diğer tüm sayfalarınki ise (yani sağ sayfaların) '3cm' olacaktır.

ÖncekiYukarıSonraki
Üretilen içerik, özdevinimli numaralama ve listelerBir Linux Kitaplığı SayfasıRenkler ve artalanlar