webForumDet fria alternativet

Radavstånd "äter" radbrytning

HTML & CSSur HTML, XHTML & CSS

14 svar · 765 visningar · startad av DanneSt

Medlem sedan feb. 20041 311 inlägg
Frågan#1

Jag har lagt till två rader i css:n för att snygga till texten lite med radavstång och bokstavsmellanrum:

line-height: 1.5em;
letter-spacing: 0.1em;

Tyvärr så "äter" koden upp en radbrytning av någon anledning!?
Uh?

Medlem sedan mars 20041 505 inlägg
#2

Låt mig gissa: När du använder letter-spacing så kan du lägre inte använda två <br> efter varandra i IE?

Detta problem stötte jag på för några år sedan:
http://www.webforum.nu/showthread.php?t=100254

Det diskuteras även här:
http://www.webforum.nu/showthread.php?t=134522

Medlem sedan feb. 20041 311 inlägg
#3

Helt rätt gissat!

Men jag ser ingen lösning på problemet.
Snabblösningen som presenteras i den första tråden kan jag inte använda då texten hämtas från en input som kommer att användas av en "icke-hacker"...

Medlem sedan mars 20041 505 inlägg
#4

Alltså det finns väl ingen lösning, tror jag. Det är en IE-bugg, bara att leva med.
Det bästa är väl att använda <p>-taggar för att dela in texten i stycken.

Medlem sedan feb. 20041 311 inlägg
#5

Troxy skrev:

Alltså det finns väl ingen lösning, tror jag. Det är en IE-bugg, bara att leva med.
Det bästa är väl att använda <p>-taggar för att dela in texten i stycken.

Amen asså, det måste finnas en lösning!! :x :bla x(

...tycker inte om buggar...

Medlem sedan nov. 20051 596 inlägg
#6

Men det är ingen bra idé att använda två <br> heller. Med två <p> kan du med margin få precis det avstånd du vill. Om du har det noll:at från början vill säga.

Äh läste inte en av dina länkar innan jag skrev.

Medlem sedan feb. 20041 311 inlägg
#7

Kan inte använda <p>.
Texten genereras av att man skriver i en textarea och där använder man ju retur/enter för radbrytningar...

Medlem sedan dec. 20042 245 inlägg
#8

Ja? Går det inte ersätta två radbrytningar med en <p>?

Medlem sedan feb. 20041 311 inlägg
#9

Eeehhh, jooooo....det borde ju gå iofs...
Har ju fått hjälp med en funktion som ersätter andra saker så detta borde ju funka.
Provar ikväll!

Medlem sedan dec. 2006382 inlägg
#10

PHP:

<p> <?= str_replace("\n\n", "</p>\n<p>", $foobar) ?> </p>

ASP:

<p> <%= Replace(foobar, vbCrLf & vbCrLf, "</p>" & vbCrLf & "<p>") %> </p>

Så typ... ;)

Medlem sedan juni 20019 519 inlägg
#11
<p> <%= Replace(foobar, vbCrLf & vbCrLf, "</p>" & vbCrLf & "<p>") %> </p>
<p> <?= str_replace("\n\n", "</p>\n<p>", $foobar) ?> </p>

Om jag fattar det rätt :P

Medlem sedan dec. 2006382 inlägg
#12

Ja visst, det är jag som agerar först och tänker sen. :P
Jag har rättat min exempelkod.

Medlem sedan feb. 20041 311 inlägg
#13

Nix, får inte till det.

Lade till raden i ersättningsfunktionen så den blev så här:

	Function fReplace(ByVal strText)
	strText = Replace(strText ,"&", "&amp;")
	[I]strText = Replace(strText ,vbCrLf & vbCrLf, "</p>" & vbCrLf & "<p>")[/I]
  
	fReplace = strText
	End Function

Detta resulterar i att radbrytningar byts ut mot <p>-taggarna, men flera såna efter varann blir ju inga radbrytningar i webbläsaren!

Medlem sedan dec. 20042 245 inlägg
#14

Det har du ju rätt i.

Och HTML4 rekommenderar att man inte har tomma P-element...

Behöver det bli mer avstånd? Kan du inte bara filtrera bort tomma P-element eller konvertera 2+ radbrytningar till en <p>?

Annars kan det bli krångligare ändå, om man ska börja med saker som <p style="margin-top:3em"> för fler radbrytningar...

Medlem sedan feb. 20041 311 inlägg
#15

Jo, det behöver bli mer avstånd. Genom att lägga in fler radbrytningar får man en enkel styckeindelning som gör det lättare för ögat att läsa.

Är för trött för att förstå ditt nya förslag just nu, kanske det går lättare imorgon... :-)

Tillsvidare får jag helt enkelt strunta i bokstavsmellanrummet. Trist.

129 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)