2010-08-02 13 views
5

Edytuję książki/artykuły w HTML. Te teksty zostały wydrukowane jeden raz i skanuję je, zamieniam je na pośredni format XML, a następnie przekształcam je w HTML (przez XSLT). Ponieważ niektóre z tych tekstów są wymarły od rynku i są dostępne tylko za pośrednictwem głównych bibliotek chcę opublikować je w taki sposób, że ludzie mógłby przytoczyć je odwołując się do numerów stron w oryginalnym dokumencie. W tym celu mój pośredni format XML zawiera element oznaczający podział strony. Obecnie pracuję nad transformacjami XML-> HTML i zastanawiam się, jak przekształcić te podziały strony w HTML. Nie powinny one pojawić się w końcowej HTML Domyślnie (tak prosty | nie pasuje), ale mam zamiar zawinąć te dokumenty z jakiegoś lekkiego JavaScript, który pokaże znaczniki, gdy są potrzebne. Pomyślałem o <span> s za pomocą | w nim, które są domyślnie ukryte.Jak wyrazić podział strony semantycznie poprawny w HTML?

Czy istnieje lepszy, ewentualnie „semantyczny” sposobem na ten problem?

Odpowiedz

3

Podziały stron są bardzo coś z układu i HTML nie jest przeznaczony do opisania układ, więc nie będziemy się znaleźć niczego, co jest semantyczne w tym języku.

Najlepsze, na co możesz liczyć, to jakaś kałuża.

Ponieważ podział strony może wystąpić w środku akapitu, a elementy <p> mogą zawierać tylko elementy śródliniowe, można wyeliminować większość opcji od samego początku.

Dwie możliwości, które sugerują mi się to: <span> i <a>. Były nie ma semantykę, że ten ostatni ma za zadanie być powiązane (z atrybutem name) lub (z atrybutem href) i można rozważyć stronę z oryginalnego dokumentu czymś, co może chcesz połączyć.

Nieważne co elementem użyć, nie zawierają znacznika w nim, a następnie ukryć go z CSS. Tego rodzaju prezentacyjnej flagi jest coś chciałbym rozważyć dodanie poprzez :before w arkuszu stylów (w połączeniu z selektorem zstępującej dla klasy ciała, które mogą być przełączane z JS ponieważ chcesz przełączyć)

Ewentualnie, jeśli chcesz wziąć (bardzo) szeroki wgląd w znaczenie "HTML" można uznać za l element (z nieistniejących wersji XHTML 2) i znaczników dla każdego wiersza oryginalnego dokumentu. Dodanie klasy wskazywałoby, gdzie rozpoczęła się nowa strona (i możesz użyć liczników i granic CSS, aby wyraźnie wskazać każdą stronę i numer, jeśli sobie tego życzysz). Szkoda, że ​​dostawcy przeglądarek odmówili znalezienia się za prawdziwym semantycznym językiem znaczników i zamiast tego preferowali HTML 5.

+0

Myślę, że muszę włożyć coś w zakres, lub ponieważ Chrome nie wydaje się lubić pustych (wysysa kolejne elementy po pustym przęśle, aż pojawi się następny zakres [Tak, jest zamknięty!] - to właśnie można zobaczyć za pomocą Narzędzi dla programistów ...) Dzięki i tak. Pójdę po coś z "a", ponieważ łączenie ... może mieć później zastosowanie. – Struce

0

Może można użyć znacznika XML nie przetworzoną/interpretowany przez html jak <pagebreak/>.

W ten sposób podczas wyświetlania html znacznik nie zostanie wyrenderowany, ale za pomocą jQuery lub dowolnej innej biblioteki JavaScript, przekształć, gdy zostaniesz zapytany, te konkretne znaczniki w standardzie
lub dowolny wizualny znacznik.

myślę, może to być podejście semantyczne ...

+0

... ale nie podejście HTML. – Quentin

+0

Czy mogę to sprawdzić, używając osobnego obszaru nazw dla tego elementu? (podobnie jak w przypadku eksportu do html). Czy mogę nadal robić rzeczy z tym elementem za pomocą javascript? – Struce

+0

Tak, nie jest to podejście HTML, ale może podejście XHTML. @Struce: możesz użyć przestrzeni nazw dla specjalnych znaczników i pozwolić JavaScriptowi na ich obsługę i przekształcenie ich w inne standardowe i widoczne znaczniki XHTML. – Impiastro

2

Użyj <div class="Page"> dla każdej strony i mieć stylów zawierającą:

.Page { 
    page-break-after: always; 
} 
+1

... a kiedy w środkowym akapicie pojawi się podział strony? – Quentin

Powiązane problemy