2010-08-02 11 views
5

Estoy editando libros/artículos en HTML. Estos textos se imprimieron una vez y los escaneé, los convierto en un formato XML intermedio y luego los transformo en HTML (por XSLT). Debido a que algunos de esos textos están extintos actualmente en el mercado y solo están disponibles a través de las principales bibliotecas, quiero publicarlos de manera que la gente pueda citarlos consultando los números de página en el documento original. Para este propósito, mi formato XML intermedio tiene un elemento que marca un salto de página. En este momento estoy trabajando en las transformaciones XML-> HTML y me pregunto cómo transformar estos saltos de página en HTML. No deberían aparecer en el HTML final de forma predeterminada (por lo que un | simple no encaja), pero planeo envolver estos documentos con un JavaScript liviano que mostrará los marcadores cuando sea necesario. Pensé en <span> s con un | en ella que están ocultos por defecto.¿Cómo se expresa un salto de página semánticamente correcto en HTML?

¿Existe una forma mejor, posiblemente 'semántica' para este problema?

Respuesta

3

Los saltos de página son en gran medida un asunto de diseño y HTML no está diseñado para describir el diseño, por lo que no va a encontrar nada de lo que es semántica para esto dentro del lenguaje.

Lo mejor que puede esperar es algún tipo de kludge.

Como un salto de página puede ocurrir en medio de un párrafo, y los elementos <p> pueden contener solo elementos en línea, puede eliminar la mayoría de las opciones desde el principio.

Las dos posibilidades que me sugieren son <span> y <a>. El primero no tiene semántica, este último está diseñado para estar vinculado a (con un atributo de nombre) o desde (con un atributo href), y podría considerar una página de un documento original algo que tal vez desee vincular.

No importa qué elemento use, no incluiría un marcador en él y luego lo ocultaría con CSS. Ese tipo de indicador de presentación es algo que consideraría agregar a través de :before en una hoja de estilo (combinado con un selector descendiente para una clase corporal que se puede alternar con JS, ya que quiere alternar)

Alternativamente, si desea tomar una (muy) amplia visión del significado de "HTML" podría considerar el l element (de los borradores XHTML 2 difuntos) y marcar cada línea del documento original. Agregar una clase indicaría dónde comenzó una nueva página (y podría usar contadores y bordes CSS para indicar claramente cada página y número si así lo desea). Es una lástima que los proveedores de los navegadores se negaron a respaldar un lenguaje de marcado semántico real y prefirieron HTML 5 en su lugar.

+0

Creo que tengo que poner algo en el lapso o porque a Chrome no parecen gustarle los vacíos (absorbe los siguientes elementos después de un lapso vacío hasta que aparece el siguiente tramo [¡Sí, está cerrado!] - eso es lo que puede ver con las herramientas de desarrollo ...) Gracias de todos modos. Buscaré algo con "a" debido a la vinculación ... podría tener un uso posterior. – Struce

0

Quizás pueda utilizar una etiqueta xml no analizada/interpretada por html como <pagebreak/>.

De esta forma, al visualizar el html, la etiqueta no se representará, pero si usa jQuery o cualquier otra biblioteca de Javascript, transformará, cuando se le pregunte, estas etiquetas particulares en el estándar
o cualquier marca visual.

Creo que este puede ser un enfoque semántico ...

+0

... pero no un enfoque HTML. – Quentin

+0

¿Puedo hacer esto validando usando un espacio de nombre separado para este elemento? (como hace la palabra al exportar a html). ¿Puedo hacer cosas con ese elemento con javascript? – Struce

+0

Sí, no es un enfoque HTML, pero tal vez un enfoque XHTML. @Struce: puede usar un espacio de nombres para sus etiquetas especiales y dejar que Javascript las maneje y las transforme en otras etiquetas XHTML estándar y visibles. – Impiastro

2

Use un <div class="Page"> para cada página, y tienen una hoja de estilo que contiene:

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

... y cuando aparece un salto de página en el medio párrafo? – Quentin

Cuestiones relacionadas