Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: CSS, HTML: <pre> -onglema skaalautuvissa sivuissa

Sivun loppuun

kettu [05.05.2004 12:31:31]

#

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?

Olga [05.05.2004 12:39:12]

#

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?

kettu [05.05.2004 13:20:18]

#

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...

Olga [05.05.2004 13:22:45]

#

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 :)

kettu [05.05.2004 13:49:49]

#

Siis teen sivuja php:llä. Kuinka käytänössä sijottaisin tuon <br /> eli rivinvaihtotagin?

Olga [05.05.2004 14:01:22]

#

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);
?>

kettu [05.05.2004 15:30:56]

#

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?

Olga [05.05.2004 15:35:42]

#

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 :)

Blaze [05.05.2004 17:44:51]

#

Irksome kirjoitti:

Eli rivinvaihdothan ovat windowsissa \r\n, Macissa \r ja *nixeissa \n.

\r siis ASCII-merkki #13 ("Carriage Return") ja \n #10 ("Linefeed").


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta