Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

Text-overflow ellipsis FF

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey

Ik zit al een tijdje te zoeken naar een oplossing voor als de tekst te lang is in een div, dat de laatste 3 passende letters worden vervangen door "...".
Door Google kwam ik erachter dat dit kon met : text-overflow:ellipsis, maar dit werkt alleen in IE en niet in FF.
Nu heb ik gezocht om deze code ook in FF te laten werken, kwam ik verschillende oplossingen tegen zoals : http://www.jide.fr/emulat...ipsis-in-firefox-with-css, maar ook deze poster heeft het nog niet goed werkend gekregen.
Nu weet ik dat Tweakers op de frontpage dit ook gebruikt, maar na lang zoeken in broncode kwam ik erachter dat er gebruik wordt gemaakt van javascript en volgens mij helemaal aangepast aan deze site(ben niet zo bekend met JS).

Weet iemand nu misschien een oplossing hoe ik dit werkend krijg in FF & IE?
Of weet iemand waar ik de JS code kan vinden,die niet is aangepast, waarmee dit gedaan kan worden?

Bvd!

edit:oplossing hoeft niet perse in CSS te zijn

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 14:08
Er is geen CSS alternatief voor FF.
Wel kun je met javascript de offsetWidth van een div bepalen en de inhoud ervan hier aan aanpassen.

De text-overflow: ellipsis is een feature van IE, geen standaard CSS.

[ Voor 23% gewijzigd door frickY op 07-07-2008 21:21 ]


Verwijderd

Topicstarter
@hierboven : Oplossing hoeft niet perse in CSS te zijn.
Hoe gaat dat precies met die offsetWidth? Heb je misschien een werkend voorbeeld van dit?

  • MuisM4t
  • Registratie: Mei 2007
  • Niet online
Je moet javascript of php gebruiken hiervoor , zoals al gezegd.

Zie PHP manual: substr voor de php oplossing.

[ Voor 3% gewijzigd door MuisM4t op 07-07-2008 21:29 ]


  • Icelus
  • Registratie: Januari 2004
  • Niet online

Developer Accused Of Unreadable Code Refuses To Comment


Verwijderd

Topicstarter
@MuisM4t , een script die het aantal letters telt zoek ik niet, want kijk het verschil, allebei 15 letters :

wwwwwwwwwwwwwww
en
iiiiiiiiiiiiiii


Dat moet ik niet hebben, dus de laatste 3 passende letters moeten vervangen worden door ...

@Icelus,
dat topic had ik al gevonden, staat geen bruikbare informatie tussen

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 02-10 09:07
Iets als dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var ellipsis = function(e) {
    var w = e.scrollWidth || e.offsetWidth || e.clientWidth;
    var s = e.innerHTML;
    var nl = Math.floor(w / 7.3);
    
    if (s.length > nl) {
        e.innerHTML = s.substr(0, nl) + '...';
    }
    
    return;
};

window.onload = function() {
    var a = document.getElementsByTagName('div');
    
    for (var i = 0, j = a.length; i < j; i++) {
        if (a[i].className.match(/ellip/i)) {
            ellipsis(a[i]);
        }
    }
    
};

past alle div's met een class 'ellip' aan.

Het is even snel in elkaar getikt; en dus ook zeker niet netjes of elegant (die 7.3 is bijvoorbeeld een arbitrary nummer, afhankelijk van de font grootte?), maar voor zover ik kan zien werkt het. Misschien kun je er wat mee.


edit:

Dit is een veel nettere oplossing, gebruik dat maar.

[ Voor 14% gewijzigd door DiSiLLUSiON op 07-07-2008 21:44 ]


Verwijderd

Topicstarter
@DiSiLLUSiON ,
bedankt,
zit al de hele tijd te proberen dat script in mijne te implanteren, lukt maar niet goed...

Kent iemand nog een andere?

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 02-10 09:07
Wat lukt er dan precies niet goed?

Lees de pagina wel goed door, je hebt bijvoorbeeld prototype er naast nodig.

Verwijderd

Topicstarter
Ik puzzel nog een beetje, maar ik krijg een scrollbar horizontaal van weer ik veel hoelang

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:12

crisp

Devver

Pixelated

frickY schreef op maandag 07 juli 2008 @ 21:20:
De text-overflow: ellipsis is een feature van IE, geen standaard CSS.
het is een CSS3 feature die nog in draft is. Firefox is eigenlijk de enige browser die hier ueberhaupt nog op geen enkele wijze support voor biedt. Implementatie van text-overflow hangt echter op nog een heleboel andere zaken mbt overflow-handling wat niet bepaalt een compleet normatieve specificatie kent (overflow-handling binnen auto-layout tables is bijvoorbeeld niet gespecificeerd) en zeker ook nog geen interoperable implementaties kent...

Intentionally left blank


  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 02-10 09:07
Verwijderd schreef op dinsdag 08 juli 2008 @ 00:16:
Ik puzzel nog een beetje, maar ik krijg een scrollbar horizontaal van weer ik veel hoelang
Kijk dan even met firebug naar je css, misschien cancelt jouw css een overflow waarde van die van het scriptje uit.

Verwijderd

Topicstarter
Ah, mooi hij werkt nu, Maaaaaar
als ik de text-align van de div verander in center, dan zie ik opeens niks meer.
Nu moet ik die text toch in het midden zetten voor wanneer de titel een klein woord is bijvoorbeeld.
Met deze werkt 't niet, dus misschien iemand anders met een ander script of oplossing hoe ik toch de text in het midden krijg?

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 02-10 09:07
Dat gaat inderdaad niet werken met dat scriptje, aangezien het afhankelijk is van een supersized margin om de breedte van de tekst te berekenen. Om dan de tekst in het midden te zetten zou betekenen dat het buiten de container valt.

Wel vraag ik me af waarom je de tekst die niet 'afgekapt' wordt gecentreerd wilt hebben?

Het is namelijk sowieso een goed idee om zoiets als dit heel erg spaarzaam te gebruiken, bijvoorbeeld alleen bij een tabel waar een bepaalde rij vaak te lange waardes heeft. In zo'n geval is het onoverzichtelijk als de tekst die niet afgekapt wordt in het midden staat, ik vermoed dat er daarom ook geen rekening mee is gehouden.

Verwijderd

Topicstarter
Ja, snap ik :)

Maar ik ben dus bezig voor een systeem met filmpjes.
Per filmpje is er een divje van 100px breed, bovenaan komt een thumbnail van het filmpje en daaronder de titel, maar als de titel erg kort is, staat hij dus helemaal aan de linkerkant en dat staat niet zo netjes :P
Daarom wil ik het liever gecentreerd hebben. :9

Dus misschien had iemand nog een andere manier?

Verwijderd

Topicstarter
Heeft er iemand misschien nog een andere manier voor wat ik wil? :X

  • funkwurm
  • Registratie: December 2005
  • Laatst online: 22-02-2021
Misschien denk ik te simpel, maar het element waarvan de margin door dit script wordt aangepast plaatsen in een parent element waar jezelf de margin op auto zet?

Verwijderd

Topicstarter
Bedankt voor je reactie, maar het werkt zo nog steeds niet :(

Iemand mss andere oplossing?

[ Voor 60% gewijzigd door Verwijderd op 11-07-2008 15:10 ]

Pagina: 1