Avatar billede simonfreiesleben Nybegynder
23. oktober 2006 - 15:00 Der er 6 kommentarer og
1 løsning

Skalering af varierende tekst til fast bredde

Hej

Jeg skal lave et html dokument til et nyhedsbrev, som skal liste flere instanser af tekst med en overskrift under hinanden. Størrelsen af overskriften for hver stykke tekst, ønsker jeg varieres, så bredden på alle overskrifter er den samme. Dette har den bivirkning at korte overskrifter bliver meget store og lange bliver meget små.

Nogen der ved hvordan man med html/css/jscript kan autoskalere sin tekst til en fast bredde?

Mvh
Simon
Avatar billede olebole Juniormester
23. oktober 2006 - 15:07 #1
<ole>

Du kan bruge style="text-align:justify" på et enkelt element, hvorefter alle linjer i dette element bliver lige lange - men der er ikke nogen mulighed for at gøre det samme på tværs af elementer.

Lige marginer ligner iøvrigt somregel noget, der er trykket ud af den grimme ende på en selvdød gnu ... og i HTML er det endnu værre end ved alm. print-arbejde!  :o|

/mvh
</bole>
Avatar billede simonfreiesleben Nybegynder
23. oktober 2006 - 15:18 #2
Ja, text-align:justify kan nok ikke du. I de fleste tilfælde drejer sig bare om en enkelt linie, og så gør den ikke noget idet linien jo er "lige lang". Faktisk drejer det sig ofte bare om et enkelt ord, og da justify bare tilrette mellemrummet mellem ordene er den da ikke meget bevendt.
Jeg skal finde ud af at justere ounktstørrelsen på teksten indtil teksten passer i bredden.
Avatar billede olebole Juniormester
23. oktober 2006 - 15:38 #3
Umiddelbart synes jeg ikke, det lyder som en god løsning. Gør det noget, overskrifterne ikke er lige lange?  :)
Avatar billede simonfreiesleben Nybegynder
23. oktober 2006 - 15:43 #4
Man kan mene at det ikke er en god løsning, men det er ikke op til mig. Jeg har ikke lavet layoutet, jeg skal bare automatisere det.

- Simon
Avatar billede olebole Juniormester
23. oktober 2006 - 15:53 #5
;o)
Avatar billede jhe-ting Nybegynder
24. oktober 2006 - 08:24 #6
Hej Simon.
Jeg har lavet dette eksempel til dig.
Håber du kan bruge det til dit nyhedsbrev.

<HTML>
<HEAD>
<TITLE>autoWidth</TITLE>
<script>
function setAutoWidth(){ // juster fontSize til bredde af parentElement  (JHe-ting)
    for (var nn=0; nn < document.all.length; nn++){
        var elm = document.all(nn);
        if (elm.className.indexOf("autoWidth")!=-1){
            var rng = document.body.createTextRange();
            elm.style.fontSize="200%"; // pct size for at kunne regne
            rng.moveToElementText(elm);
            var wd = rng.boundingWidth;
            var pct = parseInt(elm.style.fontSize)/100;
            pct = Math.floor(pct*100*elm.parentElement.clientWidth/wd);
            elm.style.fontSize=pct+"%";
        }
    }
}

window.onload = setAutoWidth;
window.onresize = setAutoWidth;

</script>

<style>
P { text-align:justify }
</style>
</HEAD>
<BODY>

<h1 class=autoWidth><nobr>autoWidth eksempel</nobr></h1>
<p></p>
<h1 class=autoWidth ><nobr>Prøv at ændre vinduets størrelse.</nobr></h1>
<p>Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel.</p>
<h1 class=autoWidth ><nobr>Afsnit 2 mmmmmmm</nobr></h1>
<p>Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel.</p>
<h1>Normal overskrift der ombrydes normalt</h1>
<p>Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel.</p>
<h1 class=autoWidth><nobr>Afsnit 3 har en længere <br>smøre på to linjer</nobr></h1>
<p>Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel. Dette er bare et eksempel.</p>


</BODY>
</HTML>
Avatar billede simonfreiesleben Nybegynder
24. oktober 2006 - 11:35 #7
Lige præcs sådan der!
Tak for den hjælp.

- Simon
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