Avatar billede need4speed Nybegynder
03. august 2006 - 21:45 Der er 29 kommentarer og
3 løsninger

firefox og IE

Er der en måde at skrive i ens css at hvis det er en firefox browser skal den skrive padding-right:100px og hvis det er IE så 150px ?
Avatar billede Slettet bruger
03. august 2006 - 22:49 #1
Nej, ikke direkte, og normalt er det heller ikke nødvendigt med den slags fusk.

Prøv at give siden en komplet DOCTYPE, så IE ikke går i quirks-mode.
Avatar billede mclemens Nybegynder
03. august 2006 - 23:31 #2
Afhængig af hvad fejlen består i kan det være doctype... men også andre ting som f.eks. floats ( http://www.eksperten.dk/spm/713785#rid6293709 ) - prøv sandbox's doctype først herefter se om det er en float ... hvis det ikke hjælper så kast noget markup med en simulering af problemet eller kast selve problemet / link til det...
Avatar billede miqe Nybegynder
03. august 2006 - 23:47 #3
Ja! Metoden er grim, men i visse tilfælde nødvendig.
Sørg i første omgang for at dit html validerer og sæt en DOCTYPE i som sandbox nævner.

Når alt er som det skal være og det dermed kun handler om bug's i browsere, kan du ved hjælp af et "Holly Hack" fortælle bestemte versioner af IE at de skal bruge én indstilling fremfor en anden. Ref: http://www.positioniseverything.net/
I følgende eksempel giver du 100px højre padding til alle
og derefter retter du det til 150px for IE til Windows:

img{padding-right:100px}

/* Holly Hack: Hide From IE5/Mac \*/
* html img {padding-right:150px}
/* Holly Hack: End Hide From IE5/Mac */

Fjerner du de 2 kommenterede linier vil IE til Mac også få den alternative indstilling.

Hacket udnytter at IE tror at * er et mystisk parent element til html-elementet, hvor imod alle andre browsere godt ved at html-elementet ikke har nogen parent.

Hacket er generelt risikabelt at basere sit design på, da man for det første har uren CSS, og for det andet kommer hacket med god sandsynlighed ikke til at virke i IE7.
Avatar billede mclemens Nybegynder
03. august 2006 - 23:57 #4
[ Hacket er generelt risikabelt at basere sit design på, da man for det første har uren CSS, og for det andet kommer hacket med god sandsynlighed ikke til at virke i IE7. ]

Er det ikke problematisk at introducere en person for et css hack, inden man ved om det er nødvendigt, når man ikke ved om css hacket virker i IE7 (højst sandsynligvis ikke) og de efterfølgende effekter af at hacket pludselig ikke virker længere? Eller?

- Indrømmer der er bugs hist og her, men er det er jo vigtigt at IE7 også virker... Jeg ville nok se om man ikke kunne løse fejlen istedet for at patche den... Men det er selvfølgelig også muligt at hacket er nødvendigt (bruger ikke selv css hacks) ...
Avatar billede miqe Nybegynder
04. august 2006 - 00:09 #5
Kommer i høj grad an på hvad han vil.
Spørgsmålet er om det kan lade sig gøre, og det kan det.
At det så er frarådeligt og at alle bedre muligheder skal afprøves først, får jeg da også kommunikeret ud. :-)

Kan selvfølgelig godt se at det kan være problematisk at give et barn en æske tændstikker og fortælle ham at han helst ikke skal bruge dem, men på den anden side hjælper det ikke på fødselsraten blandt unge piger at prædke kyskhed.
Avatar billede mclemens Nybegynder
04. august 2006 - 00:44 #6
[ Sørg i første omgang for at dit html validerer og sæt en DOCTYPE i som sandbox nævner. Når alt er som det skal være og det dermed kun handler om bug's i browsere, ]

... Da jeg læste det forstod jeg det som: Hvis doctype er iorden og css er gyldig - så er det en browser bug og skal løses med css hacket... - Jeg er derfor glad for at du uddybede, at det betød at alle alternative løsninger skulle prøve først :)
(der måske andre måder at "omgå" et behov med alternative elementer / nested markup)

