Avatar billede minus Nybegynder
01. juni 2008 - 22:09 Der er 38 kommentarer og
2 løsninger

Opacity (W3 validator giver mig fejl)

Hej,

Jeg har på en div smid følgende kode på (i min css-fil).

    filter:alpha(opacity=40);
    -moz-opacity:.70;
    opacity:.70;

Det bliver bare ikke valideret inde på W3's css validator. Kan det skrives om, således at det kan valideres?

Kort sagt, så er det et stykke kode, som giver diven en synlighed på 70%. (Altså 30% gennemsigtig).

----
W3's fejl:
41      #nyhedsbox      Parse Error  opacity=70)
42     #nyhedsbox     Property -moz-opacity doesn't exist : 0.7
43     #nyhedsbox     Property opacity doesn't exist in CSS level 2.1 but exists in [css3] : 0.7

----

Takker på fårhånd :)
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 22:12 #1
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.
Avatar billede minus Nybegynder
01. juni 2008 - 22:16 #2
Desværre gør det noget :(
Har et projekt, hvor jeg skal aflevere et 100% validerbar kode. Ellers havde jeg selv ignoreret det :)
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 22:16 #3
Så må du jo lade være.
Avatar billede minus Nybegynder
01. juni 2008 - 22:20 #4
Det vil jeg helst undgå. Det er derfor jeg spørger, om der ikke er andre metoder at give en div en gennemsigtig hed på 30%?
Avatar billede jesper-moeller Nybegynder
01. juni 2008 - 22:25 #5
opacity  er ikke valid CSS(HTML) før CSS3 bliver frigivet og brugt af browsere .
prøv med et javascript istedet

feks:
http://www.quirksmode.org/js/opacity.html

Der kan googles mange løsninger
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 22:29 #6
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.
Avatar billede jesper-moeller Nybegynder
01. juni 2008 - 22:33 #7
Ja... men med javascript kan man validere siden ;-)
det kan man ikke med CSS'en
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 22:33 #8
Ja, præcis - hvad er så formålet med at kræve at CSS og HTML validerer?
Avatar billede olebole Juniormester
01. juni 2008 - 22:37 #9
<ole>

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)

/mvh
</bole>
Avatar billede jesper-moeller Nybegynder
01. juni 2008 - 22:39 #10
Er der flere og flere der går op i.... (Heldigvis)

At nogen så vælger at siden skal kunne noget som HTML ikke er beregnet til (enu) kræve så at de finder alternative løsninger som feks scripts
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 22:40 #11
Men Jesper, man skal jo også skrive "valid kode" i Javascript, selv om det ikke bare lige lader sig validere automatisk.
Avatar billede mclemens Nybegynder
01. juni 2008 - 22:41 #12
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.
Avatar billede jesper-moeller Nybegynder
01. juni 2008 - 22:41 #13
Ole >> Den var jvf minus kommentar i 22:16:56
Hvis han SKAL have det valid og VIL bruge opacity må han jo bruge lidt "snyd"
Avatar billede jesper-moeller Nybegynder
01. juni 2008 - 22:43 #14
mcclemens >> Tog bare det første google hit jeg fik på emnet ..*S*
Avatar billede mclemens Nybegynder
01. juni 2008 - 22:44 #15
if(testObj.filters!="undefined")testObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+o+")";
... hvor o er opacity til alpha
Avatar billede mclemens Nybegynder
01. juni 2008 - 22:45 #16
Enig med Ole, men er ikke
sikker på at underviseren er ...
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 22:48 #17
Er det en skoleopgave?
Avatar billede olebole Juniormester
01. juni 2008 - 22:56 #18
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)
Avatar billede minus Nybegynder
01. juni 2008 - 23:00 #19
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? :)
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 23:02 #20
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.

