2017-02-21 2 views
2

J'ai un site qui montre les règles d'une entreprise. Il a plusieurs chapitres, titres, sous-titres et contenu whitin. Je voulais faire une version imprimable de cela, ressemble à ceci:Marge ne fonctionne pas sur la deuxième page

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Test</title> 
<style type="text/css"> 
    @media screen { 
    header.onlyprint, footer.onlyprint{ 
     display: none; /* Hide from screen */ 
    }`enter code here` 
} 

@media print { 
    header.onlyprint { 
     position: fixed; /* Display only on print page (each) */ 
     top: 0; /* Because it's header */ 
    } 
    footer.onlyprint { 
     position: fixed; 
     bottom: 0; /* Because it's footer */ 
    } 
} 
</style> 
</head> 
<body> 
<header class="onlyprint">header</header> 
<!--long text--> 
<footer class="onlyprint">footer</footer> 
</body> 
</html> 

Cela me permet d'afficher l'en-tête sur chaque page. Le problème est, parce que le contenu est comme un gros bloc - si je mets une marge supérieure, sur la première page cela fonctionne, mais sur la deuxième page la continuation du texte commence directement par le haut, et l'en-tête le recouvre . J'ai vu quelques autres messages avec le même problème, mais la réponse a toujours été qu'ils devraient couper le contenu en morceaux. Pour moi, ce n'est pas en option, car la société a beaucoup de règles, et la page ne montre que les données. Désolé pour mon anglais, espère que vous comprenez ce que mon problème est

Répondre

0

Essayez d'ajouter la marge à la page elle-même:

@page { 
    margin: 50px 0; 
} 
+0

Fonctionne uniquement sur la première page. – zoldingo

+0

Vider toutes les caches? Peut-être que c'est en cache. –

+0

Oui. J'ai utilisé le même code que celui décrit ci-dessus pour les tests, utilisé lipsum pour simuler le contenu. – zoldingo