Avatar billede erikjacobsen Ekspert
14. marts 2007 - 13:25 Der er 25 kommentarer og
1 løsning

Fast linieafstand med <sup> og <sub>

http://n0p.com/eksperten/linie/

De fem linier har forskellig afstand mellem hinanden, forårsaget af brugen af <sup> og <sub>. Hvordan angiver man, at der er samme afstand mellem to linier, uanset om der er et super/sub-script eller ej?  (Ja, så kommer der en del luft mellem linierne, men det ønskes)
Avatar billede thesurfer Nybegynder
14. marts 2007 - 14:23 #1
Du kunne f.eks. bruge line-height:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> Title </title>
<script type="text/javascript">

</script>
<style type="text/css">
p
{
line-height:20px;
}
</style>
</head>

<body>

<p>xxx xxx xxx xxx xxx xxx xxx xxx<br>
xxx xxx xxx CO<sub>2</sub> xxx xxx xxx<br>
xxx xxx xxx xxx xxx xxx xxx xxx xxx<br>
xxx xxx xxx n<sup>2</sup> xxx xxx<br>
xxx xxx xxx xxx xxx xxx xxx xxx xxx.</p>



</body>
</html>
Avatar billede thesurfer Nybegynder
14. marts 2007 - 14:24 #2
Det blive så brugt, når du bruger <p></p>.

Hvis det skal være over hele body:

<style type="text/css">
body
{
line-height:20px;
}
</style>
Avatar billede thesurfer Nybegynder
14. marts 2007 - 14:24 #3
Svar.
Avatar billede roenving Novice
14. marts 2007 - 14:32 #4
-- det ændrer da ikke på, at linjeafstandende er forskellige ?-)
Avatar billede erikjacobsen Ekspert
14. marts 2007 - 14:48 #5
Jeg har på linket ovenfor endda sat den til 30px. Der er lidt forskel på browsere, men i IE er da i hvert fald forskel på linieafstand.
Avatar billede johan.o Nybegynder
17. marts 2007 - 19:45 #6
Hmm, det var en af de mere komplekse :)...Følgende er hverken kønt eller optimalt men det giver dig det du foreløbig ønsker...håber jeg :)

<span style="line-height:1.2;">xxx xxx xxx xxx xxx xxx xxx xxx</span><span style="line-height:1.2; visibility: hidden;"><sub>1</sub><sup>1</sup></span><br>
<span style="line-height:1.2;">xxx xxx xxx CO<sub>2</sub> xxx xxx xxx</span><span style="line-height:1.2; visibility: hidden;"><sub>1</sub><sup>1</sup></span><br>
<span style="line-height:1.2;">xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><span style="line-height:1.2; visibility: hidden;"><sub>1</sub><sup>1</sup></span><br>
<span style="line-height:1.2;">xxx xxx xxx n<sup>2</sup> xxx xxx</span><span style="line-height:1.2; visibility: hidden;"><sub>1</sub><sup>1</sup></span><br>
<span style="line-height:1.2;">xxx xxx xxx xxx xxx xxx xxx xxx xxx.</span><span style="line-height:1.2; visibility: hidden;"><sub>1</sub><sup>1</sup></span>

Ved på hver linje at hæfte et <sub> og <sup> tag på slutningen og så skjule dem med visibility: hidden; fylder alle linjerne lige meget.

Mvh. Johan
Avatar billede erikjacobsen Ekspert
17. marts 2007 - 19:54 #7
Noget af et hack! Men en yderligere betingelse er faktisk, at jeg ikke ved hvor linieskiftene er - du ved, folks vinduer har den størrelse de nu selv bestemmer, og det er ikke muligt at vide hvor linieskift er. Mit eksempel er selvfølgelig misvisende på det punkt.

Da de usynlige <sup>/<sub> fylder i bredden, kan jeg heller ikke sprede dem med mild hånd i teksten, fx. efter hvert ord.

Ja, det er sjovt, at det skal være så svært. Jeg tør næsten ikke sige, at der også kan komme billeder i teksten, ca. i bogstavhøjde, men sommetider en anelse mere.

Hmm ... jeg lader spørgsmålet stå lidt endnu.
Avatar billede roenving Novice
17. marts 2007 - 20:08 #8
>>erik

-- problemet med linjeskiftene kan du da i hvert fald styre, selvom det kan være irriterende at begrænse brugernes visningsflade ...

-- men et hack er det i hvert fald !-)

>>johan.o -- long time, no see !o]
Avatar billede johan.o Nybegynder
17. marts 2007 - 20:42 #9
--> roenving: I lige måde :), har været 'lidt' væk. Du ved nogle gange smiler livet til dig og andre gange sparker det dig i skridtet. Jeg er blevet sparket et par gange det sidste år :), men nu ser det ud til at der kommer flere smil på banen igen.

