Avatar billede anhansen Nybegynder
17. maj 2004 - 15:17 Der er 20 kommentarer og
1 løsning

Udskrivning af DIV

Hej,

er der nogle der kan skrive en lille smart "print" funktion til at udskrive et specielt div på en side.

Problemet er at jeg har et <div style="overflow:auto> hvilket gør at jeg får scrollbar i div'en og kan kontrollere højden på siden mere præcist, så min sidefod altid bliver vist.

Men hvis man prøver at skrive siden ud (i IE, som 100% af mine brugere benytter) så skriver den kun den synlige del ud.

Jeg vil selvfølgelig gerne have skrevet hele div'ens indhold ud.

Er der nogle der kan hjælpe?
Avatar billede roenving Novice
17. maj 2004 - 15:21 #1
F.eks. sådan i dit stylesheet:

@media print{
*{display:none;}
#dinDiv,#dinSidefod{display:block;}
}
Avatar billede roenving Novice
17. maj 2004 - 15:22 #2
-- og du kan jo så tilføje eller fjerne properties ...
Avatar billede skovenborg Nybegynder
17. maj 2004 - 15:23 #3
så må du lave et specielt stylesheet til print:
<link rel="stylesheet" media="print" href="print.css" type="text/css" />

hvor du så skriver (hvis vi siger din div har id'en "divID"):
#divID {
overflow:visible;
/* Evt. noget mere */
}
og så kan du skjule de andre elementer, der ikke skal vises.
Avatar billede skovenborg Nybegynder
17. maj 2004 - 15:24 #4
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:24 #5
øhh... ikke forstået... Kan du kort forklare hvad den gør?

Jeg laver en som sætter style for media=print? Og der viser den ikke noget, pånær min div, den sætter den til display:block??

Og så kan jeg vel sætte overflow:none der også ? Så den ikke laver scrolls?

Prøver lige med det samme
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:25 #6
Kendte ikke media attributten... Skal jeg så skrive noget andet på den som er til skærm, eller kan den godt finde ud af det uden?
Avatar billede roenving Novice
17. maj 2004 - 15:28 #7
@media print{} kan du placere midt inde i dit almindelige stylesheet, og den sektion vil kun gælde ved udskrivning, ligeledes gælder det, at hvis du ikke sætter media på et link-tag vil det gælde alle medier, men media="print" vil overrule evt. andre hvor der er definitioner !-)
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:33 #8
jeg synes ikke helt det virker... Nu har jeg skrevet sådan her i starten at mit stylesheet:
@media print
{
*{display:none}
#DataGridDiv
{
    display:block;
    overflow:hidden;

}   
   
}

Skulle det ikke være korrekt?
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:35 #9
nu tror jeg det virker... Nu fik jeg ihvertfald slet ingenting ud... Og det må jo være stjernen der gør det...

Så skal jeg bare finde ud af hvorfor den ikke godkender #datagridDiv...
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:36 #10
Hvis jeg har en style="blabla.. " på selve div'en... Vil den så altid overrule det der står i stylesheet?
Avatar billede roenving Novice
17. maj 2004 - 15:37 #11
Ja, men kun for properties, som står begge steder !-)
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:40 #12
som f.eks overflow... :-)
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:43 #13
<udsnit af koden:>
    <div id="datagridDiv" >
</udsnit>

Når det står sådan.. Så burde #datagridDiv da gælde for den div? ikke?

Jeg kan ikke få det til at gøre noget.. Hvis jeg sætter stjernen på, skriver den ikke noget ud.. Hvis jeg fjerner stjerne og bare har #datagridDiv{} skriver den det hele som det ser ud på skærmen?
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:45 #14
Kan det være fordi det inden i div'en ikke bliver vist.. pga stjernen?
Avatar billede anhansen Nybegynder
17. maj 2004 - 15:53 #15
Det var det... nu har jeg lavet et "ekstra" stylesheet og givet media = "print" og dt oprindelige medie="screen". Så kører det...

Så skal jeg bare copy-paste den linie ind på alle mine sider, men det er vist også overkommeligt.. :-)

Men begge løsninger er gode. Jeg kunne egentlig bedst lide den med bare at skrive det i mit eksisterende, men da der er så mange ting der ændrer sig, har jeg valgt den anden.

Smid et svar begge to.. Så er der point i luften...
Avatar billede roenving Novice
17. maj 2004 - 16:29 #16
Oki '-)
Avatar billede skovenborg Nybegynder
17. maj 2004 - 18:01 #17
mon ikke det er roenvings det her :-)
Avatar billede anhansen Nybegynder
18. maj 2004 - 07:56 #18
oki... Så får han den... Men jeg har jo også brugt din løsning, selv om roenving nok kunne ha forklaret mig frem til den også.. :-)
Avatar billede anhansen Nybegynder
18. maj 2004 - 08:10 #19
jeg har lige et lille hurtigt ja/nej spørgsmål...
Hvis jeg nu resizer mit datagrid med en <body onresize="funktion()"> så vil den vel også override min stylesheet indstilling..
Jeg har nemlig et lille problem, med at den "skærer" en linie over... Så kun halvdelen af teksten står der (øverste halvdel), herefter kommer der sideskift og så resten på ny side. Det skal siges at sideskift kommer ret højt oppe på siden.
Avatar billede anhansen Nybegynder
18. maj 2004 - 08:15 #20
Det var det. Så står det også i denne tråd, hvis andre skulle bruge hjælp til dette.

Jeg har nu lavet en ny javascript print funktion. Den sætter så datagridDiv højde til 100%, window.print();, og derefter tilbage til oprindelige størrelse. :-)
Avatar billede roenving Novice
18. maj 2004 - 21:45 #21
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB