Autor Zpráva
kubiseg
Profil
Zdravím, potřebuji radu, pro Vás stoprocentně jednoduchou...

V PHP se mi automaticky generuje vypis reportu za urcite obdobi. Tyto reporty jsou vsak kazdy jinak dlouhy a kazdy tedy zabira jiny prostor na strance.

Chtel bych zajistit, aby ten report, jez by se normalne lamal pres konec stranky, aby skocil na novou stranku a tedy se nerozpulil... Nevite nekdo, jak by to slo udelat?

Za odpoved moc diky...
tiso
Profil
Tie reporty uzavrieť každý do nejakého prvku (napr. div, pokiaľ to nie sú samostatné tabuľky alebo podobne) a tým v css nastav page-break-inside: avoid
Joker
Profil
tiso mě předběhl: uzavřít celý report do jednoho prvku a tomu nastavit CSS page-break-inside: avoid

Ale pozor, nefunguje v Internet Explorerech, minimálně do IE6, IE7 jsem nezkoušel.
kubiseg
Profil
je mi to lito, chlapi... i tak vam dekuji za help... takhle rychlou odpoved jsem ani necekal...

nefunguje to ani v IE, ani v Opere, ani ve FF :(

nejaky jiny napad?
Joker
Profil
kubiseg
nefunguje to ani v IE, ani v Opere, ani ve FF
Tak je něco špatně, protože minimálně v Opeře mi to fungovalo.
kubiseg
Profil
nevim, co by mohlo byt spatne... :(

mam formatovanou tabulku pro tisk, prirazena trida tisk... tato cela tabulka i s oddelovacem je hozena do div s tridou upravujici page-break-inside: avoid;

a ani v jednom mi to doopravdy nevytiskne tak, jak bych to potreboval..
Joker
Profil
kubiseg
To je zvláštní, u mně to vždycky hodí odstavec/řádek tabulky/tabulku (tohle jsem zkoušel) celý na další stránku, pokud by se to mělo rozdělit uvnitř.
Zkoušel jsem:
HTML:
<div><p>(hodně dlouhý lorem ipsum text)</p>
<p>(hodně dlouhý lorem ipsum text)</p>
<p>(hodně dlouhý lorem ipsum text)</p>
<p>(hodně dlouhý lorem ipsum text)</p>
</div>

CSS:
div p{ page-break-inside: avoid; }

anebo:
HTML
<table><tr><td>x</td><td>(hodně dlouhý lorem ipsum text)</td></tr></table>
<table><tr><td>x</td><td>(hodně dlouhý lorem ipsum text)</td></tr></table>
<table><tr><td>x</td><td>(hodně dlouhý lorem ipsum text)</td></tr></table>
<table><tr><td>x</td><td>(hodně dlouhý lorem ipsum text)</td></tr></table>

CSS:
table {page-break-inside: avoid; }

(řádky tabulky analogicky s druhým příkladem)
Připomenu, že do prvku s page-break-inside: avoid; se má být jen ta jedna konkrétní část, co má být pohromadě, další část zase v dalším prvku s page-break-inside: avoid; aby se mohla stránka zalomit mezi nimi.
kubiseg
Profil
no tak to mam...

uvnitr cyklu foreach mam proste vzdy jeden vypis... v cyklu foreach mam take dan html vystup, ktery zacina s tabulkou a konci za tabulkou a oddelovacem...

takto.



<div class="nova">
<table>
<tr>
<td></td>
</tr>
</table>
<hr>
</div>


takhle to vypada... .nova {page-break-inside: avoid; }
Joker
Profil
kubiseg
Tak tam musí být zrada v něčem jiném, teď jsem zi zkopíroval ten HTML + CSS kód, dovnitř <td> nechal vygenerovat lorem ipsum, a ten <div> zkopíroval několikrát za sebe, v Opeře to funguje podle očekávání. (V IE6 stále nefunguje)
Joker
Profil
(odeslalo se to 2x, sry)
kubiseg
Profil
no tak to nevim, v cem je chyba...

ani IE6, IE7, FF, O ... v nicem mi to tu tabulku proste nezalomi... :(

no nic... budu tady nad tim koumat... moc dekuji za pomoc...
Dlouhán
Profil *
Nemáš tu tabulku v další tabulce, kde je rowspan, to dělá neplechu.
kubiseg
Profil
nene... tabulka je samostatna... vlozena do foreach a vykonavana nezavisle na vsem ostatnim...

je to prakticky jediny element stranky, krom nadpisu a footeru...
Toto téma je uzamčeno. Odpověď nelze zaslat.