--> erik: Ja jeg tænkte jo nok at du havde mere i ærmet :), men så må vi jo bare gå i tænkeboks.

Mvh. Johan
Avatar billede johan.o Nybegynder
17. marts 2007 - 20:48 #10
Hmmm, <sub> og <sup> må jo være 'defineret' med noget css i browserens 'default' stylesheet. Der må være nogle offset værdier (som 'løfter' eller 'sænker' teksten) som man må kunne tilføje, som margin eller padding, til den almindelige tekst......blot en tanke.

Mvh. Johan
Avatar billede erikjacobsen Ekspert
17. marts 2007 - 21:45 #11
Jeg her selv været forbi det du nævner, men padding på et <p> eller <div> gælder ikke for hver linie, men for <p> eller <div> som helhed.

Det kan i denne sammenhæng slet ikke komme på tale at "begrænse brugernes visningsflade" ;) Altså, der skal være de linieskift, som der kommer naturligt.

Men et forsøg har jeg da lavet, igen på http://n0p.com/eksperten/linie/ - de to midterste 2-taller bryder ud af linien, ser det ud til, og dermed bidrager de ikke til liniens højde, som dermed burde være den samme. (ja, så er der det med billeder, men een ting af gangen)
Avatar billede thesurfer Nybegynder
18. marts 2007 - 06:57 #12
Hmm.. Mon ikke at du kan nøjes med at definere sup og sub i css, til henholdvis top:5px og top:-10px, så alle sub/sup påvirkes?

Hvis du kan det, kan du vel også lade billederne "arve" samme egenskaber (hvordan du nu synes at de skal være)..?
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 09:01 #13
Jeg har prøvet på http://n0p.com/eksperten/linie/ - men at ændre top for <sub> og <sup> ændrer ikke ved at de gør linien tykkere ... i visse browsere i hvert fald.
Avatar billede johan.o Nybegynder
18. marts 2007 - 12:26 #14
Hm, igen er det hverken kønt eller optimalt men prøv at se på denne linie :

<div style=" display: inline; padding-top: 6px; padding-bottom: 4px; background-color: blue;">xxx xxx xxx xxx CO</div><span style="position: relative; top: 5px; font-size: 70%; background-color: green;">2</span><span style="position: relative; top: -10px; font-size: 70%; background-color: green;">2</span><div style="display: inline; padding-top: 6px; padding-bottom: 4px; background-color: blue;"> xxx xxx xxx xxx</div><br>

Jeg kunne forestille mig at du ikke har en fast font-size, men at den er relativ i forhold til hvad brugeren har sat i sin browser, og så tror jeg ikke resultatet bliver så kønt. Men måske det kan hjælpe på vej.

Mvh. Johan
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 12:36 #15
En <div> og display:inline er nok ikke en vej jeg vil gå. Men for diskussionens skyld kan jeg da godt prøve - lidt senere på dagen ;)
Avatar billede johan.o Nybegynder
18. marts 2007 - 15:27 #16
Ja, det var lige et skridt på vejen :) (display:inline) det går jo også ok med <span> så her er hvad jeg foreløbig har...stadig ikke kønt og ej heller optimalt i forhold til varierende font størrelse.

<div style="line-height: 2.2;">
<span style="padding-top: 0.3em; padding-bottom: 0.4em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
<span style="padding-top: 0.3em; padding-bottom: 0.4em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx CO</span><span style="position: relative; top: 0.5em; font-size: 85%; background-color: green;">2</span><span style="position: relative; top: -0.5em; font-size: 85%; background-color: green;">2</span><span style="padding-top: 0.3em; padding-bottom: 0.4em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
<span style="padding-top: 0.3em; padding-bottom: 0.4em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
</div>

Nu ved vi jo ikke det sande omfang af projektet :), men så længe de 'løftede' og 'sænkede' dele ikke er større end her skal du blot sørge for at de er inden for højden af resten af linjen, men snakker vi om lange afsnit der flyttes, kan vi/du jo ikke leve med at de ikke er præcis lige høje......og vi venter spændt på at billederne kommer i spil, men som du siger 'en ting ad gangen' :)

Mvh. Johan
Avatar billede johan.o Nybegynder
18. marts 2007 - 15:29 #17
Ouh for resten, nu sidder jeg jo her på arbejdet, så jeg kan ikke lige checke opførslen i andre browsere...padding på span...??? går det hos f.eks. mozilla ?? :)

