Brauche hilfe bei css

Hallo Sam,

bei mir strürzt der IE aber nicht ab, weder meine IE7 unter XP zuhause noch mein IE6 auf der Arbeit unter Windows 2000.

danke!! hab den post hier erst heute entdeckt^^
der code funkzt mit firefox super. aber wenn ich ihn mit ie
teste stürzt der ie immer ab :frowning: ka wieso.
es liegt wohl am „das lamm“ code. :smiley:
ich währe sehr froh wenn du nochmal den code anschauen kannst.
thx

Ja, mit den expression()-Aufrufen habe ich Missbrauch getrieben, wie du ja auch an dem „Lamm & Co“ merkst. Das vor dem Doppelpunkt hättest du ohne weiteres auch weglassen können. Eigentlich hat Microsoft hier etwas anderes vorgesehen, nämlich „behavior:“.

Dazu legst du dir erst einmal eine Textdate an und speicherst diese aber nicht mit der Erweiterung „.txt“ sondern „.htc“ ab. Sie sieht wie folgt aus:
var innerList = getElementsByTagName(‚UL‘)[0];

function Expand() {
var evt = window.event;
if(innerList && evt.fromElement && !contains(evt.fromElement))
innerList.style.display = „block“;
}

function Collapse() {
var evt = window.event;
if(innerList && evt.toElement && !contains(evt.toElement))
innerList.style.display = „“;
}

Der Conditional-Comment für den IE, in dem du die HTC-Datei mit dem Javascript referenzierst, sieht dann so aus.Bei mir flackert der Mouseover aber im IE6 gleich arg, egal, ob ich nun das von Microsoft vorgesehenene „Behavior“ verwende oder ob ich „expression()“ missbrauche. Ob das bei einem älteren Rechner auch beides zum Absturz führen kann oder ob das eine günstiger ist als das andere, musst du austesten. Bitte berichte mir dann, denn das interessiert mich auch.

Gruß Gernot

Hallo Sam,

hi

bei mir strürzt der IE aber nicht ab, weder meine IE7 unter XP
zuhause noch mein IE6 auf der Arbeit unter Windows 2000.

also ich hab ie6 auf xp und firefox2.

Ja, mit den expression()-Aufrufen habe ich Missbrauch
getrieben, wie du ja auch an dem „Lamm & Co“ merkst. Das vor
dem Doppelpunkt hättest du ohne weiteres auch weglassen
können. Eigentlich hat Microsoft hier etwas anderes
vorgesehen, nämlich „behavior:“.

ich habe nur leider nichts verstanden. was für einen missbrauch??

Dazu legst du dir erst einmal eine Textdate an und speicherst
diese aber nicht mit der Erweiterung „.txt“ sondern „.htc“ ab.

und wie geht das??? ich speichere praktisch nie was ins .txt files. ich schreibe die css codes immer gleich in den haed bereich des html documents.

Sie sieht wie folgt aus:

var innerList = getElementsByTagName(‚UL‘)[0];

function Expand() {
var evt = window.event;
if(innerList && evt.fromElement &&
!contains(evt.fromElement))
innerList.style.display = „block“;
}

function Collapse() {
var evt = window.event;
if(innerList && evt.toElement &&
!contains(evt.toElement))
innerList.style.display = „“;
}

Der Conditional-Comment für den IE, in dem du die
HTC-Datei mit dem Javascript referenzierst, sieht dann so
aus.

danke für den code aber mein ziel ist es ohne JS aus zu kommen da viele user javascriptblockieren.

Bei mir flackert der Mouseover aber im IE6 gleich
arg, egal, ob ich nun das von Microsoft vorgesehenene
„Behavior“ verwende oder ob ich „expression()“ missbrauche. Ob
das bei einem älteren Rechner auch beides zum Absturz führen
kann oder ob das eine günstiger ist als das andere, musst du
austesten. Bitte berichte mir dann, denn das interessiert mich
auch.

naja ich kann das irgenwie nicht testen weil es ja bei mir nicht geht. wie gesagt es muss an der ie-weiche liegen. da firefox keine probs hatte.

aber ich werde mih wieder melden. ich habe fast eine lösung für beider ie und nonie. aber ich muss noch etwas änderen und ihn noch mit ie7 testen. mit firefox und ie6 geht der pure css code wunderbar.

Gruß Gernot

ebenfalls einen gruss
und frohe weihnachten.
sam

Hallo Sam,

Ja, mit den expression()-Aufrufen habe ich Missbrauch
getrieben, wie du ja auch an dem „Lamm & Co“ merkst. Das vor
dem Doppelpunkt hättest du ohne weiteres auch weglassen
können. Eigentlich hat Microsoft hier etwas anderes
vorgesehen, nämlich „behavior:“.

ich habe nur leider nichts verstanden. was für einen
missbrauch??

Expressions in CSS sind eigentlich zur Berechnung von Werten gedacht, die man CSS-Eigenschaften zuweisen will, wie z.B.
width:expression(this.parentNode.offsetWidth-10);würde dem Element die Weite seines Elternelements verpassen abzüglich 10 Pixeln. Expression iat aber von Microsoft nicht gedacht, um unmotiviert, ohne Wertzuweisung irgendwelchen Javascript-Code auszuführen, wie ich das gemacht habe, das war ein Missbrauch.

Deshalb habe ich auch die CSS-Eigenschaften auch der-wolf, das-lamm und der-habicht gewählt, bei denen man sofort erkennt, dass es sie nicht wirklich gibt, sondern dass ich dich damit auf die Schüppe nehmen wollte. Das Javascript in dem fiktiven zugewiesenen Nonsens-Wert funktioniert aber, wie du siehst.

Dazu legst du dir erst einmal eine Textdate an und speicherst
diese aber nicht mit der Erweiterung „.txt“ sondern „.htc“ ab.

und wie geht das???

Ganz einfach, du speicherst dir den nachfolgenden Code mit einem einfachen Editor als HTC-Datei ab

speichern unter ->
als Dateinamen wählst du z.B. „hover.htc“

var innerList = getElementsByTagName(‚UL‘)[0];
function Expand() {
var evt = window.event;
if(innerList && evt.fromElement &&
!contains(evt.fromElement))
innerList.style.display = „block“;
}
function Collapse() {
var evt = window.event;
if(innerList && evt.toElement &&
!contains(evt.toElement))
innerList.style.display = „“;
}

Der Conditional-Comment für den IE, in dem du die
HTC-Datei mit dem Javascript referenzierst, sieht dann so
aus.

danke für den code aber mein ziel ist es ohne JS aus zu kommen
da viele user javascript blockieren.

Dann wirst du den IE6 niemals zum Hovern anderer Elemente als dem A-Element bringen. In A-Elementen darfst du aber keine Tabellen schachteln und erst recht keine anderen Links. Sonst ist es kein valider Code und vernünftige Browser müssen ihn ignorieren.

aber ich werde mih wieder melden. ich habe fast eine lösung
für beider ie und nonie. aber ich muss noch etwas änderen und
ihn noch mit ie7 testen. mit firefox und ie6 geht der pure css
code wunderbar.

Sobald ein CSS-Code „behavior“ oder „expression“ enthält, ist es kein purer CSS-Code, auch wenn er so aussieht. Weder „behavior“ noch „expression“ wird im IE ohne aktiviertes Javascript funktionieren.

Damit sind wir ja wieder beim Ausgangspunkt unserer Diskussion:

Der IE ist einfach ein defekter Browser, der ohne Javascript-Krücken oder invaliden Code, den dann zu Recht kein anderer Browser versteht, nicht richtig funktionieren kann.

Gruß Gernot

Der IE ist einfach ein defekter Browser, der ohne
Javascript-Krücken oder invaliden Code, den dann zu Recht kein
anderer Browser versteht, nicht richtig funktionieren kann.

naja man kann ja eine weiche verwenden. ein invalider code für ie und ein guter code für nonie.

