Hei ..
Eli ongelmat liittyvät CSS:sään .. olen nyt säädellyt kaiken näköistä ja ruvennut turhautumaankin kun ei meinaa millään saada sivuja näyttämään samalta kaikilla selaimilla.
kyseiset sivut ovat osoitteessa http://www.stageradio.com
tällä hetkellä IE näyttää sivun ulkoasun muuten oikein, mutta osa palkeista ei on läpikuultavia vaikka pitäisi olla ja navigointi palkki ei näytä siltä miltä pitäisi.
firefox näyttää muuten oikein mutta uutiset eivät sijoitu oiken. Saan divit kyllä pistettyä oikeeseen paikkaansa mutta silloin tekstit eivät korjaannu, vaan aloittavat elämänsä liian oikealta.
Molemmissa on myös footerissa oleva prätkä vähän poskellaan .. sen olisi tarkoitus olla sivun alalaidassa mutta niin että jos sisältöä on enemmän niin se ei jää alle. Tiedän. Kyseisellä koodilla sen ei edes kaiketi pitäisi toimia niin.
Kaikki apu sivujen kuntoonsaamisen eteen on suuresti avuksi. Olen ajautunut pisteeseen missä oma ajatukseni ei enää ratkaisuja jaksa löytää.
Pistän sivujen koodin vielä tähän alle ja css:än
Niin .. ja tämä saattaa olla sitten aika sekavaa..
toivottavasti saatte jotain selvää..
CSS:
* { margin:0; padding:0; } html body { height: 100%; } a { color: black; text-decoration: none; } a:hover { color: black; text-decoration: underline; } body { margin: 0px; padding: 0px; background-image:url(images/background.jpg); background-repeat:repeat; background-color:#333333; } #all { min-width: 100%; width: 100%; min-height: 100%; position: absolute; height: 100%; } #content { width: 100%; } #header { background-image: url(images/header_bg.jpg); background-repeat: repeat-x; text-align: center; margin-top: 0; margin-right: 0; margin-left: 0; width: 100%; } #leftcol { float: left; width: 18%; height: 50%; text-align: left; margin-right: 3px; } #rightcol { float: right; width: 18%; height: 50%; margin-left: 5px; } #sisalto { width: 63%; height: auto; text-align: left; } #footer { margin-top: 130px; float: right; position: relative; bottom: 0px; height: 240px; width: 100%; text-align: center; } #picture { float: left; } .nowplaying{ position: absolute; left: 18%; width: 70%; height: 120px; text-align: left; background-image: url(images/np_bg2.jpg); background-repeat: no-repeat; } div.nowplaying img{ margin:5px; border:2px solid #333333; } .news { position: relative; top: 120px; width:auto; height:auto; background-color: #CCCCCC; margin-bottom: 10px; filter:alpha(opacity=80); opacity:0.8; border: 2px solid #333333; } .toivokap { width:auto; height:auto; background-color: #CCCCCC; margin-bottom: 10px; filter:alpha(opacity=80); opacity:0.8; border: 2px solid #333333; } /*tekstit*/ p{ font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #222222; padding-left: 20px; padding-right: 20px; padding-bottom: 5px; } h2{ color:#CCCCCC; font-family:Impact, Arial, Verdana, Helvetica; font-size:16px; letter-spacing:0.1em; font-weight:lighter; background-repeat: no-repeat; margin-top: 10px; padding-left: 20px; } h3{ color:#D61112; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; padding-top: 5px; padding-left: 20px; } h4{ font-family:Arial, Helvetica, sans-serif; font-size: 12px; } #side-a{ float: right; width: auto; background-color: #333333; margin-bottom:5px; margin-right:5px; padding:5px; border: 2px solid #CCCCCC; filter:alpha(opacity=80); opacity:0.8; margin-top: 10px; } span.highlight { background-color:#333333 } /*** Nav bar styles ***/ ul a { color:#CCCCCC;} ul.nav, .nav ul{ /*Remove all spacings from the list items*/ margin: 0; padding: 0; cursor: default; list-style-type: none; font-family:Impact, Arial, Verdana, Helvetica; font-size:16px; color:#CCCCCC; } ul.nav{ width: auto; } ul.nav>li{ margin: 0; padding: 0; } /*ul.nav li>ul{ Make the sub list items invisible display: block; font-size:10px; font-family:Arial, Helvetica, sans-serif; } */ /* ul.nav li:hover>ul{ /*When hovered, make them appear display : block; } */ .nav ul li a{ /*Make the hyperlinks as a block element, sort of a hover effect*/ display: block; padding: 2px 10px; color:#CCCCCC; } /*** Menu styles (customizable) ***/ ul.nav, .nav ul, .nav ul li a{ background-color: #333; color: #CCC; } ul.nav li:hover, .nav ul li a:hover{ background-color: #990000; color: #CCC; } ul.nav li:active, .nav ul li a:active{ background-color: #990000; color: #CCC; } ul{ } .nav a{ text-decoration: none; color:#CCCCCC; } /************** toivo kappale määritteet **************/ td#toivo { width: 33%; vertical-align: text-top; } /***************** Now Playing palkki *****************/ /* td palkki missä artist album ym. tekstit */ td.ni { text-align: right; background-color: #333333; padding: 0 5 3 0; filter:alpha(opacity=80); opacity:0.8; } /* td palkki missä harmaat divit */ td.si { width: 130px; } /* harmaat palkit */ div.np { float: left; white-space : nowrap; width: 100%; height:auto; text-align: left; background-color: #CCCCCC; filter:alpha(opacity=80); opacity:0.8; border: 2px solid #333333; padding: 0 20 0 20; } #artist { width: 100%: } #album { width: 100%: } #title { width: 100%: } #countDownText { width: 100%: }
HTML / PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>StageRadio.com</title> <link href="style.css" rel="stylesheet" type="text/css" /> <!--[if IE]> <style>#sisalto {width: 100%;height: auto;text-align: left;} .news{left:0px;}</style> <![endif]--> <script language="JavaScript"> var http = getXMLHTTPRequest(); var counter; function getXMLHTTPRequest() { try { req = new XMLHttpRequest(); } catch(err1) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (err2) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err3) { req = false; } } } return req; } function getServerText() { var myurl = 'http://www.stageradio.com/aj_TimeRemain.php'; // enter the full path to the aj_TimeRemain.php path myRand = parseInt(Math.random()*999999999999999); var modurl = myurl+"?rand="+myRand; http.open("GET", modurl, true); http.onreadystatechange = useHttpResponse; http.send(null); } function useHttpResponse() { if (http.readyState == 4) { if(http.status == 200) { // parse data returned from aj_TimeRemain.php var aj_results = http.responseText.split("|"); var aj_duration = aj_results[0]; var aj_secsremaining = aj_results[1]; var aj_title = aj_results[2]; var aj_artist = aj_results[3]; var aj_picture = aj_results[4]; var aj_album = aj_results[5]; // update title and artist divs document.getElementById('title').innerHTML = aj_title; document.getElementById('album').innerHTML = aj_album; document.getElementById('artist').innerHTML = aj_artist; document.getElementById('picture').innerHTML = "<img src=/albumart/" + aj_results[4] +" width='100' height='100'>" //set seconds remaining to the countdown car - adding '-0' to convert to number countDownInterval = aj_secsremaining - 0; countDownTime = countDownInterval + 1; countDown() } } else { //document. getElementById('actual').innerHTML = ""; } } function countDown() { countDownTime--; if (countDownTime == 0) { countDownTime = countDownInterval; getServerText() } else if (countDownTime < 0) countDownTime = 30; if (document.all) document.all.countDownText.innerText = secsToMins(countDownTime); else if (document.getElementById) document.getElementById("countDownText").innerHTML = secsToMins(countDownTime); stopCountDown(); counter = setTimeout("countDown()", 1000); } function secsToMins(theValue) { var theMin = Math.floor(theValue / 60); var theSec = (theValue % 60); if (theSec < 10) theSec = "0" + theSec; return(theMin + ":" + theSec); } function stopCountDown() { clearTimeout(counter) } </script> <script language="JavaScript1.2"><? require("songinfo.js"); ?></script> <script type="text/javascript" language="javascript"> function chat() { OpenWindow=window.open("forum/chat/index.php","chat","height=500","width=700","toolbar=no","scrollbars=no","menubar=no"); } </SCRIPT> <script type="text/javascript" language="javascript"> function keskustelupalsta() { OpenWindow=window.open("forum/index.php","chat"); } </SCRIPT> <script type="text/javascript" language="javascript"> <? //lataa soittimen ?> <!-- function player1(stationID, relayID) { var path = "http://www.audiorealm.com"; listenwin = window.open(path+"/listen.html?stationID="+stationID , "_AR_listen", ""); } function player(stationID, relayID) { player_popup(stationID,0); } function player_popup(stationID,publisherID) { popup_center('http://player.spacialnet.com/players/player.html?stationID='+stationID+'&publisherID='+publisherID,"_player",706,526,''); return false; } function popup_center(mylink, windowname, w, h) { if((w<=0)||(w==null)) w = 706; if((h<=0)||(h==null)) h = 526; var x = (screen.availWidth / 2) - (w / 2); var y = (screen.availHeight / 2) - (h / 2); if (!window.focus)return true; var href; if (typeof(mylink) == 'string') href=mylink; else href=mylink.href; winref = window.open(href, windowname, 'width='+w+',height='+h+',location=no,status=no,menubar=no,scrollbars=no,left='+x+',top='+y); return winref; } --> </script> <? require("req/request.java.php"); ?> <script language="JavaScript1.2"> function PictureFail(picname) { if (document.images) { document.images[picname].width = 1; document.images[picname].height = 1; } } </script> <script type="text/javascript" src="ajax.js"></script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("prototype", "1.6"); google.load("scriptaculous", "1.8.1"); </script> <script type="text/javascript"> <!-- function getWindowHeight() { var windowHeight = 0; if (typeof(window.innerHeight) == 'number') { windowHeight = window.innerHeight; } else { if (document.documentElement && document.documentElement.clientHeight) { windowHeight = document.documentElement.clientHeight; } else { if (document.body && document.body.clientHeight) { windowHeight = document.body.clientHeight; } } } return windowHeight; } function setFooter() { if (document.getElementById) { var windowHeight = getWindowHeight(); if (windowHeight > 0) { var contentHeight = document.getElementById('content').offsetHeight; var footerElement = document.getElementById('footer'); var footerHeight = footerElement.offsetHeight; if (windowHeight - (contentHeight + footerHeight) >= 0) { footerElement.style.top = (windowHeight - (contentHeight + footerHeight)) + 'px'; } else { footerElement.style.top = '0px'; } } } } window.onload = function() { setFooter(); } window.onresize = function() { setFooter(); } //--> </script> </head> <body onload="getArtists(); getServerText();"> <div id="content"> <div id="header"> <img src="images/header.jpg" alt="StageRadio.com" width="1000" height="146" /> </div> <?php include('nav.php');?>
nav.php
<div id="leftcol"> <div id="side-a"> <ul class="nav"> <li><a href="index.php">Etusivu</a></li> <li>Kuuntele <ul> <li><a href='javascript:player(116464,-1)'>Soittimella</a></li> <li><a href="http://www.stream101.com/login/castcontrol/playlist.php?id=417">Winamp</a></li> <li><a href="http://www.stream101.com/login/castcontrol/playlist.php?id=417&type=asx">Windows Media Player</a></li> <li><a href="http://www.stream101.com/login/castcontrol/playlist.php?id=417&type=ram">Real Player</a></li> </ul></li> <li><a href='javascript:keskustelupalsta()'>Keskustelupalsta</a></li> <li><a href='javascript:chat()'>Chat</a></li> <li><a href="toivokap.php">Toivo Kappale</a></li> </ul> </div></div>
news.php
<?php include ('header.php'); // oikea puoli sivusta eli paikka jossa bannerit on ?> <div id="rightcol"> <img src="images/banneri.gif" alt="Mainos" /> </div> <?php // Content laatikko! Tähän tulee se vaihtuva informaatio. include("playinfo.php"); //kuinka monta uutista tulostetaan? // Make a MySQL Connection mysql_connect("***********", "***********", "***********") or die(mysql_error()); mysql_select_db("stagerad_news") or die(mysql_error()); // Retrieve all the data from the "example" table $result = mysql_query("SELECT * FROM news ORDER BY date DESC LIMIT 4") or die(mysql_error()); ?> <h2><span class="highlight">News!</span></h2> <?php while($row = mysql_fetch_array($result)){ echo "<div class='news'><h3>".$row['date']." - ".$row['headline']."</h3>"; echo "<p> ".$row['text']."</p></div>"; } ?> </div> <?php include ('footer.php');?>
playinfo.php
<div id="sisalto"> <div class="nowplaying"> <table> <tr> <td width="1%"><img src="images/nowpalying.gif" alt="now playing" /></td> <td width="1%"> <div id="picture"></div> </td> <td> <table border="0"> <tr><td class="ni"><h3>Artist:</h3></td><td class="si"><div class="np"><div id="artist"></div></div></td></tr> <tr><td class="ni"><h3>Album:</h3></td><td class="si"><div class="np"><div id="album"></div></div></td></tr> <tr><td class="ni"><h3>Song:</h3></td><td class="si"><div class="np"><div id="title"></div></div></td></tr> <tr><td class="ni"><h3>Remain:</h3></td><td class="si"><div class="np"><div id="countDownText"></div></div></td></tr> </table> </td> </tr> </table> </div>
footer.php
</div> <div id="footer"></div> </body> </html>
Toivottavasti ei ole liian sekava..
voi olla että selkeämmin näkee jos katselee suoraan sivujen lähdekoodia .. mutta mutta..
kiitokset etukäteen.
okei .. taisi tulla liian sekavasti.. :)
Jostain syystä en jaksanut kaikkea selailla läpi.. :P Mutta ehdollisilla kommenteilla saat yksilölliset sivut ie:lle ja firefoxille. Joten tee default.css yleisesti firefoxille ja muille "toimiville" selaimille ja sitten muokkaat ie:lle omat asetukset toiseen .css tiedostoon.
Ja kun nopeasti katselin niin kyllä ie:kin näyttäisi näyttävän kaiken tarpeellisen läpinäkyvänä.
Suosittelen vahvasti tähän väliin Firefoxin Firebug-laajennosta. Ei tarvitse säätää noin vaikeasti reunojen löytämisen kanssa :)
niin .. sain tosiaan laatikot paikoilleen .. mutta footer div ei edelleenkään sijoitu niin kuin sen olisi tarkoitus. . jos siältöä tulee liikaa niin se jää sisällön päälle hengaamaan .. mitä ei tietysti ole toivottavaa.. en tiedä olisiko sitten käytettävä tableja vai onnistuuko jotenkin diveillä ...tosiaan .. navipalkki on varmaankin se isoin murheen aihe .. ainakin minun IE näyttää sen ihan päin ***settä.
Mites footer olisi tarkoitus laittaa? Ja tuo läpinäkyvyys voisi onnistua esimerkiksi läpinäkyvillä .png kuvilla.
Footer olisi tarkotus olla niin että kun sivulla on vähän sisältöä niin se olisi sivun alareunassa (siis se moottoripyörä) ja jos sisältöä tulee enemmän niin se lähtee sitten liikkumaan alas sisällön mukaan .. niin ettei se siis jää sisällön alle hengailemaan.
.png:t oli käytössä jossain vaiheessa mutta vievät tilaa sen verran enemmän että ajattelin säästää siinä. Sen sijaan sisältö laatikot pitäisi olla läpinäkyviä (niinkuin firefox näyttää) mutta IE ei jostain syystä näytä laatikoita läpinäkyvinä.
vai meinasitko että tekisi pikkuruisen läpikuultavat .png kuvan ja pisäisin sen taustakuvaksi? .. ei sinänsä hassumpi idea.. ja silloin tekstikään ei olisi läpikuultava .. täytyypä kokeilla käytännössä..
eniten minua huolettaa se footer ja navi palkki joka IE:llä ei ole oikein elementissään.
Juuri sellaista pientä läpinäkyvää .png kuvaa meinasin. Tietysti vaikeaa tehdä, jos ei ohjelmia ole mutta oletan, että Gimpilläkin sellaisen voi tarvittaessa tehdä.
Ja kokeiles muuttaa divien position arvoja tai poistaa niitä kokonaan. Ne voivat nimittäin siirtää tuon footerin noin.
siinä läpinäkyvässä png kuvassa on tietysti se ongelma että vanhemmilla (ainakin IE 6 muistaakseni) näyttää ne väärin .. eli se ei osaa näyttää niitä läpinäkyvinä .. en sitten tiedä kuinka moni niitä vielä käyttää .. ja voihan siihen tehdä poikkeus säännön ..
täytyy joku ilta taas pistää ajatukset kasaan ja ruveta hommiin.
missä voi muuten testata sivujen toimivuutta muilla selaimilla ja eri versioilla vai pitääkös niitä sitten latailla kone täyteen...
stageradio kirjoitti:
missä voi muuten testata sivujen toimivuutta muilla selaimilla ja eri versioilla vai pitääkös niitä sitten latailla kone täyteen...
Siihen käy vaikkapa BrowserShots.
Googleta IETester, jos haluat nopeasti testata miltä sivut näyttävät 5.5-8 versioilla. Muutenhan tuo Browsershots on hyvä sivusto testauksiin.
Niin IE 6 tarvitsee javascriptiä mukaan, jotta läpinäkyvät kuvat toimisivat. Itse olen mieltynyt DD_belatedPNG scriptiin, joka on erittäin yksinkertainen käyttää.
Helpointa on ladata koneelle tarjontaa.
Värkkään tässä nyt iltapäivän kuluksi siistittyä versiota tuosta ulkoasusta, jossa korjaan samalla noita ongelmiasi. Voin palautteena antaa, että tällä hetkellä omassa yrittämisessäsi on se ongelma, että yrität tehdä tietyllä tapaa vaikeita asioita ilman aiempaa kokemusta. Saisit parempaa jälkeä aikaiseksi jos loisit ensin testisivun, jolla kokeilisit saada aikaiseksi haluamasi teknisen efektin toimivana suht riisutulla ulkoasulla. Yrittämällä säätää monta erilaista temppua yhteen "valmiiseen" ulkoasuun saat aikaiseksi vain runsaasti ajantuhlausta. Yrität saada pelittämään yhtä aikaa monta itsellesi (vielä tässä vaiheessa) vaikeaa asiaa. Vertauskuvallisesti voisi kai sanoa, että yrität kasata palapeliä kokeilemalla väenvängällä jokaista palaa ensin yhteen, sen sijaan että tutkisit mitä palat pitävät sisällään ja järjestelisit täsmäävimpiä omiksi alueikseen.
Muoks!
IE6:n PNG-läpinäkyvyyksien korjaaminen ei vaadi JavaScriptiä. Nämä "korjaukset" voivat kuitenkin aiheuttaa muita ongelmia. Esimerkiksi linkit voivat muuttua sellaisiksi, ettei niitä voi läpinäkyvällä alueella klikata. Tämän takia testaaminen oikealla selaimella on ensiarvoisen tärkeää. BrowserShots ei kerro jos jotain aluetta ei voikaan klikata!
Muoks #2!
http://kontu.selfip.info/html.css.js/stageradio.
Tuossa nyt on pahimmat ongelmat korjattu. Tein koodille reilulla kädellä yksinkertaistamista, poistin tyhjiä/tarpeettomia määrityksiä ja vähensin elementtien määrää. Ihan kaikkea en jaksanut laittaa näyttämään siltä miltä pitää, pääasia on että ulkoasun päärakenne on nyt suht kestävä. IE6 ei näytä täsmälleen samalta, mutta ei sen tarvitsekaan: veikkaan ettei ainutkaan IE6:n käyttäjä huomaa mitään vikaa sivuilla, vaikka se näyttääkin selaimia verratessa erilaiselta.
En osaa sanoa muuta kuin suur kiitos :D.
On se hienoa että jotkut jaksaa auttaa eksyneitä.
Täytyykin tänään (jos aika vain riittää) ryhtyä korjailemaan koodia tuon tekemäsi muutoksen pohjalta. Täytyy myöntää, että on tuo muutoksesi/korjauksesi aika paljon yksinkertaisemman oloinen ja kaiken kukkuraksi toimivakin. Ja olet varmasti oikeassa IE6:den suhteen. Yhdessä vaiheessä vaan järkytyin aika pahasti, kun satuin katsomaan toisella koneella sivujani silloin kun niissä vielä oli kaikki kuvat tehty läpinäkyvillä .png kuvilla. Oli nimittäin aika hirmuista katseltavaa ja sydän taisi jättää muutamat iskun lyömättä. Sen jälkeen se alamäki alkoikin, kun piti lähteä muuttamaan koodia IE:lle ja firefoxille toimivaksi. Muutama liian väsynyt ilta niin soppa olikin valmis.
ainiin ja
Merri kirjoitti:
omassa yrittämisessäsi on se ongelma, että yrität tehdä tietyllä tapaa vaikeita asioita ilman aiempaa kokemusta.
syyllinen.
Ehkä tästä jotain opimme taas ;)
PS. (on ollut mielessä mennä jollekkin kurssille. Pikkulinnut on laulanu, että olio ohjelmointiin kannattaa tutustua. )
Edit. Eipa tässä muutakaan ollut niin rupesin työstämään .. Ihmettelen vain minne on kadonnut nowplaying divin taustakuva .. siis se lieska. kun ymmärtääkseni sen kyllä pitäisi näkyä oikein, vaan ei näy. :/
Edit. Ei sittenkään mitään..
Muokkasin tämän:
.nowplaying { background-image: url(images/np_bg2.jpg) no-repeat; height: 120px; }
näin:
.nowplaying { background-image: url(images/np_bg2.jpg); background-repeat: no-repeat; height: 120px; }
niin alkoi toimia..
Sellainen ongelma vain enään on että jostain syystä muutoksen jälkeen kaikki uutiset ym. mitä tietokannasta haen, ovat muuttuneet ääkkösten kohdalta kysymysmerkki laatikoiksi. Missä vika voisi olla?
Ota UTF-8 pois ja laita tilalle iso-8859-1, käytin omaa perussivupohjaa ja se on aina UTF-8.
Mitä tuohon taustakuvan toimimattomuuteen tulee, niin unohdin siihen tuon -image
-päätteen.
aah .. hienoa taas toimii..
miksihän IE ei osaa venyttää nowplaying taulun soluja sen mukaan kuinka paljon siinä on sisältöä .. tietysti se muuten varmaan toimisikin, mutta se on ikäänkuin ajax pohjainen ratkaisu. (että saa kappaleen jäljellä olo ajan päivitettyä ilman että sivu ladataan uudelleen) joten voisiko johtua siitä?
kokeilin pistää td:n width: auto; mutta ei auttanut.
Olet määrittänyt td.si:lle leveyden 150 pikseliä.
olisiko jäänyt sinne kummittelemaan silloinkin kun kokeilin autoa.. Täytyy tutkiz tarkemmin kun pääsee taas tietokoneen ääreen
Kiitäs kaikkia varsinkin Merriä avusta .. olette olleet suureksi avuksi .. sain yhden päivän aikana korjattua lähes tulkoon kaiken mitä korjattavana oli.
* Kumarrus *
Aihe on jo aika vanha, joten et voi enää vastata siihen.