/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Redirigere browsere
Fra : Olav Noksagt


Dato : 03-03-03 16:26

Hej
Er der nogen der har et simpeltsimpeltsimpelt javascript eller lign., der
kan koble et stylesheet til en bestemt brugerbrowser?

Det kunne være fedt med noget der kan dele browsere op på
- Netscape 4.x
- Explorer 5
- Ældre

.... og koble css'et sammen med brugerens browser.
Der behøves ikke være noget med om det er Mac eller PC eller hvad ved jeg.

Jeg brøs mig ikke om indledningsjavascript på masser af linier, da jeg ikke
kan gennemskue dem og ikke brøs mig om sider jeg ikke kan gennemskue...

Er der nogle kloge forslag?

Olav


 
 
Jens Gyldenkærne Cla~ (03-03-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-03-03 16:50

Olav Noksagt skrev:

> Jeg brøs mig ikke om indledningsjavascript på masser af
> linier, da jeg ikke kan gennemskue dem og ikke brøs mig om
> sider jeg ikke kan gennemskue...

Jeg bryder mig ikke om sider der sætter styles efter navnet på
en browser. Din opdeling (Netscape 4.x, Explorer 5, Ældre)
tager ikke hensyn til at der er andre browsere end Netscape og
IE - og tilsynelandende heller ikke at der er himmelvid forskel
på hvad Netscape 4.x og Netscape 6+ forstår af css.

Med standardopfyldende kode (og en standardsættende doctype) kan
en ganske stor del css-kode faktisk bruges på tværs af
browsermærke - vel og mærke hvis man taler om nyere versioner.
Ældre versioner kan om nødvendigt kobles af med forskellige
css-kneb - se fx Hinzmanns glimrende side:
<http://users.cybercity.dk/~dsl58854/articles/skjulecss/skjulecss.html>

Specifikt til IE kan man benytte conditional comments - fx som
her:

<!--[if IE 6]>
   <style type="text/css" media="screen">
   /* Dette stylesheet ses kun af IE 6 */
        #hojrebund, #reklamer{ right: 1px; }
   </style>
<![endif]-->
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Olav Noksagt (03-03-2003)
Kommentar
Fra : Olav Noksagt


Dato : 03-03-03 16:57

Hej
Næ - jeg ved heller ikke helt hvordan det skal gribes an - men sidder bare
og skummer over at browserne laver så forskellige output på css. Jeg ville
egentligt bare lave en css-fordeling der tilgodeså NN4.x (som er røvelendig
men nødvendig på mit site), men formulerer og forklarer mig dårligt!

Hvor finder man mere info om "standardopfyldende kode (og en
standardsættende doctype)"?

Kan dit sidste trick bruges på IE ældre versioner til Mac/Windows?

Tak for svar,
Olav

> Olav Noksagt skrev:
>
>> Jeg brøs mig ikke om indledningsjavascript på masser af
>> linier, da jeg ikke kan gennemskue dem og ikke brøs mig om
>> sider jeg ikke kan gennemskue...
>
> Jeg bryder mig ikke om sider der sætter styles efter navnet på
> en browser. Din opdeling (Netscape 4.x, Explorer 5, Ældre)
> tager ikke hensyn til at der er andre browsere end Netscape og
> IE - og tilsynelandende heller ikke at der er himmelvid forskel
> på hvad Netscape 4.x og Netscape 6+ forstår af css.
>
> Med standardopfyldende kode (og en standardsættende doctype) kan
> en ganske stor del css-kode faktisk bruges på tværs af
> browsermærke - vel og mærke hvis man taler om nyere versioner.
> Ældre versioner kan om nødvendigt kobles af med forskellige
> css-kneb - se fx Hinzmanns glimrende side:
> <http://users.cybercity.dk/~dsl58854/articles/skjulecss/skjulecss.html>
>
> Specifikt til IE kan man benytte conditional comments - fx som
> her:
>
> <!--[if IE 6]>
> <style type="text/css" media="screen">
> /* Dette stylesheet ses kun af IE 6 */
> #hojrebund, #reklamer{ right: 1px; }
> </style>
> <![endif]-->
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html


