28. april 2004 - 23:20Der er
13 kommentarer og 1 løsning
udskrift for bred til printer
Hej
Nu har jeg rodet en hel del rundt for at finde en løsning på min problem, men selv om der er skrevet en hel del om det kan jeg ikke få det til.
Min side er opbygge af "div" elementer med tilhørende stylesheet. Jeg vil så udskrive et par af elementerne og det kan jeg godt få til at virke... Lige bortset fra at teksten er for bred til siden, og i stedet fora at rykke det ned på næste linie kommer det slet ikke med. Og det syntes jeg er trist :-(
Det skal måske lige nævnes at jeg tidligere har fået hjælp til at ændre bredden af nogle af elementerne med et javascript og body onload så måske er det det der driller.
Et gæt kunne være at du skulle sætte en @page ind i dit print-stylesheet:
@page{size:21cm 29.7cm}
-- men jeg er ikke sikker ...
-- men dine 2 javascripts kan absolut optimeres:
<script type="text/javascript"> var divs = ['content','rightmenu']; var faste = ['topbar','logobar','personalmenubar','bottombar'] function syncronizeDivs(){ document.getElementById('content').style.width = document.body.offsetWidth - 135 + 'px'; var maxH = document.body.offsetHeight ; for(i=0;faste.length>i;i++){ maxH -= document.getElementById(faste[i]).offsetHeight; } for(i=0;divs.length>i;i++){ maxH = Math.max(maxH,document.getElementById(divs[i]).offsetHeight); } for(i=0;divs.length>i;i++){ document.getElementById(divs[i]).style.height=maxH + 'px'; } }
function syncronizeDivsWide(){ var w = document.getElementById('sidetabel').offsetWidth + 12 +'px'; for(i=0;faste.length>i;i++){ document.getElementById(faste[i]).style.width = w; } } </script>
-- hvis jeg skal komme videre end gætte-stadiet er det også nødvendigt at vide, hvor sidetabel-tingen kommer ind i billedet !-)
Synes godt om
Slettet bruger
29. april 2004 - 01:36#2
Hej Jeg tror faktisk det var dig der har lavet det til mig i sin tid, men jeg har muligvis pillet ved det siden :-)
Jeg havde problemer med at "rightmenu" og "content" røg under hinanden og ved "Sidetabel" er de altid ved siden af hinanden. "Sidetabel" består af en række med to celler hvori rightmenu og conten er i.
Passer fint, at jeg har lavet den første del af det, og det var oprindelig rettet mod en eller flere classes, så derfor reagerede jeg ikke i de første omgange, hvor det ikke var classes, på det principielt tåbelige at finde en div ved at traversere alle divs igennem, når vi direkte har id ...
Synes godt om
Slettet bruger
29. april 2004 - 01:50#5
Nu er jeg ikke sååå stærk i det der... Kan du se hvad jeg kan gøre for at få hele bredden af conten med når siden printes?
-- og hvorfor har du så @media omkring en lille smule af det ?-)
Synes godt om
Slettet bruger
29. april 2004 - 02:08#10
Jeg endte med at prøve mig frem, men intet af det lykkedes. Det er derfor - der er ikke tænkt mere over det...
Synes godt om
Slettet bruger
29. april 2004 - 23:30#11
Hej - er der en der kan hjælpe med en løsning? Det ville være rigtig rart :-)
Synes godt om
Slettet bruger
30. april 2004 - 00:33#12
Det ser ud til at det er <body onload="syncronizeDivs(); syncronizeDivsWide();> Der er probemet, for når jeg fjerne dem, så er der ingen problemer med print. Ved du hvordan jeg kan løse det smartest?
Tjah, det passer, at jo nærmere til selve objektet du kommer med en style-property-definition, jo kraftigere virker den, altså har forrang fremfor andre definitioner ...
-- og man kommer næppe tættere end en style sat onthefly på et specifikt element ...
Synes godt om
Slettet bruger
04. maj 2004 - 14:28#14
Det lader ikke til at der kommer nogen løsning, så jeg lukker.
Synes godt om
Ny brugerNybegynder
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.