Jeg er klar over alt det andet og læste også, at du skrev at det var risiko fyldt - jeg quotede selv den del ... Jeg føler bare at css hacket har haft sin storhedstid - og at der derfor ikke er grund til at lære en person et udgående css hack medmindre man vidste at det var nødvendigt (den står jo rundt på en masse sider som en "frelser" selvom den snart kan blive til et mareridt for enkelte der har baseret deres design på brugen af den... Det er blot min holdning til css hacket med den nuværende situation i baghovedet ikke spor andet.

Mvh, Clemme :o)
Avatar billede mclemens Nybegynder
04. august 2006 - 00:45 #7
edit: Hvis doctype er iorden og css er gyldig -
skulle have stået: Hvis doctype og html er iorden samt css er gyldig -
Avatar billede mclemens Nybegynder
04. august 2006 - 01:07 #8
[ Spørgsmålet er om det kan lade sig gøre, og det kan det. ]
- Den del har du selvfølgelig også ret i
reelt er svaret præcis det du skrev. ;)
Avatar billede Slettet bruger
04. august 2006 - 02:58 #9
Hvis det endelig skulle være nødvendigt at give specielle CSS-instruktioner til IE, ville jeg nærmere anbefale at bruge conditional comments i HTML til at inkludere et ekstra stylesheet kun for IE, så det kan override de tidligere styles for fornuftige browsere.

<!--[if IE]><link rel="stylesheet" type="text/css" href="IE.css"><![endif]-->

Grunden til at jeg først sagde "Ikke direkte" er, at der ikke findes conditional comments for CSS, det er kun i HTML.
Avatar billede Slettet bruger
04. august 2006 - 03:00 #10
Pointen er, at den metode er ikke baseret på et hack, som måske lige pludselig holder op med at virke, selv om buggen, som man prøver at omgå stadig er der.

Læs mere om conditional comments på: http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp
Avatar billede miqe Nybegynder
04. august 2006 - 09:27 #11
Jeg giver dig fuldstændigt ret sandbox.
Forsøgte faktisk at finde samme type html conditional, men var ikke i stand til det. Kunne simpelthen ikke huske hvor jeg havde set det før.

Det rare er jo at det vil validere, da conditionals er rammet ind i en kommentar.

Need4Speed: Jeg anbefaler at du bruger sandbox's metode og giver ham points
Avatar billede Slettet bruger
04. august 2006 - 09:36 #12
Så er der så ulempen, at den virker kun i IE, men da det er den browser man oftest har brug for at give "ekstra bistand" gør det ikke så meget.

Og for det meste kan det godt lade sig gøre at lave noget almindelig CSS, som virker ens i alle de større browsere, og så har man slet ikke brug for særlig kode.
Avatar billede mclemens Nybegynder
04. august 2006 - 09:36 #13
[ Kunne simpelthen ikke huske hvor jeg havde set det før. ]
Måske den side du henviser til ( http://www.positioniseverything.net/articles/ie7-dehacker.html ) 4 nederste afsnit "An Alternate Method" ...
Avatar billede need4speed Nybegynder
04. august 2006 - 09:37 #14
Hvis man overholder standarden betyder det så, at det virker 100% i alle browsere ?

Tror der er flere som skal have point.
Avatar billede mclemens Nybegynder
04. august 2006 - 09:43 #15
[ Hvis man overholder standarden betyder det så, at det virker 100% i alle browsere ? ]
Nej, der er fejl / bugs / variationer i browsere - se f.eks. den med float i http://www.eksperten.dk/spm/713785#rid6293709 ... Der er også andet som at IE og FF har forskellig padding og margin på visse elementer ... FF reserverer plads til en absolute layers scroller - IE gør ikke ... Samt det at mellemrum f.eks. kan fylde i IE. (sikkert også meget andet men det husker jeg først når jeg ser det).

- Ingen point til mig hvis du vælger et css / html hack.
Avatar billede mclemens Nybegynder
04. august 2006 - 09:45 #16
Anbefaler også sandbox's udgave.
Avatar billede Slettet bruger
04. august 2006 - 09:58 #17
Hvis du ønsker noget, der virker 100% (og især 100% ens) i alle browsere, bør du holde dig til ren text, og så er du ikke engang sikker ;-)

