Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Palstojen luominen nettisivulle

Sivun loppuun

Heikki-Johannes [24.10.2008 13:42:27]

#

Heippa hei sun heiluville!

Pyytäisin teiltä kaikilta lämminsydämisiltä koodereilta apua pikku probleemaani suunnittelemiini nettisivuihin liittyen. Haluaisin saada nettisivulle luoduksi kolme palstaa, joista keskimmäinen olisi varsinainen "pääpalsta", jolla on tekstiä ja kuvia. Vasemmanpuoleisella palstalla olisi tietyt klikattavat perusikonit ja oikealla palstalla ei mitään (ainakaan näillä näkymin). Sivun yläosassa olisi sivujen logo. Keskimmäinen palsta olisi näillä näkymin se ainoa "vaihtuva" palsta, jossa olisi sivujen pääasiallinen sisältö. Se olisi myös se levein palsta, kaksi muuta palstaa olisivat kapeampia.

Eli kuinka nettisivulle saa luotua palstat? Olen yrittänyt tätä NVU:lla ja KompoZerilla, mutta kummatkin heittävät tekstin koko sivun levyiseksi, enkä ole millään onnistunut löytämään keinoa saada luotua palstoja. Ja jos joku voisi vielä bonuksena neuvoa kikan, jolla tekstin saa "kiertämään" kuvat, so. menemään niiden ohitse niin, että kuvat eivät "katkaise" tekstin kulkua palstalla vaan ovat tavallaan "upotettuina" tekstin sekaan?

Käännyn näiden foorumeiden puoleen, koska täällä tuntuu olevan aika gurua porukkaa, jolta tuollaisen perussetin luulisi onnistuvan. Jos joku voisi vaikka antaa valmiiksi koodinpätkän, jolla palstojen luominen ja kuvien luonteva sommittelu tekstin sekaan onnistuu? Etenkin tuo palstojen luominen olisi todella tärkeää, että sivut näyttäisivät vähän uskottavammilta ja hienommilta.

Terveisin
Heikki-Johannes

Lebe80 [24.10.2008 13:45:24]

#

Lataa joku valmis template, niin säästät muiden aikaa.

Esim.

http://wordpress.org/extend/themes/disciple, ja muokkaa ei-wordpress muotoon.

jmp [24.10.2008 15:38:57]

#

Terve Heikki-Johannes.

Palstat voi toteuttaa helposti käyttämällä <div>-tageja ja hiukkasen CSS:ää. Palstat voi tehdä HTML-tiedostoon esim. näin: http://pastebin.com/fcd9f6e5

CSS voisi näyttää tältä:

body {
    width: 90%;
    margin: 0 auto;
}
div.palsta {
    float: left;
    width: 30%;
    margin-right: 1em;
}
img.kuva-oikea {
    float: right;
}

Nyt yhden palstan koko on siis 30% bodyn koosta (joka tässä tapauksessa on 90% koko sivusta). Pienentäessä ikkunaa palstojen koko pitäisi muuttua samassa suhteessa. Jokin minimiarvo palstojen koolle voisi olla hyvä. Tämän voi tehdä käyttämällä esim. min-width-attribuuttia.

En ehtinyt nyt kirjoittaa erillisiä määrittelyjä keskimmäiselle palstalle, mutta tuon pitäisi onnistua samoilla periaatteilla helposti.

Tuon kuvakikan tässä tapauksessa toteuttaa img.kuva-oikea. Kuvan voi asetella vasemmalle käyttämällä left-arvoa. Jos haluaa lehtityyliset palstat (eli välilyöntien pituutta kasvatetaan niin, että koko rivin tila käytetään), voi div.palsta-kohtaan kirjoittaa text-align: justify;.

Toivottavasti tuosta oli apua.

Heikki-Johannes [03.11.2008 20:17:28]

#

Oli apua, mutta ei tarpeeksi. Kopioin tuolta sivulta http://pastebin.com/fcd9f6e5 koodisi ja lisäsin siihen tuossa ylhäällä antamasi CSS-koodin, mutta palstoja ei synny. Kompozerin Preview-tilassa teksti näkyy koko sivun levyisenä, ja samoin käy, kun kopioin koodin Notepadiin ja tallennan sen html-muodossa katseltavaksi.

Syynä saattaa olla se, että sijoitan antamasi CSS-koodit vääriin kohtiin HTML-tiedostossa. En ollut myöskään aivan varma, mihin kohtaan keskimmäisen palstan määrittelyt kirjoitetaan, joten laitoin sen toisen (keskimmäisen) div class="palsta"-koodin kohdalle. Ja mihin kohtaan se min-width-attribuutti pitäisi laittaa?

Alla tulee koodini, jota toivoisin teidän korjaavan niin, että siitä syntyy se kolme palstaa ja kuvakikka. Auttakaa tyhmää!

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="content-type"
 content="text/html; charset=utf-8">
  <title>Lorem ipsum</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body width="90%" margin="0 auto">
<div class="palsta" float="left" width="30%"
 margin-right="1em" text-align="justify">
<img class="kuva-oikea" float="right" src="kuva.png" alt="Lipsum">
Tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä...
</div>
<div class="palsta" float="middle" width="40%"
 margin-right="1em" text-align="justify">
Tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä...
</div>
<div class="palsta" float="right" width="30%"
 margin-right="1em" text-align="justify">
Tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä...
</div>
</body>
</html>

jmp [03.11.2008 21:23:55]

#

CSS-koodi menee tiedostoon nimeltä style.css. Tähän viitataan sivulla http://pastebin.com/fcd9f6e5 olevassa koodissa rivillä

<link rel="stylesheet" type="text/css" href="style.css" />

Tämä siis kertoo selaimelle, että CSS-määrittelyjä löytyy style.css-nimisestä tiedostosta. Tallenna siis tuo CSS-koodi tuon nimiseen tiedostoon.

Kirjoitinpa tuon koodin nyt uusiksi, koska alunperinhän halusit keskimmäisen palstan olevan muita leveämpi. Tallenna siis molemmat erillisiin tiedostoihin:

style.css:

body {
    line-height: 140%;
    margin: 4em auto;
    width: 90%;
    padding: 0 1em;
}
div#oikeapalsta {
    float: right;
    margin-left: 1em;
    text-align: justify;
    width: 160pt;
}
div#keskipalsta {
    text-align: justify;
}
div#vasenpalsta {
    float: left;
    margin-right: 1em;
    text-align: justify;
    width: 160pt;
}
img.kuva-oikea {
    float: right;
}

tiedosto.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Lorem ipsum</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="oikeapalsta">
Tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä...
</div>
<div id="vasenpalsta">
<img class="kuva-oikea" src="kuva.png" alt="Lipsum">
Tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä...
</div>
<div id="keskipalsta">
Tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä tekstiä...
</div>
</body>

Nyt jokaiselle palstalle on omat määrittelyt. Voit vaihtaa palstojen kokoa muuttamalla niiden width-attribuuttia. Keskipalstan koko pitäisi muuttua automaattisesti.

jormi [04.11.2008 14:54:21]

#

http://pp.kpnet.fi/jvm/jvm/index.htm
Toteutin joskus kauan sitten palsta-ajattelun kotisivullani taulukkotaitolla ja CSS:llä. Nyt taulukkotaitosta puhuminen taitaa olla vanhanaikaista. JVM

Metabolix [04.11.2008 15:06:07]

#

jmp:n esimerkkiin lisäisin, että jos reunapalstojen sisältö ei ylety alas asti, keskipalsta valtaa alareunassa niidenkin tilan. Yksi ratkaisu tähän on asettaa keskipalstan marginaalit reunapalstojen levyisiksi.

#vasen {
  width: 30%;
  float: left;
}
#oikea {
  width: 20%;
  float: right;
}
#keski {
  margin-left: 30%;
  margin-right: 20%;
}

Heikki-Johannes [14.11.2008 16:22:55]

#

Vielä on pari probleemaa.

Keskipalstan teksti valahtaa 3-4 fonttia leveämmäksi sen jälkeen, kun reunapalstojen teksti on päättynyt. Keskipalstan leveys siis kasvaa hieman, niin ettei sen ja reunapalstojen välissä ole samaa rakoa kuin alussa, vaikka olen asettanut keskipalstan marginaalit reunapalstojen levyisiksi Metabolixin esimerkin mukaan. Mikä eteen?

Ja nettisivulla eivät näy ääkköset! Tekstiä-sanan ä:stä tulee tyhjä neliö, joka syö myös sitä seuraavan välilyönnin ja seuraavan sanan t-kirjaimen, tähän tyyliin: "&#18484;eksti&#18484;eksti&#18484;eksti&#18484;"... Kuinka saada ääkköset näkyviin? Saattaako vika piillä omassa selaimessani? Selaimeni on Internet Explorer 6.

vehkis91 [14.11.2008 16:41:30]

#

Heikki-Johannes kirjoitti:

Vielä on pari probleemaa.
Selaimeni on Internet Explorer 6.

ÖÖÖ? Oiskohan aika vaihtaa selainta, jos ei Firefox tai muutkaan käy niin päivitä IE edes uusimpaan versioonsa...

jmp [14.11.2008 17:12:12]

#

Heikki-Johannes kirjoitti:

Vielä on pari probleemaa.
Keskipalstan teksti valahtaa 3-4 fonttia leveämmäksi sen jälkeen, kun reunapalstojen teksti on päättynyt. Keskipalstan leveys siis kasvaa hieman, niin ettei sen ja reunapalstojen välissä ole samaa rakoa kuin alussa, vaikka olen asettanut keskipalstan marginaalit reunapalstojen levyisiksi Metabolixin esimerkin mukaan. Mikä eteen?

Metabolixin esimerkissä palstojen välissä ei ole rakoa. Raon saat asettamalla margin-left- ja margin-right-attribuuttien arvot palstojen kokoa suuremmiksi.

Merkistöongelma todennäköisesti johtuu siitä, että tallennat tiedoston Latin 1 -merkistöllä, ja HTML-tiedosto sanoo merkistön olevan UTF-8 (ks. HTML-esimerkki). Tiedoston merkistökoodauksen ja tiedostossa ilmoitetun merkistön on oltava samat. Vaihtoehtosi ovat siis:

1. Tallenna tiedosto UTF-8-koodattuna
2. Vaihda HTML-tiedostossa esiintyvä charset muotoon iso-8859-1, iso-8859-15 (jos haluat euromerkin) tai vastaavaksi.


Sivun alkuun

Vastaus

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

Tietoa sivustosta