Mvh. Johan
Avatar billede johan.o Nybegynder
18. marts 2007 - 15:31 #18
Ahr nu spammer jeg vist tråden...sorry :(, men det skulle ifølge w3 vist være okidoki.
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 17:11 #19
Spam du bare, når det er relevant ;)

Jeg har sat dit sidste forslag nederst på siden - men der er stadig forskellig linieafstand.

Mn umiddelbart så ser dette alt for besværligt ud, til at kunne bruges i praksis, også selv om vi finder en løsning med <span> og styles. Det er ikke helt nok at det ser pænt ud på skærmen, der kommer også krav om tilgængelighed for oplæserprogrammer. Der er noget jeg skal have sat mig ind i, men jeg ville tro at n<sup>2</sup> kunne oplæses som "n i anden", mens n<span .....>2</span> ville blive til "n 2" - og det vil ikke være godt nok.

Så egentlig skal jeg finde noget CSS at sætte på <sub>/<sup> eller på en <p>/<div> helt generelt, som vil give en fast linieafstand. Jeg har prøvet, og jeg kan ikke ...

Og så er det nok lidt et luksusproblem, for teksten kan jo sagtens læses.

"det sande omfang af projektet" - nej, det kender du ikke. Og anvendelsen holder jeg for mig selv indtil videre!
Avatar billede johan.o Nybegynder
18. marts 2007 - 17:58 #20
Jeg tror heller ikke det vil være muligt at opnå det du efterspørger, ved kun at style på <sub> eller <sup>.

Jeg er kommet lidt videre, men det er ikke blevet kønnere og det er da slet ikke brugbart i forhold til dine ønsker, men nu skriver jeg det alligevel :)....

<div style="line-height: 1.8;">
<span style="padding-top: 0.3em; padding-bottom: 0.3em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
<span style="padding-top: 0.3em; padding-bottom: 0.3em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
<span style="padding-top: 0.3em; padding-bottom: 0.3em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx CO</span><span style="position: relative; top: 0.3em; background-color: red;"><span style="font-size: 75%; background-color: green;">2</span> </span><span style="padding-top: 0.3em; padding-bottom: 0.3em; background-color: blue;">xxx</span><span style="position: relative; top: -0.3em; background-color: red;"><span style="font-size: 75%; background-color: green;">2</span> </span><span style="padding-top: 0.3em; padding-bottom: 0.3em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
<span style="padding-top: 0.3em; padding-bottom: 0.3em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
<span style="padding-top: 0.3em; padding-bottom: 0.3em; background-color: blue;">xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx</span><br>
</div>

Her kan font størrelsen på både den 'hævede' og sænkede' skrift ændres samt den tager hensyn til brugerens indstillinger. Du kan samtidig relativt nemt bestemme hvor højt eller lavt der skal 'flyttes'.

Men slut med den opgave.....kravene var vist mere end jeg magtede :)

Mvh. Johan
Avatar billede johan.o Nybegynder
18. marts 2007 - 22:01 #21
Arh, der er vist stadig noget koks med visse dele...:)...dum opgave alligevel :)...

Mvh. Johan
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 22:29 #22
Ja, men vær venlig at lægge et svar alligevel. Det har været godt at få bekræftet, at dette ikke er vejen frem.
Avatar billede johan.o Nybegynder
18. marts 2007 - 22:42 #23
He he..jeg kunne ikke drømme om at tage imod point fra erikjacobsen :), man kan jo sige at det er en form for tak for tidligere hjælp :), selv om point ikke er det du går mest op i ;)

Mvh. Johan
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 22:59 #24
Den har jeg selv været ude om, hva'?  ;)

Så thesurfer får 30 stykker lakridskonfekt for det svar, som jeg ganske vist har prøvet, men som i mit lille hoved, burde være det rigtige. Og får man sat en line-height, der er lidt større end default, så ses det ikke helt så tydeligt. Det kan sagtens være, at det bliver en del af løsningen.

Eller af den midlertidige løsning: er der andre, der har nogle guldkorn, så læg en kommentar. Posen med lakridskonfekt er ikke helt tom...
Avatar billede johan.o Nybegynder
19. marts 2007 - 14:58 #25
Nu nævner du oplæser programmer, har du evt. nogle links til noget omkring det emne ?

Mvh. Johan
Avatar billede erikjacobsen Ekspert
19. marts 2007 - 15:50 #26
Det er ikke helt inde i projektet endnu, men jeg tror vi skal understøtte "skrivestøtte" og "vital" - hvis ellers jeg har fået navnene rigtigt. Man markerer en tekst på skærmen, og får den læst op. Jeg har desværre ingen links, og har heller ikke "hands-on" erfaring med produkterne.
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