Autor | Zpráva | ||
---|---|---|---|
Honza Č Profil * |
#1 · Zasláno: 23. 2. 2005, 00:04:51
Zdravím. Programuji si svůj engine na guestbook a chci ho udělat pokud možno co "nejblbuvzdornější" :) Data se mi vypisují z databáze do nastylovaného divu o šířce 500px, který je umistěn v divu (ktery zapouzdřuje celou stránku) o šířce 510px s vlastnostmi margin left a right na auto (+hacky pro ie)... Problém je, že když někdo napíše do guestbooku dlouhý řetězec stejných znaků/entit, tak se řádek nezalomí a přetéká do okolní stránky, takže to působí celkem neesteticky... Řešení overflow:hidden mi také nepřijde jako nejvhodnější, takže bych žádal o radu, jak by se dalo docílit toho, aby se text v divu (např mnoho teček) zalomil podle potřeby. Díky za rady
JČ |
||
krteczek Profil * |
#2 · Zasláno: 23. 2. 2005, 01:30:59
ahoj, tady timhle to rozbiješ:o)
// zde se vlozi na kazdy 36 znak mezera,tim se zalomí prilis dlouhe slova typu JATIROZBIJUVZHLEDSTRÁNKYJATIROZBIJUVZHLEDSTRÁNKYJATIROZBIJUVZHLEDSTRÁN KYJATIROZBIJUVZHLEDSTRÁNKY, $odkaz = wordwrap($odkaz, 36, " ", 1); ještě je dobré pomocí : $odkaz=substr($odkaz,0,999); vybrat jen prvních treba 1000 znaků (upozornit na to je slušnost, popripade pomoci javaskriptu hlídat pocet vlozených znaku a pri naplneni kvoty ho nepustit dál, ale v každem pripade to ošetri na servveru ještě tím oříznutím) krteczek |
||
Yuhů Profil |
#3 · Zasláno: 23. 2. 2005, 02:55:45
prostě wordwrap()
dobré je místo mezery použít na lámání třeba tag <wbr> (sice zastaralý, ale funkční) |
||
Honza Č Profil * |
#4 · Zasláno: 23. 2. 2005, 15:35:12
Wordwrap znám, ale ten se v mém případě použít nedá, protože zalamuje i v html tagu nebo entitě. Navíc wordwrap zalomí po každém x-tém znaku, jakmile je to možné.... Jedině si udělat svoji funkci :/ Ještě si s tím trošku pohraju...
JČ |
||
Honza Hučín Profil |
#5 · Zasláno: 23. 2. 2005, 16:05:18
Tato funkce rozsekne slovo delší než $mez znaků.
function rozsekni_dlouhy($retezec,$mez) { $pole=explode(" ",$retezec); while (list($i,$h) = each($pole)) { if (($delka=strlen($h))>$mez) { $pomretez=""; for ($j=0;$j<($delka/$mez);$j++) $pomretez .= substr($h,$j*$mez,$mez)." "; $pole[$i]=$pomretez; //rozdeli retezec na vic kusu mezerami } } $retezec2=implode($pole," "); return $retezec2; } |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0