Avatar billede egebos Nybegynder
26. marts 2006 - 14:00 Der er 10 kommentarer og
1 løsning

Lange ord i besked ødelægger designet

Jeg har lavet et cms system men har nogle problemer. Når brugeren skriver et ord der er langt, fks: "heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeej!" så ødelægger den designet..

Her er et billede, hvis du ikke forstår hvad jeg mener:
http://www.egebos.dk/fejl.gif
Avatar billede amews_aj Nybegynder
26. marts 2006 - 14:05 #1
Sæt en div rundt om hele designet i den korrekte størrelse og sæt overflow hidden på. Så skjules det der kommer for langt ud..

<div style="width: 100px; height: 100px; overflow: hidden;">Sidens indhold her (chatteksten)</div>

Bemærk at du skal angive bredde og højde, og ikke bare 100%.
Avatar billede egebos Nybegynder
26. marts 2006 - 14:08 #2
Det var ikke lige det jeg søgte, jeg vil have at når man skriver:
heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeej
så vil jeg have den hopper ned på næste linje, sådan:
heeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeej
Håber du forstår
Avatar billede amews_aj Nybegynder
26. marts 2006 - 14:11 #3
Så kan du i din php gøre sådan

$tekst = "Dette er din tekst med et llaaaaaaaaaaaaaaaaaaaaaaaaannngggtt ord";

$tekst = wordwrap($tekst, 50, "<br>", 1);

50 er antal tegn før den "brækker" en linje
<br> er det tegn den skal indsætte efter 50 tegn
1 betyder at den skal "brække" midt i ord uanset hvad

Du bør sætte antal tegn i forhold til @@@@@@@@@@@@@@@@ da @ fylder mest..
Avatar billede amews_aj Nybegynder
26. marts 2006 - 14:14 #4
Problemet er bare at hvis teksten er kortere så brækker den også teksten.

$tekst = "Dette er din tekst med et llaaaaaaaaaaaaaaaaaaaaaaaaannngggtt ord";
$tekst = wordwrap($tekst, 10, "<br>", 1);
echo $tekst;

Det giver:
Dette er
din tekst
med et
llaaaaaaaa
aaaaaaaaaa
aaaaaaannn
gggtt ord

Har ikke kendskab til andre metoder... selv vil jeg anbefale div løsningen.
Avatar billede amews_aj Nybegynder
26. marts 2006 - 14:29 #5
Her har du en funktion, men det afhænger jo af hvilket tegn man bruger. Bredden på @ er jo mere end på l.

<?
function longtekst($tekst_to_split) {
    $tekstsplit = explode(" ",$tekst_to_split);
    $antal_tegn_split = 10; // Maks antal tegn i langt ord
    $split_med = "<br>"; // Del ord med dette

    for ($i = 0; $i < count($tekstsplit); $i++) {
    if( strlen($tekstsplit[$i]) > $antal_tegn_split) {
          echo wordwrap($tekstsplit[$i], $antal_tegn_split, $split_med, 1);
    }else{
          echo $tekstsplit[$i];
          if ( $i != count($tekstsplit)-1 ) echo " ";
    }
    }
}

longtekst("asd af aaf a as fag fa, dggsdag aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.");
?>
Avatar billede amews_aj Nybegynder
26. marts 2006 - 14:34 #6
Lige ændret lidt:

<?
function longtekst($tekst_to_split) {
    $tekstsplit = explode(" ",$tekst_to_split);
    $antal_tegn_split = 10; // Maks antal tegn i langt ord
    $split_med = " "; // Del ord med dette

    for ($i = 0; $i < count($tekstsplit); $i++) {
    if( strlen($tekstsplit[$i]) > $antal_tegn_split) {
          echo wordwrap($tekstsplit[$i], $antal_tegn_split, $split_med, 1);
          echo " ";
    }else{
          echo $tekstsplit[$i];
          echo " ";
    }
    }
}

longtekst("asd af aaf a as fag fa, dggsdag aaaaaaaaaaaaaaaaaaaaaaaaaaaa. aaa.");
?>
Avatar billede egebos Nybegynder
26. marts 2006 - 14:44 #7
Avatar billede amews_aj Nybegynder
26. marts 2006 - 14:47 #8
Det er præcis det samme som min kode gør, det der er bare asp (deres kode). Prøv på arto at skrive
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Fylder det så ikke mere?
Avatar billede egebos Nybegynder
26. marts 2006 - 14:58 #9
Ihh tak :) Har givet dig dine point.
Avatar billede amews_aj Nybegynder
26. marts 2006 - 15:01 #10
Det var så lidt, og tak for point.. :)
Avatar billede roenving Novice
29. marts 2006 - 06:21 #11
-- og jeg ville banne den slags indlæg, da det kun kan være skrevet for at genere !-)
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