Er der nogen der kan levere sådan et script? (Jeg kan ikke selv skrive
scripts overhovedet.) Jeg går ud fra at det er javascript, der er
aktuelt, men hvis det mod forventning skulle være andet, så kører jeg
med php.
Når udgangspunktet er valid kode (XHTML 1.0 Transitional), og at jeg
tjekker sitets layout i de aktuelle versioner af Firefox, Opera,
Safari og Chrome, formoder jeg ikke, det er nødvendigt at lave en
tilsvarende besked til brugere af ældre versioner af disse browser
(det virkede også i FF3), som jeg har indtryk af fortolker valid kode
ok. Har jeg ret i dette?
Jeg regner også med at andre browsere end de nævnte bliver brugt i så
mikroskopisk målestok, er det er acceptabelt at nøjes med advarsel til
IE-brugere fra 6 og nedefter. Korrekt?
/Preben
Kort og firkantet: det gøres med CSS og CC - ikke js.
Indsæt din besked i en div, der har display:none; i CSS - gerne direkte
i body.
Eks:
#warning {
position : absolute;
top : 100px;
left : 20%;
width : 80%;
display : none;
}
i <head> indsætter du en Conditional Comment
<!--[if IE]>
<style type="text/css">
#warning {
display : block;
}
</style>
<![endif]-->
<body>
<!-- andet indhold -->
<div id="warning">Skift så til en rigtig browser! <b>NU!</b></div>
</body>
Du skal nok have [if lt IE 7] i stedet for [if IE], og selve
meddelelsen og linkene, kan du nok selv rette til...
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
Det blev godt nok en lidt anden løsning end jeg havde forestillet mig.
Så nu sidder beskeden klistret fast på alle sider, så længe man er i
IE6 eller lavere (møgirriterende at se på for brugeren, men det kan
måske motivere til en opgradering). Og beskeden kan let ændres efter
behov, idet det hele ligger i inkluderede filer.
Mange tak for hjælpen.
/Preben
> Så nu sidder beskeden klistret fast på alle sider
Du kan bare nøjes med at bruge css-koden på forsiden.
> Du kan bare n jes med at bruge css-koden p forsiden.
Ja, men så vises beskeden jo ikke hvis undersider findes via
søgemaskiner, og den skal ses, når man kommer ind på sitet, uanset
hvad indgangen er. Jeg havde blot forestillet mig en løsning, hvor
man
som det første kommer ind på en side kun med meddelelsen, og at man
så
via link kan gå ind på sitet og se det på normal vis, altså uden
beskeden.
Noget helt andet:
Min kode i head kom til at se til det der svarer til:
<style type="text/css">
#warning {
position : absolute;
top : 100px;
left : 20%;
width : 80%;
display : none;
}
</style>
<!--[if IE]>
<style type="text/css">
#warning {
display : block;
}
</style>
<![endif]-->
Som nævnt i en inkluderet fil, ligesom i body:
<div id="warning">Skift s til en rigtig browser! <b>NU!</b></div>
er i en inkluderet fil, så det virker på alle sider.
Men jeg ville så prøve at flytte det fra head ind i et globalt
stylesheet, men det virkede kun hvis jeg beholdt <style type="text/
css"></style>, hvilket jeg troede jeg kunne undvære der. Men den går
altså af en eller anden grund ikke?
Ikke fordi det betyder alverden, jeg er blot nysgerrig mht. hvordan
tingene hænger sammen.
/Preben
CC - conditional comment - er en M$ opfindelse. Formentlig fordi IE er
noget rod, og forskellige versioner forstår/tolker koderne forskelligt,
så der er tilfælde hvor visningen i forskellige versioner af IE ikke er
ens - og det må man, når man er M$, gøre noget ved, ved at lave et
tillæg til et tillæg til et tillæg...
Det er kun IE der forstår CC.
De andre springer det over, fordi det starter og slutter som et
kommentar-tag.
Det der står indeni, skal stadig følge reglerne.
Du kan have style eller script, dedikerede meta til IE, etc. Men det
skal stadig pakkes ind i de rigtige tags. Efter CC-start-tag, skal der
altså stå, hvad det handler om - <style> tagget i dette tilfælde.
CC'er skal stå i head - du kan ikke "pakke det ind" i andre tags. Men
kan altså ikke i en css fil have CC'er med den kode der er beregnet til
IE.
Du kan godt include i PHP, men tingene skal stadig sættes sammen, så CC
koden kommer til at stå som direkte child i <head>.
Var lige lidt hurtig på aftrækkeren...
Hvis du ikke har noget imod at rode js ind i det, kan en timer (5-10s)
og en funktion der sætter display:none; på #warning fjerne den. Eller
et element i div'en kan kalde en tilsvarende funktion. Men det vil ikke
være muligt for ikke-javascript brugere at fjerne den.
/Preben
>On 9 Jun., 16:25, Martin Larsen <martin+spamfree+lar...@bigfoot.com>
>wrote:
>
>Men jeg ville så prøve at flytte det fra head ind i et globalt
>stylesheet, men det virkede kun hvis jeg beholdt <style type="text/
>css"></style>, hvilket jeg troede jeg kunne undvære der. Men den går
>altså af en eller anden grund ikke?
>Ikke fordi det betyder alverden, jeg er blot nysgerrig mht. hvordan
>tingene hænger sammen.
Du burde kunne lave en Conditioanl comment med link til eksternt
stylesheet - noget a la:
<!--[if IE]>
<link href="ie_special.css" rel="stylesheet" type="text/css">
<![endif]-->
Good luck!
Jørn
--
Jørn Andersen
socialister.dk
marxisme.dk
> Når udgangspunktet er valid kode (XHTML 1.0 Transitional),
Nu har du nok lavet det, men ellers prøv XHTML strict.
Så vidt jeg husker er der _meget_ stor forskel på rendering i IE6 afhængig
om det er (valid) XHTML-strict eller ej.
Hvorfor har du valgt transitional?
--
Med venlig hilsen
Stig Johansen