Lasse Reichstein Nie~ (03-03-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 03-03-03 18:25

Jens Gyldenkærne Clausen <jens@gyros.invalid> writes:

> Ældre versioner kan om nødvendigt kobles af med forskellige
> css-kneb - se fx Hinzmanns glimrende side:
> <http://users.cybercity.dk/~dsl58854/articles/skjulecss/skjulecss.html>

Folk er så forskellige. Jeg synes den slags kneb er langt grimmere og
mindre fremtidssikre end at teste på browserens navn. Hvis browseren
selv siger at den er en Netscape 4.08, så fortjener den også at blive
behandlet som det.

Man skal blot nøjes med at skrive korrekt og standard-opfyldende kode,
og så lave specialtilfælde for de dumme browsere. Problemerne kommer
for folk der skriver kode til forskellige browsere, men ikke har en
passende default at falde tilbage på hvis browseren ikke genkendes.
Altså brug standarder og en sort-liste der tager højde for kendte fejl
i browsere.

> Specifikt til IE kan man benytte conditional comments - fx som
> her:
>
> <!--[if IE 6]>

Det er faktisk behageligt at IE har den feature. Det er ca. den ting
der gør det overleveligt at deres CSS-understøttelse er så dårlig som
den er.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'

Jens Gyldenkærne Cla~ (03-03-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-03-03 22:09

Lasse Reichstein Nielsen skrev:

> Folk er så forskellige. Jeg synes den slags kneb er langt
> grimmere og mindre fremtidssikre end at teste på browserens
> navn.

Kan ske. Jeg har vist i øvrigt også blandet et råd mod
browserdetektion til javascript sammen med css. Man kan jo ikke som
i javascript teste om en "dims" virker før man bruger den.

> Hvis browseren selv siger at den er en Netscape 4.08, så
> fortjener den også at blive behandlet som det.

Afgjort.

> Man skal blot nøjes med at skrive korrekt og
> standard-opfyldende kode, og så lave specialtilfælde for de
> dumme browsere. Problemerne kommer for folk der skriver kode
> til forskellige browsere, men ikke har en passende default at
> falde tilbage på hvis browseren ikke genkendes.

Præcis. De sider der benytter browserdetektion til css-valg er
efter min erfaring alt for ofte bygget op sådan at man tester for
en række kendte browsere (typisk IE + Netscape), og hvis ingen af
disse findes så får man et ultra-light css-ark fordi antagelsen
formentlig er at en ukendt browser ikke forstår css.

> Altså brug standarder og en sort-liste der tager højde for kendte
> fejl i browsere.

Hørt.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Dennis Vinther (03-03-2003)
Kommentar
Fra : Dennis Vinther


Dato : 03-03-03 19:29

Olav Noksagt <noksagt_fjerndette@hotmail.com> wrote in
news:BA893298.6917%noksagt_fjerndette@hotmail.com:

> Hej
> Er der nogen der har et simpeltsimpeltsimpelt javascript eller lign.,
> der kan koble et stylesheet til en bestemt brugerbrowser?
>
> Det kunne være fedt med noget der kan dele browsere op på
> - Netscape 4.x
> - Explorer 5
> - Ældre
>

Tjaa... jeg ved ikke om det er den mest korrekte måde, men jeg skulle
mene at dette lille javascript virker ;)

Det undersøges om browseren kalder sig selv for "Netscape" og derefter om
dens versionnr. er mindre end 5 (4.x, 3.x osv)

if ((navigator.appName == "Netscape") && (navigator.appVersion.charAt(0)
< "5")){
document.write('<link href="/miema/css/netscape.css" rel="stylesheet"
type="text/css">')
}

Mvh
Dennis

--
Aalborg
Erstat NOSPAM med dk i min e-mail
http://dwt.dk

Hintzmann (04-03-2003)
Kommentar
Fra : Hintzmann


Dato : 04-03-03 08:28

"Dennis Vinther" <news@dwt.NOSPAM> skrev i en meddelelse
news:b406tq$r8s$1@sunsite.dk...
> > Er der nogen der har et simpeltsimpeltsimpelt javascript eller lign.,
> > der kan koble et stylesheet til en bestemt brugerbrowser?
>
> Tjaa... jeg ved ikke om det er den mest korrekte måde, men jeg skulle
> mene at dette lille javascript virker ;)
>
> Det undersøges om browseren kalder sig selv for "Netscape" og derefter om
> dens versionnr. er mindre end 5 (4.x, 3.x osv)
>

Et alternativ til Dennis Javascript er at sniffe efter browseren på
serversiden (hvis du har adgang).

Her er et eksempel på hvordan man kan gøre det:
http://diveintomark.org/archives/2003/01/16/the_one_ive_never_tried.html

Hintzmann



Erik Ginnerskov (04-03-2003)
Kommentar
Fra : Erik Ginnerskov


Dato : 04-03-03 11:49


"Dennis Vinther" <news@dwt.NOSPAM> skrev
> Tjaa... jeg ved ikke om det er den mest korrekte måde, men jeg skulle
> mene at dette lille javascript virker ;)
>
> Det undersøges om browseren kalder sig selv for "Netscape" og derefter om
> dens versionnr. er mindre end 5 (4.x, 3.x osv)
>
> if ((navigator.appName == "Netscape") && (navigator.appVersion.charAt(0)
> < "5")){
> document.write('<link href="/miema/css/netscape.css" rel="stylesheet"
> type="text/css">')
> }

Det script mangler da en else-del. Der burde stå:

if ((navigator.appName == "Netscape") && (navigator.appVersion.charAt(0)
< "5")){
document.write('<link href="/miema/css/netscape.css" rel="stylesheet"
type="text/css">')
}
else{
document.write('<link href="/miema/css/style.css" rel="stylesheet"
type="text/css">')
}

Så indlæses specielt css for NN4 hvis NN4 og normalt css i alle andre
tilfælde.

--
Med venlig hilsen
Erik Ginnerskov - erik snabela ginnerskov dot dk
http://www.hjemmesideskolen.dk - http://www.html-faq.dk
http://hjem.get2net.dk/sorgin



Lars Hoffmann (04-03-2003)
Kommentar
Fra : Lars Hoffmann


Dato : 04-03-03 12:00


"Dennis Vinther" <news@dwt.NOSPAM> escribió

> Tjaa... jeg ved ikke om det er den mest korrekte måde, men jeg
skulle
> mene at dette lille javascript virker ;)

Må jeg foreslå en @import sætning som virker rigtigt godt for mig:

<link href="css/nn4style.css" rel="stylesheet" type="text/css">
<style type="text/css">@import "css/styleTilAndre.css";</style>




Magne Heen (04-03-2003)
Kommentar
Fra : Magne Heen


Dato : 04-03-03 08:48

Olav Noksagt wrote:
>
> Hej
> Er der nogen der har et simpeltsimpeltsimpelt javascript eller lign., der
> kan koble et stylesheet til en bestemt brugerbrowser?
>
> Det kunne være fedt med noget der kan dele browsere op på
> - Netscape 4.x
> - Explorer 5
> - Ældre
>
> ... og koble css'et sammen med brugerens browser.
> Der behøves ikke være noget med om det er Mac eller PC eller hvad ved jeg.
>
> Jeg brøs mig ikke om indledningsjavascript på masser af linier, da jeg ikke
> kan gennemskue dem og ikke brøs mig om sider jeg ikke kan gennemskue...
>
> Er der nogle kloge forslag?
>

Det finnes en metode som går ut på å bruke det samme 'innlagte'
stilsettet både for 'eldre' og nyere browsere. Den går ut på å først og
fremst å få sidene validert under doctype strict. Dernest unngå å bruke
cssdirektiver som ikke støttes av 'eldre' browsere (det er noen få som
det allikevel finnes alternativer til). Bruke Netscape® Communicator
4.79/4.8 som utgangspunkt når du lager sidene for å sikre at de vises i
'eldre' browsere. Ikke bruke tabeller eller frames til design (innholdet
i html-filen og presentasjonen i css-filen).

Man bør ikke ha tanker om at siden skal være 100% lik i alle typer
browsere (det er ingen browsere som støtter css-spesifikasjonene 100%).

Etter som nyere browsere behøver andre verdier på fontstørrelser,
breder, padding og margin, lager du et minimalistisk stisett som
inneholder kun disse endrede verdiene. Dette stilsettet
importere(@IMPORT) og leses kun av nyere weblesere slik at de ikke får
innvirkning på 'eldre' browsere.

Metoden er utprøvd og fungerer samt at det medfører helt ubetydelig
ekstraarbeid. Den er unansett bedre enn å legge inn all mulig dill for å
hindre siden i å bli vist i 'eldre' browsere som har css-støtte selv om
den ikke er helt 'perfekt'.


Magne Heen.

Søg
Reklame
Statistik
Spørgsmål : 177506
Tips : 31968
Nyheder : 719565
Indlæg : 6408561
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste