11. marts 2004 - 21:14Der er
19 kommentarer og 2 løsninger
css hack på img
jeg har <img src="billede.gif" id="hejsa">
Jeg kan få fat i det med css ved at skrive *#hejsa
Er der noget jeg kan skrive i CSS for at vise et andet billede end billede.gif på <img>'ens plads. Jeg kan KUN skrive css, der kan ikke ændres i html'en eller indsættes JavaScript el. lign. KUN CSS :)
Jeg kalder det et 'hack' fordi det naturligvis aldrig har været meningen at CSS skulle kunne det.
Har du et tomt tag i nærheden som du ikke bruger til noget, for så er det muligt... Godt nok nogle rimelig avancerede selectors der skal til, men det kan lade sig gøre...
Er ved at skrive en artikel om avancerede selectors i CSS!! :)
>>roenving Det virker selvfølgelig, for det siger standarden!! :) At Internet Explorer ikke overholder standarden kan da umuligt være programmørens problem!
>>nielsbrinch Hvis vi antager at du har følgende HTML:
<img src="billede.gif" /><div></div>
Så kan du i CSS gøre følgende:
img[src="billede.gif"] + div { /* hov, der er intet ID!! ;) */ /* Synes du det er for besværligt kan du skrive "#hejsa + div" i stedet */ position: relative; top: -200px; left: -200px; background-image: url("billede2.gif"); background-repeat: norepeat; width: 200px; height: 200px; }
>>roenving Måske, ja... Snart må man bare begynde at indse at kundernes værktøjer ikke har det der skal til for at gøre brug af produktet, ikke fordi produktet er nyt, men simpelthen fordi deres værktøj er håbløst forældet!!
-- og jeg måtte bruge min lommekniv forrige gang, jeg var i billard-klubben, fordi jeg ikke ville rive mig på den stift, som holdt en liste i baren på plads !-)
-- og som jeg skrev i et svar tidligere i dag (i går ?-), så er der en hel del af css2-standarden, som man ikke skal forvente implementeret, før det bliver et krav, at det er en forudsætning for at kalde sig css3-kompatibel !-)
>>roenving Hvem stiller kravene til at CSS2-standarden skal være implementeret, og hvornår stiller de de krav?? Microsoft har, som du sikkert ved, meldt ud at Internet Explorer ikke vil komme i en ny version før deres Longhorn-projekt kommer på gaden, og her er browseren knyttet til styresystemet... Med andre ord: Ingen ny Internet Explorer til dit
Det efterlader os to muligheder for at style til nettet: 1. Vent til år 2006 og få folk til at bruge penge på Microsoft's OS. 2. Begynd at kode efter standarderne, så folk får øjnene op for problemet!
P.t. sidder jeg selv og roder med nogle CSS 3 selectors som virker forbløffende i Mozilla!! ;)
-- og så kan vi forhåbentlig begynde at glæde os over, at den nærværende taktik fra M$ ikke ser ud til at du, selvom en af mine medstuderende for en uge siden sagde, at han var glad for, at en af browserne havde vundet browser-krigen ...
-- Pt. er det vel sådan, at vi, der tager flere browsere alvorligt, er et ekspanderende mindretal, og håbet er jo lysegrønt, så ...
-- og jeg glemte lige at skrive, at der ligger nogle krav til minimums-understøttelse, hvis man skal kalde sin browser for css2-kompatibel, så den fortsættes forhåbentlig i forhold til css3, på trods af, at M$ er den største spiller i w3c !-)
Jeg holder stadig fast i at du skal have et ekstra tag liggende et eller andet sted... Hvad for et, og hvor det ligger kan for så vidt være lige gyldigt... Arh, okaya... Det skal være et tag i body'en!! ;)
#foobar { position: relative; top: -200px; /* du må selv finde ud af hvor store værdierne skal være */ left: 0px; display: block; width: 200px; height: 200px; background-image: url("billede2.gif"); background-repeat: no-repeat; z-index: 300; }
"At Internet Explorer ikke overholder standarden kan da umuligt være programmørens problem!"
Som regel er det heldivis heller ikke noget problem, hvis programmørerne ikke har mere fælles ansvarsfølelse overfor firmaet, de arbejder for. Som oftest programmerer de jo - og man har ansat frontend-kodere til at kode HTML'en, hviket jo ikke har meget med programmering at gøre :)
Og tilbage til spørgeren: Nej, det du spørger om, kan formodentlig ikke lade sig gøre. Som jeg læser dit spørgsmål, så ønsker du at skifte billedet, _efter_ siden er loaded - og til det skal du benytte JavaScript. Det kan ikke gøres med CSS alene. /mvh </bole>
>>ole Okay, så style'rne, eller hvad du nu ønsker at kalde dem!! :)
Faktum er at Internet Explorer ikke overholder de standarder som var gældende 2 år før den sidste version udkom! Om det er firmaets ansattes ansvarsfølelse der er noget galt med ved jeg ikke, men der er i hvert fald noget galt med selve firmaets ansvarsfølelse overfor brugerne!!
"Microsoft operating systems are bad, and their morals are even worse..." - Linus Torvalds
Du misforstår mig :) Der er noget rystende galt med din ansvarsfølelse overfor det firmas kunder, du arbejder for ... og din holdning til nettets bruger som helhed.
Du bør naturligvis kode til den virkelighed, der omgiver dig - og ikke til en eller anden drømmeverden, du af den ene eller anden grund ønsker dig. Gør du noget andet, pisser du på de, der betaler dig - og alle deres brugere. Så er jeg i øvrigt ligeglad med, hvad Linus Thorvald mener om MS' moral og produkter. I mine øjne er det dig, der gør dig til fortaler for en utrolig arrogant og ynkværdig holdning :) /mvh
Måske har du ret... Dog mener jeg stadig man skal kode efter de rigtige standarder, ikke de facto standarder!
Der sidder stadig nogle folk som f.eks. ikke kan gå på deres netbank, fordi banken har fulgt en de facto standard (Microsoft's).
Måske er det en drømmeverden, og en "ynkværdig holdning" men Mozilla er stadig på vej frem, og Internet Explorer på vej tilbage... Browser-krigen er så småt begyndt at vågne igen, og Microsoft har allerede meldt ud at de ikke vil deltage! Jeg er ikke paranoid, jeg er realistisk på et fremsynet perspektiv! Det største problem er at jeg kun er en mand. Derfor prøver jeg også desperat at få budskabet ud!! Hvis vi, som du siger, koder til den virkelighed der omgiver os, så ender vi med en falsk virkelighed!!
Du siger også at min holdning til nettets brugere er på afveje. Jeg lavede ikke Internet Explorer!! Jeg er ikke bagmanden bag et 3 (snart 4) år gammelt produkt som ikke bliver opdateret fordi bagmændene ikke gider, til trods for at der er gjort opmærksom på adskillige fejl og huller! Hvem pisser på hvem?? Det store internationalt anerkendte firma med et milliard overskud år efter år, eller brugeren på nettet som rent faktisk prøver at gøre en forskel og vende folks holdning til benytte et bedre produkt!? Som jeg sagde tidligere, "Slår du stadig søm i med en sten!? ;)"
Tag også gerne min kommentar med et let smil!
"Det virker selvfølgelig, for det siger standarden!! :) At Internet Explorer ikke overholder standarden kan da umuligt være programmørens problem!"
Ved da godt at det ikke er sikkert det virker, selvom standarden siger det, men læg mærke til den søde lille smiley efter første linie!! ;) Den efterfølgende var egentlig ment som en hyggelig efter-kommentar, hvor der så måske har været glemt den berømte smiley!
Noget helt andet er at når jeg selv udvikler sites til mit firma, så bliver de selvfølgelig også testet i IE!! ;)
Ja, naturligvis bliver professionelle løsninger testet i IE ... ellers ville dit firma være ude af branchen, inden du kunne nå at sige: "Hvad var det?" :)
Du kan selvfølgelig godt køre bil 'med bind for øjnene' hele livet - udfra holdningen: "Vi har en færdselslov ... og den bør de andre jo overholde". Så kan vi andre skrive på din gravsten: "... men han havde ret!".
Jeg er helt enig i, at MS burde overholde den standard, de selv er en meget vigtig deltager i udformningen af - men af hensyn til og respekt for Fru Petersen, bør du indtil da skrive, så hendes browser kan læse dine sider. Så må du i øvrigt vise dig som den mand, du påstår, du er og kæmpe din ideologiske kamp på en slagmark, der ikke ligger på ryggen af Fru Petersen. Hun skal ikke undgælde for, du gerne vil have dit budskab ud.
Samtlige el-stiks fabrikanter kunne jo også skide højt og flot på, at EU ikke har kunne blive enige om en alm. 230V net-standard. Hvis fornuften skulle råde, ville man så skulle fremstille til den engelske standard med jord på alle stik - og vel at mærke en jordforbindelse, der fysisk er konstrueret til en stor belastning ... men du og jeg ville i meget lang tid være på spanden, når vore PC skulle tilsluttes. Heldigvis opfører folk sig mere ansvarsbevidst ;o) /mvh
Jamen, så må vi vel have været enige hele tiden :) /mvh
Synes godt om
Ny brugerNybegynder
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.