Hei!
Sivuni ovat skaalautuvat. Annan eri mitta-arvot prosentteina ja em:minä. Esim. table -->width: 90%; tai p -->font-size: 3em;
Sivullani on lomake, mihin voidaan syöttää tekstiä. Käyttötilanteessa lomakkeen täyttäjä copypastaa kentään tekstiä, minkä yksi tulostusarvo on <pre>-tagit (sen tähden että kappalejaot tulostuvat oikein). Nyt käy niin että kenttä rähjähtää ylileveäksi rikkoen kaikki tauluasetukset ym. tulostettaessa tekstiä tietokannasta kaikelle kansalle luettavaksi (käsin naputeltaessa tekstikenttään tulee aina painettua enteriä oikeissa kohdissa). Olen yrittänyt määritellä pre ja td ja table tageille tyylitiedostossa leveysarvoja eri määreillä, mutta ne eivät kahlitse tuota pre-tageihin syötettyä ylileveää tekstiä.
Voidaanko teksti saada jollakin järkevällä keinolla aina katkeamaan esim. tietyin merkkivälein tai jotain?
pre-tagin ideahan onkin juuri se, että se näyttää tekstin juuri siinä muodossa kuin se on sille annetukin. Onko pakko käyttää tuota pre-tagia? Eikö rivinvaihtoja voi korvata <br />-tageilla, jolloin kappalejaot myös näkyvät oikein?
No ei oikein voi olettaa että lomakkeen täyttäjät ovat kaikki html-taitoisia... ja varsinkin pitkässä tekstissä tuo tagien naputtelu alkaa käydä hermoille...
Hmh, pahoittelen. Oletin jotenkin automaattisesti että käytössä on jokin palvelinpään skriptikieli (esim. php). Sillähän tuo rivinvaihtojen muuntelu käy näppärästi. En tietenkään tarkoittanut että lomakkeelle pitäisi itse näpytellä noita <br />-tageja :)
Siis teen sivuja php:llä. Kuinka käytänössä sijottaisin tuon <br /> eli rivinvaihtotagin?
Jos tallennat tiedot jonnekin välissä, niin varmaan paras on hoitaa muunto tallennusvaiheessa. Ja muuttaminen tapahtuu kätevimmin seuraavalla rimpsulla:
<?php $teksti = ereg_replace("(\r\n|\n|\r)", "<br />", $teksti); ?>
Hei!
Kiitos! On se hienoo että edes tässä vaiheessa oppi tämänkin. Olisi säästynyt monta turhaa näpyttelyä aiemminkin, jos olisi älynnyt kysyä neuvoa. Tuolla ereg_replace ilmeisesti asetetaan joitain ominaisuuksia. Tuon <br /> tagin tiedän kyllä, mutta mitä käytänössä r:ät ja n:ät merkitsevät?
PHP:ssähän on valmis funktiokin tuohon, eli nl2br(), mutta se taitaa ottaa huomioon vain nuo \n - rivinvaihdot. Eli rivinvaihdothan ovat windowsissa \r\n, Macissa \r ja *nixeissa \n. Tuo ottaa huomioon nuo kaikki edellämainitut ja korvaa ne <br />-tageilla.
Tuohan on mahdollista tehdä millä tahansa merkkijononkorvausfunktiolla (esim. str_replacella), mut tuo on aikoinaan tarttunut takaraivoon :)
Irksome kirjoitti:
Eli rivinvaihdothan ovat windowsissa \r\n, Macissa \r ja *nixeissa \n.
\r siis ASCII-merkki #13 ("Carriage Return") ja \n #10 ("Linefeed").
Aihe on jo aika vanha, joten et voi enää vastata siihen.