Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 18:13 Der er 21 kommentarer og
1 løsning

Printvenlig side med CSS

Der er gået stædighed i et irriterende problem. Jeg ønsker at oprette en printvenlige side. Burde jo ikke umiddelbart være et problem :(
Jeg er nået en del af vejen, men har problemer med min >div>

På nuværende ser testsiden sådan her ud http://www.suza.dk/exp/printside.htm

Jeg ønsker jo selvfølgelig IKKE at der vises scrollbar - OG man skal kunne printe hele sidens indhold :(

min CSS er ikke særlig langhåret (skal selvfølgelig i en ekstern CSS, og udbygges en del - så jeg har en CSS til både screen OG print) - ser pt således ud

<style type="text/css">
@media print{

  #NoPrint{ display:none;} /*de celler der ikke skal printes, tildeles denne ID*/
  #PrintUd{ width:100%; height:100%; border="0"; cellspacing="0";} /*de celler der skal printes, tildeles denne ID*/
 
}
</style>

hvordan pokker laver jeg en override på den <div> så jeg får al indholdet skrevet ud ??
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 18:15 #1
>div> = <div> ;)
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 18:17 #2
jeg har prøvet at tildele min <div> id="PrintUD" hjælper ikke ,(
Avatar billede roenving Novice
15. oktober 2003 - 18:34 #3
-- du må ikke give flere elementer samme id, som _skal_ være unikt indenfor et dokument -- brug classes i stedet:

<style type="text/css">
@media print{

  .NoPrint{ display:none;} /*de celler der ikke skal printes, tildeles denne ID*/
  .PrintUd{ width:100%; height:100%; border="0"; cellspacing="0";} /*de celler der skal printes, tildeles denne ID*/
 
}
</style>
<div class="NoPrint">

-- uden at have testet gætter jeg nemlig på, at browseren holder op med at søge, når den er stødt ind i een med et givet id (har set den med almindelige style-tildelinger !-)
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 18:40 #4
:/ seriøst godt bud, men virker stadig ikke
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 18:41 #5
er garanteret fordi jeg i min <div> har
<div class="PrintUd" style="background-color: white; height: 280; width: 100%; overflow-y: auto; overflow-x: auto">
Avatar billede roenving Novice
15. oktober 2003 - 18:47 #6
Skulle ikke i sig selv betyde noget, men width og height skulle tages fra den lokale definition, da den er 'læst sidst' !-)

Se mere her: http://www.w3.org/TR/REC-CSS2/media.html#at-media-rule
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 18:52 #7
G*** tja det mener jeg jo også, men det virker skutte
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 18:53 #8
har rodet med problemet før, men kan selvfølgelig ikke huske hvordan jeg løste det sidste gang :/
Avatar billede roenving Novice
15. oktober 2003 - 19:02 #9
Har du prøvet med:

<style type="text/css">
@media print{

  .NoPrint{ display:none;} /*de celler der ikke skal printes, tildeles denne ID*/
  .PrintUd{ width:100%; height:100%; border="0"; cellspacing="0";} /*de celler der skal printes, tildeles denne ID*/
 
}
.NormalStyle{background-color: white; height: 280; width: 100%; overflow-y: auto; overflow-x: auto}
</style>

<div class="NoPrint NormalStyle"
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 19:13 #10
mja har i den nye class også prøvet at sætte height til fx 500 - hjælper ikke. Viser stadig kun de 280

Scrollbaren skjules heller ikke selvom jeg skriver den ikke skal vises - ARGHH
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 19:15 #11
øhmm ved ikke om du misforstår mig - det jeg vil have skrevet ud er omkranset af en <div> og her har jeg så en class kaldet PrintUd

<div class="printUd Normalstyle" ;)
Avatar billede roenving Novice
15. oktober 2003 - 19:25 #12
-- normalt vil den 'sidst læste' match på en style være den som dur, så f.eks.:

<style type="text/css">
@media print{

  .NoPrint{ display:none;} /*de celler der ikke skal printes, tildeles denne ID*/
  .PrintUd{ width:100%; height:100%; border="0"; cellspacing="0";} /*de celler der skal printes, tildeles denne ID*/
 
}
@media screen{
.NormalStyle{background-color: white; height: 280; width: 100%; overflow-y: auto; overflow-x: auto}
}
</style>

-- og du er vel opmærksom på case-sensiviteten !-)
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 19:28 #13
G*** fyyy hvor er du slem. Jeps har tjekket at jeg ikke har skrevet forkert :D
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 19:41 #14
tja så en

.NormalStyle{background-color: white; height: 500; width: 100% bla bla mere

skulle jo give det ønskede resultat

damn.... det er jo fordi jeg i i min body <div> har endnu en style hvor jeg definerer hvordan indholdet der skal vises på skærmen

      <div class="PrintUd NormalStyle" style="background-color: white; height: 280; width: 100%; overflow-y: auto; overflow-x: auto">
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 19:53 #15
G*** det man bliver blind på først er øjnene ROFL

ok nu har jeg
<!-- PRINTVENLIG SIDE -->
<style type="text/css">
@media print{

  .NoPrint{ display:none;} /*de celler der ikke skal printes, tildeles denne CLASS*/
  .PrintUd{ width:100%; height:100%; border="0"; cellspacing="0";} /*de celler der skal printes, tildeles denne CLASS*/
 
  .NormalStyle{background-color: white; height: 800; width: 100%; overflow-y: auto; overflow-x: auto}
}
</style>
<!-- PRINTVENLIG SIDE -->

<!-- VIS PÅ SKÆRM -->
<style type="text/css">
@media screen{
    .VisScreen{background-color: white; height: 280; width: 100%; overflow-y: auto; overflow-x: auto}
}
</style>
<!-- VIS PÅ SKÆRM -->

og det ser jo ud som det skal :) skal lige finpudses lidt

det der dog undrer mig er hvorfor kan jeg ikke sætte

height: 100% i NormalStyle - skal sættes til 800 ellers vises hele siden ikke ??
Avatar billede roenving Novice
15. oktober 2003 - 19:58 #16
Du kan godt sætte dem sammen, og jeg tilføjet det du skal have med for at 100% virker:

<style type="text/css">
html,body{height:100%,margin:0px;}
@media print{

  .NoPrint{ display:none;} /*de celler der ikke skal printes, tildeles denne CLASS*/
  .PrintUd{ width:100%; height:100%; border="0"; cellspacing="0";} /*de celler der skal printes, tildeles denne CLASS*/
 
  .NormalStyle{background-color: white; height: 100%; width: 100%; overflow-y: auto; overflow-x: auto}
}

@media screen{
    .VisScreen{background-color: white; height: 280; width: 100%; overflow-y: auto; overflow-x: auto}
}
</style>
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 20:05 #17
thnx - selvfølgelig. Er vist ved at være overtræt ;)

mja men hvis jeg sætter til 100% går der skudder i udskriften

http://www.suza.dk/Exp/PrintSide_copy(1).htm
Avatar billede roenving Novice
15. oktober 2003 - 20:18 #18
-- Normalt vil et div blive så stor som det der er indeni, så hvis du sætter den uden størrelse burde den blive fuld højde og bredde !-)

-- en relativ størrelse tages fra det omgivende element, så måske er det årsagen ...
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 20:22 #19
GH*** thnx du har så rigeligt reddet mig fra at blive skaldet

læg endelig et svar - du drømmer ikke om hvor jeg sidder med røde kinder lige i øjeblikket.
Hvad kan man så lære af det - lad være med at sidde og kode når du er for træt S****

VIl du have mere end 50 p - du har fortjent dem :D
Avatar billede roenving Novice
15. oktober 2003 - 20:27 #20
-- det er jo ikke størrelsen af pointene ...

-- og velbekomme '-)
Avatar billede roenving Novice
15. oktober 2003 - 20:31 #21
-- og tak for points ;~}
Avatar billede susanne_larsen Nybegynder
15. oktober 2003 - 20:41 #22
var sørme da så lidt

siden http://www.suza.dk/exp/printside.htm nu rettet til så udskriften vises korrekt
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