/ 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
Skjult div optager plads på skærmen
Fra : Dennis Hansen


Dato : 15-11-02 18:20

Jeg har en div som indeholder en tabel, som skifter visibility on/off når
man trykker på en checkbox, men selv når den er skult, optager den plads på
skærmen under Opera 6.1 (linux) og IE 5.

Det gør den ikke i Netscape 7 (linux), Mozilla 1.1 (linux) og de andre
browsere jeg har testet under linux.

Jeg kunne godt tænke mig at den div ikke optog noget plads når den var
skjult.
Jeg vil gerne undgå at bruge absolute position da resten af siden under
denne div helst skulle tilpasse sig (rykke op og ned), alt efter om den er
on eller off.

Jeg ved ikke hvilken browser det er, der viser det på den korrekte måde, men
bare de kunne gøre det ens.

Eksemplet er her, hvis nogen skulle have lyst til at tage et kig på det,
tak.
http://boxen.dyndns.dk/changediv.html

Mvh
Dennis

 
 
Jens Gyldenkærne Cla~ (15-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-11-02 18:31

Dennis Hansen skrev:

> Jeg har en div som indeholder en tabel, som skifter visibility
> on/off når man trykker på en checkbox, men selv når den er
> skult, optager den plads på skærmen under Opera 6.1 (linux)
> og IE 5.

Brug "display: none" hhv. "display: block" - så virker det i IE og
Opera 7. Opera 6 kan ikke vise et element der er fjernet med
display: none.
--
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

Jens Gyldenkærne Cla~ (15-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-11-02 18:40

Dennis Hansen skrev:

> Jeg har en div som indeholder en tabel, som skifter visibility
> on/off når man trykker på en checkbox, men selv når den er
> skult, optager den plads på skærmen under Opera 6.1 (linux)
> og IE 5.

Det er faktisk også sådan de skal fortolke visibility: hidden.

Fra css-specifikationen, afsnit 11.2:

,----
| -
| The 'visibility' property specifies whether the boxes generated by
| an element are rendered. Invisible boxes still affect layout (set
| the 'display' property to 'none' to suppress box generation
| altogether).
`----
(<http://www.w3.org/TR/CSS21/visufx.html#visibility>)
--
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 Hansen (15-11-2002)
Kommentar
Fra : Dennis Hansen


Dato : 15-11-02 18:55

Jens Gyldenkærne Clausen wrote:

> Det er faktisk også sådan de skal fortolke visibility: hidden.
>
> Fra css-specifikationen, afsnit 11.2:

[cut]

> (<http://www.w3.org/TR/CSS21/visufx.html#visibility>)


Ja ok, mange tak, det hjalp på sagerne, at bruge display, nu virker det i
alle samme pånær Opera, den viser den slet ikke mere (den optager dog
heller ikke plads)

Kan jeg få Opera til at makke ret også ?
Den nye version er på
http://boxen.dyndns.dk/changediv01.html

Mvh
Dennis

Jens Gyldenkærne Cla~ (15-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-11-02 19:23

Dennis Hansen skrev:

> Kan jeg få Opera til at makke ret også ?

Nej - du er nødt til at browsersniffe for at få det til at virke
også i Opera 6 (eller bare vente på at folk opgraderer til version
7).

Til gengæld kan jeg få det til at virke i IE6 - det gør det ikke
sådan som du har skrevet siden nu.

Jeg har lagt en ændret udgave her:
<http://damu.dk/jc/usenet/changediv.html>.

De betydende ændringer er i div-taggen og showhide-funktionen. Du
skal ikke tage dig af at jeg har konverteret til XHTML - sådan vil
jeg bare helst have mine eksempler.

Dog bør du nok fjerne den ekstra <body>.
--
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 Hansen (15-11-2002)
Kommentar
Fra : Dennis Hansen


Dato : 15-11-02 20:31

Jens Gyldenkærne Clausen wrote:

>> Kan jeg få Opera til at makke ret også ?
>
> Nej - du er nødt til at browsersniffe for at få det til at virke
> også i Opera 6 (eller bare vente på at folk opgraderer til version
> 7).

Øv, det kan man ikke rigtig regne med, da mange af dem nok identificerer
sig som IE 5, det mener jeg er default indstillingen, men så er der da gjort
et forsøg.

> Jeg har lagt en ændret udgave her:
> <http://damu.dk/jc/usenet/changediv.html>.

Lækkert, takker og bukker

> Dog bør du nok fjerne den ekstra <body>.

Hov, den havde jeg ikke lagt mærke til.

Mvh
Dennis







René Lønstrup \(AKA ~ (17-11-2002)
Kommentar
Fra : René Lønstrup \(AKA ~


Dato : 17-11-02 21:25

"Dennis Hansen" <dennis__hansen@hotmail.com> wrote in message
news:3dd54b90$1$148$edfadb0f@dtext02.news.tele.dk
> > > Kan jeg få Opera til at makke ret også ?
> >
> > Nej - du er nødt til at browsersniffe for at få det til at virke
> > også i Opera 6 (eller bare vente på at folk opgraderer til version
> > 7).
>
> Øv, det kan man ikke rigtig regne med, da mange af dem nok
> identificerer sig som IE 5, det mener jeg er default indstillingen,
> men så er der da gjort et forsøg.

<script>
if ((navigator.userAgent.toLowerCase().indexOf("opera/6") != -1) ||
(navigator.userAgent.toLowerCase().indexOf("opera 6") != -1)) {
browser = "opera6";
// tester specifikt efter Opera6
}
else if (navigator.userAgent.toLowerCase().indexOf("opera") != -1) {
browser = "opera";
// tester efter en hvilken som helst Opera browser
}
</script>

Ovenstående finder Opera-browsere, uanset hvad folk sætter den til at
identificere sig som


--
René (AKA The Artist Currently Known As Rel7Star)
--- farende rundt i en 1985 Toyota MR2 1,6 16v ---
x===----> http://www.rel7star.dk <----===x



Jens Gyldenkærne Cla~ (16-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-11-02 12:29

Dennis Hansen skrev:

>> Nej - du er nødt til at browsersniffe

> Øv, det kan man ikke rigtig regne med, da mange af dem nok
> identificerer sig som IE 5, det mener jeg er default
> indstillingen, men så er der da gjort et forsøg.

Det tror jeg nu godt du kan komme uden om. Jeg kender ikke noget
særligt til browsersnifning, men du bør i dette tilfælde kunne
klare dig med at undersøge om browseren understøtter den
javascriptkode du vil bruge - og så i øvrigt være ligeglad med
hvilken browser der er tale om.

Jeg fandt lige følgende link:
<http://www.xs4all.nl/~ppk/js/support.html>. Nederst på siden står
følgende javascript-objekttjek:

   if (document.getElementById && document.createElement)

- som skulle være nok til at afgøre om dit vis/skjul-script vil
virke.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

Jens Gyldenkærne Cla~ (17-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-11-02 22:21

René Lønstrup (AKA Rel7Star) skrev:

> Ovenstående finder Opera-browsere, uanset hvad folk sætter den
> til at identificere sig som

Men det har den indbyggede svaghed som ethvert snifferscript der
undersøge browsernavne i stedet for egenskaber: Det håndterer kun
de browsere man fodrer det med.

Man bør - så vidt det er muligt - basere browserspecifik kode på
hvilke scriptegenskaber en browser har, ikke hvad den hedder (jf:
<news:Xns92C87F021FFF1jcdmfdk@gyrosmod.cybercity.dk> og
<http://www.xs4all.nl/~ppk/js/support.html>).
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

René Lønstrup \(AKA ~ (18-11-2002)
Kommentar
Fra : René Lønstrup \(AKA ~


Dato : 18-11-02 00:08

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns92C9E36B43D66jcdmfdk@gyrosmod.cybercity.dk
> Men det har den indbyggede svaghed som ethvert snifferscript der
> undersøge browsernavne i stedet for egenskaber: Det håndterer kun
> de browsere man fodrer det med.
>
> Man bør - så vidt det er muligt - basere browserspecifik kode på
> hvilke scriptegenskaber en browser har, ikke hvad den hedder (jf:
> <news:Xns92C87F021FFF1jcdmfdk@gyrosmod.cybercity.dk> og
> <http://www.xs4all.nl/~ppk/js/support.html>).

Jo, men som der også står aller nederst på siden:
Unfortunately this object detect, too, is not enough. Opera 6 says it
supports createElement though it cannot actually add the created element to
the document. At the moment I don't know what to do about it. I hope Opera
will either remove support for createElement or add support for actually
doing something with the element.


I det tilfælde kan du jo alligevel godt bruge snifferscriptet til at omgå
Opera 6

Og det er jo desværre ikke et enestående tilfælde, i fbm. Opera (eks.
forstår O5 ikke offsetHeight og bruger i stedet style.pixelHeight, men vil
alligevel bestå en document.getElementById prøve. O6 forstår derimod begge
metoder, mens O7 kun forstår offsetHeight.. Det er ikke nemt ;) ).

Anyway, vi er nok enige langt hen ad vejen når det kommer til stykket (men
hvorfor gøre det let, når man med lidt omhu kan gøre det helt umuligt
;) ), - jeg svarede sådan set også bare på om det var muligt at
identificere Opera, selv om den forklædte sig som en anden browser (hvilket
det så er)


--
René (AKA The Artist Currently Known As Rel7Star)
--- farende rundt i en 1985 Toyota MR2 1,6 16v ---
x===----> http://www.rel7star.dk <----===x



Lasse Reichstein Nie~ (18-11-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 18-11-02 00:44

"René Lønstrup \(AKA Rel7Star\)" <7star@iname.com> writes:

> Jo, men som der også står aller nederst på siden:
> Unfortunately this object detect, too, is not enough. Opera 6 says it
> supports createElement though it cannot actually add the created element to
> the document. At the moment I don't know what to do about it. I hope Opera
> will either remove support for createElement or add support for actually
> doing something with the element.

> I det tilfælde kan du jo alligevel godt bruge snifferscriptet til at omgå
> Opera 6

Jep. Det vigtige er blot at lave koden så den virker på
standard-overholdende browsere, og så kun lave browsertjek for de
browsere der ikke virker rigtigt (og har tilstrækkelig udbredelse til
at man gider). Så vil en ny, ukendt, men standard-overholdende, browser
stadig kunne se det.

Det der ofte sker er at folk laver noget der kun virker i IE, og så
laver browserdetect for nogle få andre browsere til at virke også, og
så virker det *kun* i de browsere. Det er ikke fremtidssikret.

> Og det er jo desværre ikke et enestående tilfælde, i fbm. Opera (eks.
> forstår O5 ikke offsetHeight og bruger i stedet style.pixelHeight, men vil
> alligevel bestå en document.getElementById prøve.

Afgjort. Man må aldrig bruge en test til at udtale sig om at en anden
feature findes. Lige som man ikke kan konkludere at document.all
findes medføre at det er en IE. Hvis du bruger
document.getElementById, så test for den, hvis du vil bruge
offsetHeight, så test for den specifikt. Der var ingen der sagde at
det skulle være nemt :)

> O6 forstår derimod begge metoder, mens O7 kun forstår offsetHeight..
> Det er ikke nemt ;) ).

Skriv til standarden, beslut hvilke andre browsere der også skal kunne
se siden, og lav undtagelser for disse. Så må du beslutte om O5 er
vigtig :).

> Anyway, vi er nok enige langt hen ad vejen når det kommer til stykket (men
> hvorfor gøre det let, når man med lidt omhu kan gøre det helt umuligt
> ;) ), - jeg svarede sådan set også bare på om det var muligt at
> identificere Opera, selv om den forklædte sig som en anden browser (hvilket
> det så er)

(med mindre ens proxy laver fusk ... Proximitron har et filter der
hedder "Hide Browser's Identity from JS" til den slags :)

Men ja, Opera skriver altid Opera et sted i browser-id'en.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste