Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: css ja a:active

Sivun loppuun

Flatologi [17.08.2009 21:24:40]

#

Eli tarkoituksena oli saada avoinna olevan sivun linkin tausta punaiseksi (css määrittelynä), kunnes tajusin ettei se onnistukaan niin kuin olin ajatellut. Linkkihän on aktiivinen vain silloin kun hiirellä klikkaa...
Onko olemassa jotain kikkaa, jolla sen taustan saa punaiseksi ilman että joudun joka sivulle määrittelemään ko. sivun linkin jonkin class:n avulla. Nyt linkit tulevat include-toiminnon kautta (navi.php ja alinavi.php) ja ovat omissa div-lohkoissa.

Teuro [17.08.2009 21:39:53]

#

Mikäs ongelma noissa class määreissä oikein on?

Antti Laaksonen [17.08.2009 21:50:30]

#

Valikkoa muodostaessa voi värittää oikean linkin, kunhan nykyinen sivu on tiedossa. Seuraavassa esimerkissä valikon sivujen osoitteet ja nimet on laitettu taulukkoon, jolloin niitä voi käsitellä näppärästi.

*** navi.php
<?php
// valikon sivujen osoitteet ja nimet
$linkit = array(array("sivu1.php", "Sivu 1"),
                array("sivu2.php", "Sivu 2"),
                array("sivu3.php", "Sivu 3"));

// selvitetään nykyinen sivu
$sivu = basename($_SERVER['PHP_SELF']);

// näytetään valikko
foreach ($linkit as $linkki) {
    $kohde = $linkki[0];
    $nimi = $linkki[1];
    // korostetaan nykyisen sivun linkki
    if ($kohde == $sivu) {
        $lisa = "style=\"background:red\"";
    } else {
        $lisa = "";
    }
    echo "<a href=\"$kohde\" $lisa>$nimi</a><br>";
}
?>
*** sivu1.php
<?php
include("navi.php");
?>
<h1>Sivu 1</h1>
*** sivu2.php
<?php
include("navi.php");
?>
<h1>Sivu 2</h1>
*** sivu3.php
<?php
include("navi.php");
?>
<h1>Sivu 3</h1>

Flatologi [17.08.2009 22:30:06]

#

Teuro kirjoitti:

Mikäs ongelma noissa class määreissä oikein on?

Ei niissä ole mitään vikaan, päinvastoin. Yritän vain päästä mahdollisimman vähällä vaivalla nettisivujen päivittämisessä: lisätessä uutta sivua ei tarvitse muokata jokaista sivua...

Täytyypä kokeilla tuota koodia...

Teuro [18.08.2009 06:17:55]

#

Flatologi kirjoitti:

Yritän vain päästä mahdollisimman vähällä vaivalla nettisivujen päivittämisessä: lisätessä uutta sivua ei tarvitse muokata jokaista sivua...

Miksi uutta sivua lisättäessä pitäisi koskea muihin sivuihin muutoinkaan. Laiskuus on kyllä hyvä asia, koska sillä tavalla saa yleensä helpoimmat ratkaisut aikaan.

Flatologi [18.08.2009 19:44:18]

#

Viittasin tuolla lähinnä siihen, että aikaisemmin sivulinkit olivat itse sivussa, jolloin lisätessä uuden sivun (ja linkin) joutui muokkaamaan myös muita sivuja linkkien osalta.

Flatologi [18.08.2009 21:07:51]

#

Kun tuo php ei ole meikäläisellä juurikan hallussa, niin kysyisin kuinka tuossa voisi vielä muuttaa esim. tekstin väri valkoiseksi, kursivoida ym. ym.

Antti Laaksonen [18.08.2009 21:18:40]

#

Kaikki valitun linkin CSS-muotoilut voi kirjoittaa samaan kohtaan.

Yllä olevassa koodissa lukee "background:red", eli taustaväri on punainen.

Jos kirjoitat sen tilalle "background:red;color:white;font-style:italic", taustaväri on punainen, tekstin väri on valkoinen ja teksti on kursivoitu.

reca [18.08.2009 22:15:56]

#

Mielestäni kannattaisi tässä heti opetella käyttämään id:tä tai class:ia ja laittamaan ne tyylit sinne tyylitiedostoon, jonne ne kuuluvat. Aika heikkoa lähteä myöhemmin muuttelemaan koodia joka on täynnä noita style-muotoiluja...

Flatologi [18.08.2009 22:46:31]

#

Kiitos, Antti. Puolipisteellähän ne tietty... Oishan sen itekin tajunnut jossain vaiheesssa.

Ja Reca: css:n id:t ja class:t hallussa, mutta ei niilläkään ihmeisiin pysty. Ja vain idiootti laittaa html-koodiin style-muotoiluja...

jo123 [18.08.2009 23:21:38]

#

Flatologi kirjoitti:

Ja vain idiootti laittaa html-koodiin style-muotoiluja...

Sinä oikeastaan juuri nyt panet html-koodiin style-muotoiluja, joskin php:een kautta. :)

Flatologi [19.08.2009 18:19:49]

#

no joo, periaatteessa, mutta kyseessä include toiminnon kautta pelkkä linkkipalkki. Eli ei siihen varsinaiseen sisältöön mitään style-muotoiluja tule. Ja jos joutuu jotain muokkaamaan niin ei tarvitse koskea kuin yhteen tiedostoon.

Edit:
Pitkät piuhat... voihan siihen php-koodin tulostukseen laittaa jonkun class:n, jolla määrittää avoinna olevan sivun linkin tyylin.

reca [19.08.2009 21:09:45]

#

Oletko mahdollisesti ymmärtänyt miten id ja class toimii? Varmuudeksi pieni selostus...

Kun määritellään jollekkin elementille id/class, niin se kyseinen id/class "pitää" määritellä css-tiedostossa (voi sen määritellä head-osassakin). Eli siellä css-filussa sitten kerrotaan miltä se näyttää.

Toisin sanottuna laitat nuo kaikki nykyisessä style-atribuutissa olevat määrittelyt sinne css-tiedostoon sen halutun id:n/class:n kohtaan. Muutos ei vaikuta mitenkään toimintaan, mutta koodi selkeytyy huomattavasti. Lisäksi myöhemmin ulkoasua on helpompi muuttaa. Ei tarvitse kajota kuin css-tiedostoon, joka on tarkoitettu ulkoasuseikkoja varten.

Toivottavasti osasin selittää asiat tarpeeksi fiksusti, ymmärrettävästi ja edes vähän oikeilla termeillä. "Fiksummat saa korjata" ;-)

Flatologi [19.08.2009 21:34:15]

#

On hallussa, usko pois.

reca [20.08.2009 04:35:59]

#

Asia selvä... :-)


Sivun alkuun

Vastaus

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

Tietoa sivustosta