Gør det noget? Det betyder bare, at du bruger en ting, der ikke er standard, men som virker i nogle browsere - sålænge det blot ikke er ubrugeligt i browsere, der ikke forstår det.
Hvis du gør det med javascript, opnår du jo det samme: det virker i de browsere det virker i, og ellers ikke. Sjovt projekt, hvis det så er acceptabelt.
Nu ligger det jo eksplicit i CSS-standarden, at en browser, der ikke forstår en bestemt poperty, blot skal springe den pågældende property over. Derfor betyder det ikke et hak, om den pågældende property er valid eller ej =)
Men hvad er i øvrigt årsagen til, du validerer dit dokument? Gør du det for at skrive god kode, eller gør du det for at please et stykke tilfældig software på WWW? Kommentaren (01/06-2008 22:33:17) virker lidt 'foruroligende' i den henseende ;o)
opacity vil ikke give fejl hvis du vælger at validere op imod css 3 ved validerings valg under w3's validator, men "fejlen" vil jo stadig være det hos browsere der er ældre og ikke understøtter opacity ...
Anbefaler javascript som Jesper nævner, men vil nok bruge en:
if(testObj.filters!="undefined")
foran testObj.style.filter ... ellers melder FF fejlkonsol om fejl ved test af siden.
Som Erik anfører, er der tale om præcis ligeså invalid kode, når der bruges JS.
Skoleeksemplet kan opleves, når somme kodere forsøger at sætte target attributter via JS, når de skriver til en strict flavour, senere end HTML 4.01 Strict. Det er meningsløst vrøvl, som skyldes manglende forståelse af kode og standardisering af samme ;o)
Ja, det er eksamensopgaven, så det er et "ja" til skoleopgave. Synes selv det er lidt irriterende at vi skal have en valid kode, selv om det virker fint i browsere. Men det er vel til at vi kan lære det.
mclemens--> Hvordan sætter jeg det stykke kode du har givet mig til en div? :)
Ok, skoleopgave. Så er det op til dig selv at vælge blandt de ca. 3-4 løsninger du har fået.
Du skal vælge om du vil fortælle læreren hvad han eller hun vil vide, eller om du tror det giver klejner at fortælle lidt om hvor man navigerer i de vilde bølger i den verden, der består at ikke-korrekte browsere, for mange standarder, og en enkelt olebole, der står på prædikestolen, og nedkaster forbandelser over de (os) dødelige.
Det valg kan jeg så desværre (heldigvis?) ikke gøre for dig.
- og selvfølgelig skal du ikke vælge en invalid løsning, men henvise til dette spørgsmål, hvis din lærer brokker sig. Rigtig mange undervisere kunne i dén grad trænge til at få deres 90'er kodestil opdateret - og lære, at det ikke er på html.dk eller w3schools.com, de kan få opdateret denne viden ;o)
Husk type attributten på style tagget. Hvad bruges funktionen 'ael' til? Det ser heldigvis ikke ud til, den bliver brugt - for eval funktionen er nok den absolut dårligst performende i JavaScript ... og helt overflødig i forbindelse med at sætte event handlers ;o)
function ael(elm,evt,f){ if(elm.addEventListener)elm.addEventListener(evt, f, false); else if(elm.attachEvent)elm.attachEvent("on"+evt, f); }
<style> var bare skrevet hurtigt, men bør være <style type="text/css">
ael er kopieret fra min egen js fil. ... Grunden til at jeg endte op med en eval er at jeg i nogle tilfælde har behov for at sende variabler afsted til funktionen og ikke altid lige føler at et tog med variabel kasser er bedre end at eval'e strengen. (der er en enkelt ajax funktion hvor inputs bliver dynamisk tildelt kald til funktionen ved change og keydown. Er der en måde at kalde flere funktioner eller definere variabler uden brug af en eval Ole ?
Men ved "minus" behov er der ikke behov for en eval, der sluger krafter. - Husk også at kaste et svar, ik Ole ... :o)
Man kan flytte den anonyme funktion: ael(window,"load",function(){alert("HiHo")});
- men generelt skal man passe yderst meget på med DOM og event-handlers (ikke mindst i Ajax). Læs mine kommentarer i tråden her: http://www.eksperten.dk/spm/832817
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.