;)
Avatar billede erikjacobsen Ekspert
01. juni 2008 - 23:04 #21
...og hvad er det egentlig for et erhverv vi har valgt...
Avatar billede olebole Juniormester
01. juni 2008 - 23:36 #22
- jeg kender ikke din egentlige stillingsbetegnelse, men min er åbenbart 'præst'  ;D
Avatar billede olebole Juniormester
01. juni 2008 - 23:39 #23
- 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)
Avatar billede olebole Juniormester
01. juni 2008 - 23:45 #24
- og vedr. min kommentarer omkring invalide/ukendte CSS-properties:
    http://www.w3.org/TR/REC-CSS2/syndata.html#parsing-errors
Avatar billede mclemens Nybegynder
01. juni 2008 - 23:53 #25
Hmm, "undefined" skulle lige have været undefined ...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style>
body {background:#000;color:#fff;}
</style>

<script type="text/javascript">

function ael(elm,evt,f){
  if(elm.addEventListener)elm.addEventListener(evt, function(){eval(f)}, false);
  else if(elm.attachEvent)elm.attachEvent("on"+evt, function(){eval(f)});
}

ael(window,"load","wload();");

function wload(){
  elm=document.getElementById("opacityme");o=70;
  if(elm.filters!=undefined)elm.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+o+")";
  else{elm.style.opacity=o/100;}
}

</script>

</head><body>

<div id="opacityme" style="position:absolute;background:#000000;"><div>
<img src="http://www.eksperten.dk/img/elogo.png" alt="bandwidth theft af ekspertens logo :P">aaa
</div></div>

</body></html>
Avatar billede minus Nybegynder
02. juni 2008 - 00:06 #26
mclemens --> Perfekt. Jeg siger mange tak :)
Smider du et svar?
Avatar billede mclemens Nybegynder
02. juni 2008 - 00:16 #27
Jeg synes også at Jesper bør kaste et ... (01/06-2008 22:25:34)
Avatar billede olebole Juniormester
02. juni 2008 - 00:20 #28
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);
}

- burde være alt nok
Avatar billede olebole Juniormester
02. juni 2008 - 00:21 #29
åhhh jo, den bruges jo  =)


function ael(elm,evt,f){
  if(elm.addEventListener)elm.addEventListener(evt, f, false);
  else if(elm.attachEvent)elm.attachEvent("on"+evt, f);
}
ael(window,"load","wload");

- er nok og langt bedre performende  ;o)
Avatar billede olebole Juniormester
02. juni 2008 - 00:25 #30
- men det er stadig vigtigt at huske, at JavaScript koden ikke er en tøddel mere valid eller bedre end CSS koden
Avatar billede olebole Juniormester
02. juni 2008 - 00:26 #31
hov ... der slap et par gåseøjne for meget gennem min copy/paste:

ael(window,"load",wload);
Avatar billede mclemens Nybegynder
02. juni 2008 - 00:41 #32
<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)
Avatar billede olebole Juniormester
02. juni 2008 - 01:19 #33
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
Avatar billede olebole Juniormester
02. juni 2008 - 01:19 #34
;o)
Avatar billede mclemens Nybegynder
02. juni 2008 - 09:51 #35
02/06-2008 01:19:07 - Virker perfekt, jeg takker.
Avatar billede mclemens Nybegynder
02. juni 2008 - 14:08 #36
- Eller rettere virkede perfekt på
nær et sted ... der skal jeg så bruge
http://www.eksperten.dk/spm/832817#rid7123076
hvis jeg skal undgå at bruge en eval.
Avatar billede jesper-moeller Nybegynder
02. juni 2008 - 21:30 #37
>> Jeg synes også at Jesper bør kaste et ... (01/06-2008 22:25:34)

Naaa .. kom bare op med den slemme ide at "snyde" met et script ... er vist mclemens og "præsten" der skal krediteres for arbejdet :-)
Avatar billede minus Nybegynder
02. juni 2008 - 23:34 #38
Tror jeg holder mig lidt udenom jeres diskussion. :) Men tak til alle for jeres hjælp. Altid godt med læsestof :)
Avatar billede olebole Juniormester
02. juni 2008 - 23:52 #39
Tak for points  ;o)
Avatar billede mclemens Nybegynder
03. juni 2008 - 00:03 #40
Tak for point også ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester