Avatar billede alex15 Nybegynder
04. februar 2008 - 00:08 Der er 30 kommentarer og
1 løsning

3 x punktummer. i stedet for en tekst som bare foresætter

Hej eksperter

Det var lidt svært og forklare mit spørgsmål ud fra titlen.

Mit spørgsmål lyder på at jeg har lavet en boks i min css fil som har en brede på 200 px. Denne boks henter en overskift fra min database. men eftersom at min overskrift godt kan gå hen og blive længere end de 200 px. Så ville høre hvordan man via f.eks. php kunne gøre så at der automatisk kom 3 x punktum til sidst. Altså LIGE før at teksten går ud over de 200px. I stedet for at teksten forsætter ud over boksen. eller forsætter videre på næste linje..?

- Hvis i forstår spørgsmålet?

css filen:

#boks
{
  width:200px;
}

php filen. (som det ser ud lige nu)

<div id="boks">bla bla bla bla bla bla bla bla bla bla bla bla</div>

php filen. (som jeg gerne ville have den til at se ud)

<div id="boks">bla bla bla bla bla bla bla bla bla ...</div>
Avatar billede jakobdo Ekspert
04. februar 2008 - 06:43 #1
$text = 'bla bla bla bla bla bla bla bla bla bla bla bla';
$max_length = 10;
if(strlen($text)>$max_length){
  echo substr($text,0,($max_length-1)) . '...';
}
Avatar billede alex15 Nybegynder
04. februar 2008 - 11:02 #2
Det ser jo ikke helt forkert ud kan man sige.

Ser lige om jeg kan få det til at virke..!
Avatar billede zurekk Nybegynder
04. februar 2008 - 14:22 #3
Du kan også lave en lille funktion.

function shorten( $str, $max_length = 100 )
{
return strlen( $str ) > $max_length ? substr( $str, 0, $max_length ) . '..' : $str;
}
Avatar billede zurekk Nybegynder
04. februar 2008 - 14:23 #4
Og den bruges selvfølgelig sådan her:

$str = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.';
print shorten( $str );
eller
print shorten( $str, 20 );
Avatar billede alex15 Nybegynder
04. februar 2008 - 14:48 #5
Okay. Havde ikke regnet med at jeres svar kom så hurtig. Og at det var så "nemt" så derfor skal jeg først lige lave noget andet, inden jeg kommer til der hvor jeg faktisk skal bruge det i min hjemmeside. But anyways. Lav lige 2 svar. Så kan i lige få jeres point. så melder jeg tilbage om jeg kunne få det til at virke :o) deal?
Avatar billede jakobdo Ekspert
04. februar 2008 - 15:15 #6
Svar!
Avatar billede zurekk Nybegynder
05. februar 2008 - 02:13 #7
Bare giv dem til jakob, mit svar var bare en udbyggelse af jakobs forslag :D
Avatar billede alex15 Nybegynder
05. februar 2008 - 18:11 #8
Okay :) du bestemmer..

Men derfor skal du stadigvæk have tak for hjælpen også.!
Avatar billede jakobdo Ekspert
05. februar 2008 - 19:15 #9
Takker for point.
Avatar billede zurekk Nybegynder
07. februar 2008 - 18:10 #10
You're welcome :)
Avatar billede alex15 Nybegynder
10. februar 2008 - 17:38 #11
Okay. Kunne ikke rigtig på den første til at fungere som jeg ville have den til. Men den anden virkede næsten som den skulle. Altså den med funktionen.

Der er bage nogle ting ved den som jeg ikke forstår? hvad betyder det der ? mindt inde i funktionen?

Der ud over er det ikke særligt præcis at sige at hvis der er over f.eks. 100 tegn i overskrift. så skriver den ... til sidst.. Der er jo stor forskel på hvor bredt et tegn er. Så derfor ville jeg høre om man kunne lave dette om til f.eks. 100px? - så hvis teksten fyldte over 100px i breden. så ville den lave "..." til sidst..
Avatar billede jakobdo Ekspert
10. februar 2008 - 17:57 #12
return strlen( $str ) > $max_length ? substr( $str, 0, $max_length ) . '..' : $str;
Er det samme som:

if(strlen( $str ) > $max_length)
return substr( $str, 0, $max_length ) . '..'
else
return $str;
Avatar billede alex15 Nybegynder
10. februar 2008 - 18:13 #13
Okay. :)

