IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Comment forcer un saut de page (page-break) à une ligne précise dans un tableau ?


Sujet :

Tableau en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 36
    Par défaut Comment forcer un saut de page (page-break) à une ligne précise dans un tableau ?
    Bonjour,

    A l'impression, je voudrais changer les sauts de page automatique d'un tableau. Je voudrais forcer un saut de page à une ligne précise (disons la 8ième), mais cela ne fonctionne pas correctement.

    Pour forcer ce saut de page, j'ai essayé:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr style="page-break-before:always">
    ou encore
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td><DIV style="page-break-after:always"></DIV></td><td></td></tr>

    La seule chose "stupide" qui marche étant:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td><br><br></td><td></td></tr>
    C'est embêtant de devoir calculer le nombre de <br> qu'il faut pour que cela fonctionne, il n'y a pas une méthode plus élégante?

    Merci.


    P.S. Pour ne pas créér de saut de page au sein d'une ligne j'ai mis l'instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    table { page-break-inside:auto }
    tr { page-break-inside:avoid; page-break-after:auto }

  2. #2
    Membre Expert

    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 049
    Billets dans le blog
    2
    Par défaut Comment forcer
    Normalement, page-break-after doit fonctionner mais pas sur tr{} mais sur un identifiant donc #Identifiant{page-break-after}

  3. #3
    Membre actif
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 36
    Par défaut
    Dans le <style>
    J'ai enlever:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table { page-break-inside:auto }
    j'ai ajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #pgBreakAfter {page-break-after:always; font-size: 1px; margin 0;}
    A l'endroit après lequel je veux faire le saut de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr id="pgBreakAfter"><td></td><td></td></tr>
    Ne fonctionne pas.

    Oublier de préciser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td><DIV style="page-break-after:always"></DIV></td><td></td></tr>
    Fait le break, mais la ligne suivante est descendue de plusieurs centimètres...

    @miss_socrates
    Pas sûr d'avoir compris, càd?

  4. #4
    Membre Expert

    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 049
    Billets dans le blog
    2
    Par défaut Comment forcer un saut de page
    Oui il faut donc mettre #pgBreakAfter{page-break-after: auto;} et non pas #tr{pgBreakAfter: auto;}

    Mais il vaut mieux clôturer le tableau sinon il risque de faire un saut de ligne dans le tableau ce qui risque de ne pas fonctionner
    Donc le code
    A l'endroit après lequel je veux faire le saut de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr id="pgBreakAfter"><td></td><td></td></tr>
    est à remplacer par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <table><tr id="pgBreakAfter"><td></td><td></td></tr></table>
    Oublier de préciser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td><DIV style="page-break-after:always"></DIV></td><td></td></tr>
    Il ne faut pas mettre de div dans une cellule td puisque la cellule <td> est déjà une division de <tr> !

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    (...)je voudrais changer les sauts de page automatique d'un tableau.
    il existe une réponse dans la spécification
    Citation Envoyé par http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#page-breaks
    13.3.6 "Best" page breaks

    CSS2 does not define which of a set of allowed page breaks must be used; CSS2 does not forbid a user agent from breaking at every possible break point, or not to break at all. But CSS2 does recommend that user agents observe the following heuristics (while recognizing that they are sometimes contradictory):

    * Break as few times as possible.
    * Make all pages that don't end with a forced break appear to have about the same height.
    * Avoid breaking inside a block that has a border.
    * Avoid breaking inside a table. (Éviter les sauts dans les tables)
    * Avoid breaking inside a floated element

  6. #6
    Membre actif
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 36
    Par défaut
    Mais il vaut mieux clôturer le tableau
    Cà me paraissait génial, sauf qu'en faisant çà je perd l'alignement des colonnes entre premier et second tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    </table><br style='page-break-before:always'><table>
    * Avoid breaking inside a table. (Éviter les sauts dans les tables)
    * Avoid breaking inside a floated element
    OK, mais alors je reviens au début de mon post:
    La seule chose "stupide" qui marche étant:
    <tr><td><br><br></td><td></td></tr>
    C'est embêtant de devoir calculer le nombre de <br> qu'il faut pour que cela fonctionne, il n'y a pas une méthode plus élégante?
    Merci

Discussions similaires

  1. Extraire une ligne précise dans une page Word
    Par jérémyp8 dans le forum VBA Word
    Réponses: 5
    Dernier message: 30/05/2013, 09h45
  2. [Dojo] Comment laisser une ligne fixe dans un tableau triable ?
    Par Koma dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 18/03/2009, 16h48
  3. Lien de word à une ligne précise dans ma page htm
    Par Aldo831 dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 01/12/2008, 08h47
  4. Réponses: 2
    Dernier message: 07/03/2007, 09h44
  5. Réponses: 1
    Dernier message: 05/04/2006, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo