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

  1. #1
    Membre à l'essai
    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
    Points : 20
    Points
    20
    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 expérimenté

    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
    Points : 1 689
    Points
    1 689
    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 à l'essai
    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
    Points : 20
    Points
    20
    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 expérimenté

    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
    Points : 1 689
    Points
    1 689
    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 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    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 à l'essai
    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
    Points : 20
    Points
    20
    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

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    Une question quand même est ce que ta structure sous forme de TABLE est impérative et opportune ?

  8. #8
    Membre à l'essai
    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
    Points : 20
    Points
    20
    Par défaut
    Humm, intéressant tu proposes de remplacer la structure de table par une structure faîtes de div.
    J'avoue que j'ai jamais essayé de créer des tableaux avec des div, mais la question est alors:
    1/ est-ce que je vais pouvoir créer la même mise en forme?
    2/ est-ce qu'ici je vais pouvoir faire le page-break où je le veux?

    Je vais tester à l'occasion

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    La structure en TABLE est faite pour afficher des données tabulaires, un peu comme un tableur Excel.

    Si tes données ne sont pas de ce style il est préférable de passer par une structure plus conventionnelle.
    Tu peux également si tu as des problèmes de présentation, alignement vertical par exemple, regarder du coté de display:table.

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