Men hvis du:
- starter med at udvikle på en standardoverholdende browser
- bruger korrekt og komplet DOCTYPE
- sætter margin og padding på alle elementer, hvor det er relevant

Så skulle det normalt kunne lade sig gøre at få det til at ligne hinanden i alle de gængse browsere.
Avatar billede miqe Nybegynder
04. august 2006 - 10:18 #18
Som mclemens antyder er der både ting, der skyldes bug's og ting der skyldes variationer.
Variationerne er typisk forskellige default værdier for diverse afstande.
CSS overrider i bund og grund bare browsernes egne default værdier. (den simple definition om man vil).
Med hensyn til f.eks. floats er IE<=6 ikke standards compliant. Hvad vi i generel tale vil kalde en bug. Vis du ikke giver en float's parent element dimensioner vil IE/Win kvaje sig. Dette kan løses ved at sætte height:1%; for dette parent element.
Se: http://www.positioniseverything.net/explorer/escape-floats.html

For at løse denne slags med sandbox's korrekte metode kan du se følgende link for info om conditionals for forskellige IE browser versioner:
http://www.quirksmode.org/css/condcom.html  (Kig under "Example")

Valideret html gør det ikke alene.
CSS skal også gerne validere, men ikke alle CSS funktioner understøttes i alle browsere.
Vha. følgende link kan du se hvilke CSS metoder der fungerer i hvilke browsere og versioner af samme:
http://www.w3schools.com/css/css_reference.asp
Avatar billede miqe Nybegynder
04. august 2006 - 10:25 #19
Et lille indspark...
Når dit html og css validerer kan du kan du tjekke resultatet i en tekstbrowser som f.esk. lynx og finde ud af om det ser fornuftigt.
I så tilfælde er der større chance for at folk med hjælpemidler (f.eks. blinde) eller folk der foretrækker keyboard frem for mus har lettere ved at navigere på din side.
Avatar billede need4speed Nybegynder
04. august 2006 - 10:35 #20
Ja tror mit justeringsproblem opstod pga floats, skulle have 2 div´er ved siden af hinanden. Så lavet en tabel istedet med en div ihver. Så blev den justeret korrekt i begge browsere. Ville bare helst foretrække en ren div side.
Avatar billede miqe Nybegynder
04. august 2006 - 11:45 #21
Vis det er muligt at se resultatet, har vi mulighed at komme med forslag, så du kan få en ren "division" ;-).
Avatar billede need4speed Nybegynder
04. august 2006 - 18:39 #22
Må i da godt det er en side til mig selv og min partner.

http://www.vivax.dk/index2.php

Nu er mit problem cssen :) bullet blinker når man fører musen over, gør den ikke i Firefox :(
Avatar billede miqe Nybegynder
11. august 2006 - 09:36 #23
Nu har jeg ledt med lys og lygte. Jeg kan ikke finde noget der blinker i hverken IE. eller Firefox.
Avatar billede need4speed Nybegynder
14. august 2006 - 12:47 #24
dem der ønskede at svare fik de svaret ?
Avatar billede mclemens Nybegynder
14. august 2006 - 12:53 #25
Kaster lige et også så...
Det var jo en float der drillede ...
Avatar billede miqe Nybegynder
15. november 2006 - 21:33 #26
Fik du løst det?
Avatar billede need4speed Nybegynder
15. november 2006 - 23:07 #27
Ja det fik løst mit problem takker for hjælpen.
Avatar billede mclemens Nybegynder
16. november 2006 - 00:08 #28
Så markerer du dem, der skal have point
i boksen og klikker på accepter :o)
Avatar billede need4speed Nybegynder
16. november 2006 - 18:56 #29
;)
Avatar billede mclemens Nybegynder
16. november 2006 - 20:33 #30
Tak for point :)
Avatar billede miqe Nybegynder
17. november 2006 - 09:55 #31
Tak for points
Avatar billede Slettet bruger
17. november 2006 - 23:55 #32
Også tak herfra
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