Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Css ei toimi

Sivun loppuun

Rickken [15.01.2011 22:04:13]

#

Joo eli aloittelen tässä vasta css:ssän opettelua ja ihmettelen miksi mikään css:ssästä ei toimi sivullani. Huomakaa ikäni olen alle 15-vuotias, sanokaa suoraan mikä vikana ja haukkukaa pystyyn.

Tässä koodit:
etusivulle eli index.html

<!DOCTYPE html>
<html>
<head>
<title>Hellurei!</title>
<link href="tyylit.css" rel="stylesheet" type="text/css">
</head>



<body bgcolor="white">

<div id="banner" align="center">
<img src="http://therickken.viuhka.fi/therickken.net.png">
</div>









<div id="text" align="center">

<div id="linkit" align="center">

<font size="5">

 <a href="index.html">Moi</a>  <a href="Perkele">Mi2</a>  <a href="tue.html">Moi123</a>  <a href="kumppanit.html">migru23435</a>

</font>
</div>

<center>
<font size="10">
Tervetuloa Therickkeniin!<br>









<div id="copyright" align="center">

<center>
<font color="black"  size="2">
TheRickken (R) Copyright
</font>

</div>




</body>
</html>

tyyli.css

ont-style: Tahoma;

border-collapse: collapse;

#banner
{
background: black;
border-left: blue;
border-right: blue;
border-bottom: blue;
border-top: blue;
padding: px;
margin: px;
}

#linkit
{

padding: 0cm;
margin: 0px;

A:visited
{
background: #00af90;
font-style: Tahoma bold;
 }


A:hover
 {
color: #CC00CC;
 font-weight: bold;
 }

A:active
{
background:#e861ad;
font-style: Arial;
font-color: #00af90;
}
border-left:10px;
border-right:10px;
border-bottom:650px;
border-top:650px;
}
}
#text
{
text-decoration: none;
background: #e861ad;
border-left-color: blue;
border-right-color: blue;

border-bottom-color: blue;

border-top-color: blue;

border-left-style: double;
border-right-style: double;

border-bottom-style:double;

border-top-style: double;

padding: 1cm 1cm 1cm 1cm;
margin: 20px 20px 20px 20px;
padding: 0cm 0cm 0cm 0cm;
margin: 0px 0px 0px 0px;
}



#copyright
{
padding: 0cm 0cm 0cm 0cm;
margin: 0px 0px 0px 0px;
}

Aaltoviivat ovat sitten aivan sekasin.

eq [15.01.2011 22:15:09]

#

Miksi et kokeile jotain pienempää CSS-esimerkkiä, ja katso toimisiko se. CSS-tiedostossasi on kasa virheitä - en osaa ulkomuistista sanoa mitä CSS-standardi sanoo virheidenkäsittelystä, mutta on hyvin mahdollista että selaimesi voi hyvin ohittaa koko tiedoston, sillä ensimmäinen virhe on heti alussa (oletan tässä siis, että kuten sanoit, mikään CSS-määre ei toimi sivullasi).

HTML:stä: <center> ja <font> -tagit ovat epäsemanttisia, ja (tästä syystä) vanhentuneita, HTML 4:stä alkaen. Vältä niiden käyttöä - niille on paremmat vastineet (CSS-tyylit). Noin yleisellä tasolla, keskitetty sisältö on todellisuudessa huonompi idea kuin miltä se voi aloittelijasta tuntua.

Onko TheRickken rekisteröity tavaramerkki? Jos ei, vältä (R):n käyttöä, vaikkei se tuossa asussaan virallinen merkintä olekaan. Noin sivuhuomiona, www-osoitetta muistuttava teksti (kuten "TheRickken.Net") voi olla huono idea logossa silloin, kun kyseistä osoitetta ei ole olemassa tai hallinnassa.

edit:
Niistä CSS-virheistä:

Ensimmäiset pari määrettä ovat lohkojen ulkopuolella.

font-style määrittää tyylin, ei kirjasinta.

#banner-valitsimen viimeiset määreet ovat virheellisiä (lukarvot puuttuvat).

A:active-lohkon jälkeen tulee lohkojen ulkopuolella olevia määreitä ja ylimääräisiä sulkeita.

Copy & paste kannattaa tehdä huolella.

Tyyliseikka: CSS:ssä on paljon ylimääräistä; esimerkkejä

border: 0; // reuna pois kaikilta puolilta
border-color: red; // reuna punaiseksi -||-

border: solid red; // reuna joka puolelta näillä määreillä

jimi-kimi [15.01.2011 22:36:42]

#

Lisää laadukkaita kysymyksiä ja laadukkaisiin kysymyksiin laadukkaita vastauksia.

/* Esimerkki CSS, jossa määritetään #esimerkki tunnisteiselle div-elementille reunat. */
#esimerkki{
  border: thin solid #000;
}

Kysymys THERICKKEN MEGA K00DSTYLEZ:
Oon 15v nobo joka ei osaa k00daa haxorii mut siis haluun siistei vastauxii. Mikä siis on vikana mun 1337 CSS kood!s???!!11oneone

/* Esimerkki CSS, jossa määritetään #esimerkki tunnisteiselle div-elementille reunat. */
kki : valkonen;

villev [15.01.2011 23:07:25]

#

Mitä jos lukisit jonkun CSS-oppaan oikein ajatuksella läpi, mahdollisesti kahdesti? Kukaan ei jaksa listata asioita, jotka koodissasi on pielessä - alla jotakuinkin kaikki mikä ei ole väärin.

#banner
{
background: black;
}


A:visited
{
background: #00af90;
 }


A:hover
 {
color: #CC00CC;
 font-weight: bold;
 }

A:active
{
background:#e861ad;
}

#text
{
text-decoration: none;
background: #e861ad;

padding: 1cm 1cm 1cm 1cm;
margin: 20px 20px 20px 20px;
}

#copyright
{
padding: 0cm 0cm 0cm 0cm;
margin: 0px 0px 0px 0px;
}

The Alchemist [15.01.2011 23:37:27]

#

Ei jumankauta, oikeasti. Opettele lukemaan!

HTML:ssä linkkaat tiedoston tyylit.css mutta ilmeisesti sen nimi onkin tyyli.css.

http://validator.w3.org/
http://jigsaw.w3.org/css-validator/

Noita kahta josset saa läpi, niin sun on ihan turha muita ongelmia alkaa keksiäkään. Ja koska sulla on ideana käyttää CSS:ää, niin sitten otetaan HTML:stä pois tasan kaikki tyylimäärittelyt.

Ei ollenkaan font-tageja, ei ollenkaan align-attribuutteja, ei bgcoloria, ei mitään.

Merri [16.01.2011 00:24:55]

#

/* tämä pois */
ont-style: Tahoma;

/* tämä pois */
border-collapse: collapse;

/* sisensin */
#banner {
	/* background-color riittäisi */
	background: black;
	/* nämä neljä: border: 1px solid blue; */
	border-left: blue;
	border-right: blue;
	border-bottom: blue;
	border-top: blue;
	/* näistä puuttuu arvot, voi poistaa jos et tarvitse */
	padding: px;
	margin: px;
}

/* sisensin */
#linkit {
	padding: 0cm;
	margin: 0px;
/* tästä puuttui lopetus, lisäsin */
}

/* sisensin */
A:visited {
	/* background-color */
	background: #00af90;
	/* erittele font-family: Tahoma; ja font-weight: bold; – font-stylellä asetetaan yleensä kursivointi */
	font-style: Tahoma bold;
}

/* sisensin */
A:hover {
	/* oikein! */
	color: #CC00CC;
	font-weight: bold;
}

/* sisensin */
A:active {
	/* background-color */
	background:#e861ad;
	/* font-family */
	font-style: Arial;
	/* oikein! */
	font-color: #00af90;
}

/* ALKAA: nämä pois */
border-left:10px;
border-right:10px;
border-bottom:650px;
border-top:650px;
}
}
/* LOPPUU: nämä pois */

/* sisensin */
#text {
	/* yleensä tällä poistetaan alleviivaus */
	text-decoration: none;
	/* background-color */
	background: #e861ad;
	/* korvaa käyttäen border: 3px double blue; */
	border-left-color: blue;
	border-right-color: blue;
	border-bottom-color: blue;
	border-top-color: blue;
	border-left-style: double;
	border-right-style: double;
	border-bottom-style:double;
	border-top-style: double;
	/* voisivat olla padding: 1cm; ja margin: 20px; */
	padding: 1cm 1cm 1cm 1cm;
	margin: 20px 20px 20px 20px;
	/* nämä pois */
	padding: 0cm 0cm 0cm 0cm;
	margin: 0px 0px 0px 0px;
}

/* sisensin */
#copyright
{
	/* voisivat olla padding: 0; margin: 0; */
	padding: 0cm 0cm 0cm 0cm;
	margin: 0px 0px 0px 0px;
}

Triton [16.01.2011 02:03:08]

#

Hyvä suomenkielinen opas css:n ja (x)html:n opiskeluun löytyy täältä.

Rickken [17.01.2011 14:31:31]

#

Kiitos kaikille vaivannäöstänne enköhän tajunnut, että koodini oli täyttä sontaa. Voisiko joku vielä kertoa, että miten tälläinen drop-down navigaatio tehdään ainakin Putkasta Merri tietää sen. :)

Hennkka [17.01.2011 14:53:59]

#

Tarkoititkohan tämmöistä?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            function mene()
            {
                var nav = document.getElementById("nav");
                window.location = nav.options[nav.options.selectedIndex].value;
            }
        </script>
    </head>
    <body>
        <select id="nav">
            <option value="index.html">Etusivu</option>
            <option value="pelit.html">Pelit</option>
        </select>
        <input type="button" onclick="mene()" value="Mene">
    </body>
</html>

eq [17.01.2011 15:05:40]

#

Hennkka kirjoitti:

Tarkoititkohan tämmöistä?

Oletko koskaan tullut ajatelleeksi HTML-pätkiäsi käytettävyyden kannalta? Oleellista toiminnallisuutta ei yksinkertaisessti saa kätkeä JavaScript-komentosarjojen taakse. (Useimmin näiden pudotusvalikkojen kanssa JavaScriptillä muutetaan lista toimimaan niin, että se 'toimii' heti valinnan jälkeen - ja tuo painike on perinteinen lomakkeen lähetyspainike, joka toimii kaikissa selaimissa. Tarvittaessa koko painikkeen voi JavaScriptillä(!) poistaa näkyvistä sivun latautuessa).

Hennkka [17.01.2011 15:33:43]

#

Hmm...Pitääpä miettiä sivujen toimintaa enemmän. Entäs tämä php versio?

<form action="siirry.php" method="get">
    <select name="nav">
        <option value="index.html">Etusivu</option>
        <option value="pelit.html">Pelit</option>
    </select>
    <input type="submit" value="Mene">
</form>

siirry.php

<?php
    header('location: '.$_GET['nav']);
?>

Teuro [17.01.2011 15:58:51]

#

No tuossa nyt ei ole päätä eikä häntää, koska samantien voisi laittaa linkit noille sivuille. Erityisesti tietoturvan kannalta aika huono idea, koska käyttäjä voi syöttää ihan mitä tahansa tuolle koodille.

Eiköhän nyt tarkoiteta ärsyttävästi eikun hienosti esiin tulevaa valikkoa, kun hiiren vie kohteen päälle. Tätäkin valikkoratkaisua kannattaa miettiä aika tarkkaan.

Hennkka [17.01.2011 16:08:20]

#

Niin varmaan. Viestistä ei vain saanut selville, että minkä laista valikkoa haluttiin. No en nyt tänne lähde listaamaan, mitä semmoiseen valikkoon tarvitaan, mutta tästä voisi olla hyötyä siinä tapauksessa.

ps.Ei omastakaan mielestäni tuossa toisessa vinkissäni mitään järkeä ollutkaan.

Rickken [17.01.2011 21:39:24]

#

Tarkoitin tälläistä jonka otin Merrin sivuilta: http://merri.net/xhtml/js_enhanced_css_menu/

Merri [18.01.2011 00:11:06]

#

Tästä tulee "ummet ja lammet" -postaus... keskittyen vahvasti näiden valikoiden IE-ongelmiin. Lyhyestä virsi kaunis: kaikki CSS:n valikot perustuvat :hoverin pohjalle. Vanhoissa IE-selaimissa :hover toimii kuitenkin vain linkkielementeille.

Tuon viisi vuotta sitten kyhäämäni valikon "huono" puoli on se, että se vaatii juuri vähän ekstraa toimiakseen IE6:lla (HTC-tiedosto) – se mahdollistaa :hoverin mille tahansa elementille. CSS on kuitenkin muutoin universaali, vaikka IE onkin tosi helppo rikkoa pienelläkin muutoksella. Helppo rikkoutuminen on lopputulosta siitä, että tavoitteena on ollut joustava valikon leveys: levein sisältö määrittää sen, miten leveä kukin valikko on. Tämmöinen kikkailu on vaikeaa saada toimimaan vanhoissa IE:n versioissa.

JavaScript-osuus taas on täysin valinnainen, se mahdollistaa vain valikon auki pysymisen vähän pidempään.


CSSplay tarjoaa paljon lisää erilaisia vaihtoehtoja. Osa parempia, osa huonompia. Suurin osa pyrkii välttämään minkäänlaista JavaScriptin tarvetta, mutta toimivat myös jopa IE6:lla.

HTML + TIME -valikko on yksi uudempi mielenkiintoinen tuttavuus. Valikon voi sinänsä suunnitella ensin miten haluaa ja sitten tehdä seuraavat lisäykset:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
muotoon
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:t="urn:schemas-microsoft-com:time">

CSS-lisäys: #valikko ul { behavior: url(#default#time2); }

Sitten kullekin päätason li-elementille tarvitsee määritellä oma ID:

<ul id="valikko">
    <li id="v1">
        <a href="linkki.html">Päätason linkki</a>

Ja avautuvalle valikolle taas tulee begin, end ja timeAction -attribuutit, jotka viittaavat aiemmin määriteltyyn ID:hen:

        <ul begin="v1.mouseenter" end="v1.mouseleave" timeAction="display">
            <li><a href="eka.html">Ensimmäinen sivu</a></li>
            <li><a href="toka.html">Toinen sivu</a></li>
        </ul>
    </li>
</ul>

Eli tämä toimii vanhoissa IE:n versioissa sillä tavoin, että ul-elementille on CSS:ssä määritelty tyyli display: none; ja kun li#v1 mouseenter rävähtää, niin timeActionin display saa aikaan tyylin muutoksen display: block; – vastaavasti kun tapahtuu mouseleave, niin valikko sulkeutuu kun ul-elementin tyyliksi palautuu display: none;

Muut selaimet taas luottavat CSS:ssä määriteltyyn :hover-sääntöön valikon näyttämiseksi.

The Alchemist [18.01.2011 18:58:36]

#

Sanoisin jo kaikille näille IE6:n paapojille, että haistakaa vee. Jos jonkun yrityksen intra vaatii IE6:n niin yksi hiton hailee. Se syöpä ei silti kuulu internetiin. IE7:kaan ei osaa vielä ~yhtään mitään, mutta taisi olla juurikin nuo selectorit se osa-alue, mitä siinä hieman rukattiin.

Teuro kirjoitti:

No tuossa nyt ei ole päätä eikä häntää, koska samantien voisi laittaa linkit noille sivuille. Erityisesti tietoturvan kannalta aika huono idea, koska käyttäjä voi syöttää ihan mitä tahansa tuolle koodille.

Tietoturvalla ei ole tässä mitään tekemistä. Antaa käyttäjän syöttää itselleen ihan mitä tahtoo.

Teuro [18.01.2011 19:11:47]

#

The Alchemist kirjoitti:

Tietoturvalla ei ole tässä mitään tekemistä. Antaa käyttäjän syöttää itselleen ihan mitä tahtoo.

Jospa siis annetaan syöteeksi ?nav=../salainen/kansio/asetukset.xml, niin tuo scripti menee mukisematta kyseiseen paikkaan. Eli kyllä sillä tietoturvalla on hiukan väliäkin.

Metabolix [18.01.2011 19:16:43]

#

Teuro, eihän se skripti mene mihinkään. Skripti vain kertoo selaimelle, minne mennä. Käyttäjä pääsee siis aivan täsmälleen samaan tulokseen kirjoittamalla kyseisen tekstin suoraan osoiteriville.

Merri [18.01.2011 19:20:20]

#

Se miksi lähdin IE6:sta höpöttämään on se, että se sattuu olemaan yksi tuon linkitetyn esimerkin olennaisimpia asioita. Omilla sivuilla sen voi onneksi jättää huomioitta. Innostuin silti kirjoittamaan asiasta enemmän kun satuin löytämään ihan vain muutaman kuukauden vanhoja ratkaisuja vanhaan haasteeseen. Jos se tekee IE6-paapojan, niin voi balrogin peräpää sentään jos se nostaa myöhäisangsteja.

Tähän väliin sitten odotellaan, että Rickken saisi aikaiseksi kyhätä edes jonkunlaista omakokeiltua valikkoyritelmää näytille, niin voi taas vaihteeksi paneutua ihan itse asiaan eikä sen viereen.

Rickken [24.01.2011 19:09:14]

#

Anteeksi vastaukseni myöhään, mutta voitteko antaa jotain esimerkkiä tuollaisesta sivusta, jossa ei olisi muuta höskää. Ei oikein uppoa.

Tästä vielä, että onko vastoin "sääntöjä" käyttää divejä sekä tableja samassa sivustossa?

Metabolix [24.01.2011 19:25:41]

#

On vastoin "sääntöjä" käyttää tableja sivun osien asetteluun, eikä tämä riipu mitenkään siitä, onko sivulla käytetty lisäksi divejä vai ei. Taulukon on tarkoitus esittää taulukkoon sopivaa tietoa kuten vaikkapa tässä C++-oppaassa. Siihen sen käyttö on aina ja jokaisessa tilanteessa sallittua. Lähes kaikki muu käyttö on vastoin "sääntöjä".

Myöskään divejä ei ole millään tavalla pakko käyttää asetteluun, vaan esimerkiksi linkkilista voi olla ul-elementti ja sen voi asetella paikalleen suoraan ul-elementtinä.

Miksi yrität hypätä suoraan tuollaiseen melko mutkikkaaseen asiaan kuin drop-down-valikkoon? Opettele ensin perusasiat: miten CSS:ää kirjoitetaan sivulle, millaisia ominaisuuksia on olemassa ja mitä niillä edes suunnilleen voi tehdä.

Rickken [25.01.2011 08:44:50]

#

Metabolix: Tartitsisin sitä yhdelle toiselle sivulleni. Kiitos tuosta linkistä sieltä löytyi juuri paljon kaikkea jännää ;)


Sivun alkuun

Vastaus

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

Tietoa sivustosta