Men kan man løse det der problem som der er opstået for mig?
Avatar billede jakobdo Ekspert
10. februar 2008 - 18:35 #14
php ved som sådan ikke hvad størrelsen på html output er.
Så skal du evt. lave overflow:hidden; i css
Avatar billede alex15 Nybegynder
10. februar 2008 - 19:02 #15
Ja, det fandt jeg ud af. Problemet er bare at så ved læseren ikke at overskriften nærmest foresætter.. kunne man ikke evt. sætte nogle titel til overskriften? så, hvis man flyttede musen over nyheden, så kom hele overskiften frem i den der lilleboks?
Avatar billede jakobdo Ekspert
10. februar 2008 - 19:29 #16
Tjo, men man kunne også klippe titlen længere ned, og ikke kun til 100.
Længeste bogstaver er M, så du kan se hvor mange M'er der kan være på en linie.
Husk dog på, du laver måske din titel = font-size: 12px.
Men en svagtseende person, ser den måske i 20px.
Avatar billede alex15 Nybegynder
12. februar 2008 - 21:04 #17
Ja okay. kan godt se hvad du mener.

Men hvilken kode skal man skrive før at der kommer den der boks op. Med evt. hele overskriften? - Den boks som også kommer op her på eksperten.dk hjemmeside. hvis du flytter samt holder musen hen over knappen "send"..?

Samt hvad skal man skrive af kode før at der IKKE kan indtastes mere ned f.eks. 100 tegn i ens overskrift? - Lige som på denne hjemmeside?
Avatar billede jakobdo Ekspert
13. februar 2008 - 08:25 #18
Det kan man gøre via title="NOGET"
Avatar billede alex15 Nybegynder
13. februar 2008 - 18:00 #19
Okay perfekt.. og hvad med hensyn til et max antal tegn ?

ps. lav lige et svar. så i kan få hvad i har fortjent! :)
Avatar billede jakobdo Ekspert
13. februar 2008 - 21:34 #20
Svar er allerede klaret.
Max antal tegn også på title?
Så kunne du jo bruge samme funktion, med en anden længde.
Avatar billede alex15 Nybegynder
13. februar 2008 - 21:40 #21
Gud ja.. Havde jeg ikke lige set ;o) sat nemlig lige og fik dårlig samvitighed over at i ingen point fik..

Nej ikke i titlen. men når man skal skrive selve nyheden. Her på eksperten.dk - der kan man ikke indtaste mere end et X antal tegn nemlig.. men der kan jeg måske bare bruge samme kode?
Avatar billede jakobdo Ekspert
13. februar 2008 - 21:45 #22
Kommer an på om du vil tjekke i php eller javascript.
Avatar billede alex15 Nybegynder
13. februar 2008 - 21:52 #23
php..

- Men det lyder som om at det kun er muligt at gøre - hvis man gør det i javascript eller hva?
Avatar billede jakobdo Ekspert
14. februar 2008 - 08:12 #24
Nej nej, det kan du jo netop gøre med php.
Men først efter det er sendt til serveren.
Avatar billede alex15 Nybegynder
14. februar 2008 - 19:50 #25
Ja okay. det var det som jeg tænkte.. Så kan man få serveren til at sende teksten tilbage og sige at der er for mange fejl..

men hvordan har de gjort det her på eksperten? mener. der kan man jo på ingen måde indtaste mere end et X-antal bogstaver..??
Avatar billede jakobdo Ekspert
14. februar 2008 - 21:54 #26
Hvor ser du den funktion henne?
Avatar billede alex15 Nybegynder
15. februar 2008 - 17:36 #27
Ser den når det er man skal skrive sin overskrift på det spørgsmål man har tænkt sig og stille..
Avatar billede jakobdo Ekspert
15. februar 2008 - 19:57 #28
Det tror jeg de laver med php.
Avatar billede alex15 Nybegynder
16. februar 2008 - 16:39 #29
Ja okay.. Vil jeg så lige prøve og finde ud af hvordan de gør det.. men du skal have tak for hjælpen for denne gang :o)
Avatar billede cronaldo Nybegynder
29. juni 2008 - 16:21 #30
alex15: det er vel bare <input type="text" maxlength="100"> så kan man ikke skrive over 100 tegn i feltet ?
Avatar billede alex15 Nybegynder
29. juni 2008 - 17:25 #31
Nice. Den er jo meget bedre. hehe :D takker.
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