jetzt noch eine andere frage.
ich hab jetzt ein css-code der in opera und in ie7 geht aber in firefox geht er nicht. das heisst man sieht das menü zwar aber wenn man mit der maus drüber fährt kommt das dropdown-menü nicht :frowning: .
hat firefox etwa auch probleme mit css?
gruss
sam

naja man kann ja eine weiche verwenden. ein invalider code für
ie und ein guter code für nonie.

Und zu welchem Zweck? So einen Aufwand muss man idR nicht betreiben, lieber löst man seine Problemstellung auf etwas andere Weise oder verzichtet auf den ein oder anderen Schnickschnack. Wenn man anfängt, Browserweichen zu bauen, schreibt man sich entweder den Wolf, weil man versucht alle Browser und solche, die sich so nennen, zu unterstützen, womöglich noch Weichen für andere Clients, die nicht Browser sind, oder aber man schließt damit absichtlich bestimmte Clients aus, was im Allgemeinen nicht sinnvoll sein kann.

ich hab jetzt ein css-code der in opera und in ie7 geht aber
in firefox geht er nicht.

Meine erste Vermutung wäre, Dein Code ist falsch.

hat firefox etwa auch probleme mit css?

Wenn überhaupt dann sicherlich nur einen Bruchteil von dem, was der IE hat. Wohingegen Opera mittlerweile auch sehr gut ist.

Aber die Frage ist mit den Angaben IMHO nicht zu beantworten. Wenn etwas im IE „geht“, aber in Firefox nicht, würde ich immer von einem Fehler im Code ausgehen.

Gruß,
-Efchen

Meine erste Vermutung wäre, Dein Code ist falsch.

kann nicht sein ich hab den code von einer css-code-website.

Wenn überhaupt dann sicherlich nur einen Bruchteil von dem,
was der IE hat. Wohingegen Opera mittlerweile auch sehr gut
ist.

nun es ist so dass alles super funkzt wenn ich im firefox die html-datei die ich auf meinem pc hab öffne. aber wenn ich die selbe datei hochlade und sie mit firefox anschauen will dann kommt eben das dropdown-menü nicht mehr.

sam

ps übrigens kannst du aufhören von „solchen die sich borwser nennen“ zu reden.
über 50 % von allen nutzer benützen ie.
und das steht hier eh nicht zur diskusion da ich WILL das es bei ie’s auch geht.

Meine erste Vermutung wäre, Dein Code ist falsch.

kann nicht sein ich hab den code von einer css-code-website.

Gefährlicher Trugschluss :smile:

nun es ist so dass alles super funkzt wenn ich im firefox die
html-datei die ich auf meinem pc hab öffne. aber wenn ich die
selbe datei hochlade und sie mit firefox anschauen will dann
kommt eben das dropdown-menü nicht mehr.

Dann sind die Einstellungen Deiner beiden Server u.U. anders
oder der Code ist nicht vollständig hochgeladen. Weil, CSS wird
ja nicht auf dem Server ausgeführt.

ps übrigens kannst du aufhören von „solchen die sich borwser
nennen“ zu reden.

Nein, wieso? Wenn ein aktueller „Browser“ nicht die aktuellen Standards
unterstützt, hat er den Namen nicht verdient. Denn er erweckt den Eindruck,
er könne mit der Masse mithalten.
Billigware nennt man auch nicht „Markenartikel“.

über 50 % von allen nutzer benützen ie.

Das mag sein, das sagt jedoch sonst nichts aus.

und das steht hier eh nicht zur diskusion da ich WILL das es
bei ie’s auch geht.

Das will jeder. Aber wenn der Browser etwas in Bezug auf CSS nicht kann,
dann muss man sich u.U. was anderes überlegen. Denn dann nützt es auch
nichts, wenn man das „WILL“, dass das geht. Genausowenig, wie Du dem Netscape 4
komplexe CSS-Formatierungen beibringen kannst :smile:

Schönen Sonntag noch,
-Efchen