Wbrew przewidywaniom, ┐e biuro bez papieru zaw│adnie bez reszty nasz▒ codzienno╢ci▒, papier i drukarki maj▒ siΩ ca│kiem dobrze. Choµ Internet jest medium w pe│ni elektronicznym, czΩsto siΩ zdarza, ┐e pobrane informacje chcemy przelaµ na papier, kt≤ry mo┐emy │atwo przenosiµ, choµby do │≤┐ka czy wanny :-)
Nic wiΩc dziwnego, ┐e WWW Consortium przyk│ada do problemu drukowania nale┐n▒ wagΩ i rozwija po╢wiΩcone mu fragmenty specyfikacji nowej wersji jΩzyka HTML. Najnowsza wersja Internet Explorera 4 (i tylko ona - stan na grudzie± 1997) obs│uguje ju┐ fragmenty tej specyfikacji. Inne przegl▒darki zignoruj▒ wstawione polecenia.
Nowe w│asno╢ci pozwalaj▒ autorowi strony okre╢liµ, jak ma byµ drukowany dokument HTML. Wyobra╝my sobie, ┐e tworzymy du┐y, jednostronicowy dokument, kt≤ry dzielimy na logiczne bloki, np. rozdzia│y. Gdyby czytelnik takiego dokumentu zechcia│ go wydrukowaµ, przegl▒darka wydrukuje go "jak leci", strona po stronie, bez zwa┐ania na te logiczne fragmenty. Nowa wersja jΩzyka HTML pozwala jednak wstawiµ odpowiednie otagowanie, kt≤re naka┐e drukarce "prze│amywaµ" strony. Odpowiada to znanej z bardziej zaawansowanych edytor≤w tekst≤w funkcji twardego prze│amania strony (zazwyczaj kombinacj▒ Ctrl-Enter), czyli wymuszenia nowej strony. Do drukarki zostanie po prostu wys│any sygna│, ┐e w tym miejscu nale┐y przestaµ drukowaµ stronΩ, choµby pozosta│o jeszcze na niej wolne miejsce. Drukowanie zostanie podjΩte dopiero na nastΩpnej stronie. Jest to wygodne rozwi▒zanie, gdyz w ten spos≤b wydruk bΩdzie bardziej przejrzysty - lepiej jest przecie┐ czytaµ pocz▒tek rozdzia│u od nowej strony.
Strony mo┐emy prze│amywaµ za pomoc▒ dwojakiego rodzaju polece±:
page-break-before: warto╢µ spowoduje prze│amanie strony PRZED otagowanym elementem.
page-break-after: warto╢µ spowoduje prze│amanie strony PO otagowanym elemencie.
Polecenia przyjmuj▒ cztery warto╢ci: auto, always, left, right. Zachowanie Internet Explorera nie jest jednoznaczne w przypadku auto, left i right (specyfikacja jest ci▒gle w fazie opracowania). Funkcjonuje jednak bez k│opotu najwa┐niejsza warto╢µ - always.
Za│≤┐my, ┐e tytu│y rozdzia│≤w w naszym dokumencie s▒ oznaczone tagiem tytu│u pierwszego stopnia, czyli H1. »yczymy sobie, aby drukarka przerywa│a drukowanie strony tu┐ przed tytu│em pierwszego stopnia i przenosi│a drukowanie na nastΩpn▒ stronΩ. Wystarczy w takim razie opatrzyµ ka┐dy tytu│ odpowiedniem otagowaniem (styl lokalny):
<H1 style="page-break-before: always">Rozdzia│ 4</H1>
Mo┐emy skorzystaµ tak┐e ze stylu zagnie┐d┐onego i umie╢ciµ odpowiedni▒ deklaracjΩ jeszcze w ramach nag│≤wka HEAD.
Mo┐na jednak post▒piµ inaczej. Ka┐dy z rozdzia│≤w mo┐emy zako±czyµ np. poleceniem:
<p style="page-break-after: always">tre╢µ ostatniego akaptu w rozdziale</p>
Teoretycznie polecenia powinny dzia│aµ w stosunku do element≤w blokowych poza tabelami. Obecnie nie funkcjonuje ono jednak np. w odniesieniu do <br>, czyli prze│amania wiersza.
Definuj▒c prze│amania mo┐emy siΩ tak┐e pos│u┐yµ klasami. W definicji stylu zagnie┐d┐onego (w ramach HEAD) mo┐emy na przyk│ad zdefiniowaµ klasΩ:
.nowastrona {page-break-after: always}
a nastΩpnie przywo│aµ tΩ klasΩ w ostatnim akapicie rozdzia│u:
<p class=nowastrona>tre╢µ ostatniego akapitu w rozdziale</p>
Drukarka zako±czy druk strony po tak zdefiniowanym akapicie i rozpocznie drukowanie dalszego ci▒gu dokumentu ju┐ na nastΩpnej stronie.