min-width bei Internet Explorer funktioniert nicht.
Rocco
- barrierefreiheit
0 Markus Pitha
Hallo Gemeinde.
Ich habe ein barrierefreies Web aufgebaut was voller DIVs ist(ohne Tabellen). In einem der DIVs ist meine Horizontalnavigation.
Da sie ein Hintergrundbild hat, soll sie nicht umbrechen.
In Mozilla etc. reichte das Attribut min-width und alles war prima.
Der IE ist davon aber vollends unbeeindruckt.
Die Hintergrundgrafik soll aber bis rüber gehen, eine feste Breite mit width ist daher auch eher schlecht.
Was gibt es denn für einen min-width-Ersatz?
Ich hatte mittlerweile so viele Bugs im IE, dass er seine eigene CSS bekommt. Es muss also in keinem anderen Browser funktionieren.
Hi,
welcher IE? denn der IE 5.x interpretiert min-width nicht.
Markus.
Hi,
welcher IE? denn der IE 5.x interpretiert min-width nicht.Markus.
IE6 SP1
Aber es muss ja letzlich in allen funzen
Aber es muss ja letzlich in allen funzen
Nein, ich glaube auf Internet Explorer 1.x (hab ich nie gesehen), 2.x und sogar 3.x brauchst du nicht mehr zu berücksichtigen. ;-)
Der Yeti
Aber es muss ja letzlich in allen funzen
Nein, ich glaube auf Internet Explorer 1.x (hab ich nie gesehen), 2.x und sogar 3.x brauchst du nicht mehr zu berücksichtigen. ;-)
Der Yeti
Naja, es geht ja auch nicht in der 6 oder 5
Es geht ja gar nicht.
Hi,
Es geht ja gar nicht.
richtig erkannt. Daher wirst Du nicht umhin kommen, ein sonst nutzloses Element mit fester Breite einzufügen.
freundliche Grüße
Ingo
Hi,
Es geht ja gar nicht.
richtig erkannt. Daher wirst Du nicht umhin kommen, ein sonst nutzloses Element mit fester Breite einzufügen.
Danke Ingo, du sagst es!
Platzhalter-GIF?
Ist doch echt Kacke.
Ich habe bisher nicht ein einziges GIF oder eine Layout-Tabelle und jetzt so etwas?
habe d'ehre
Ich habe bisher nicht ein einziges GIF oder eine Layout-Tabelle und jetzt so etwas?
Beschwere Dich bei Microsoft. :-)
Du kannst evtl. mit Conditional Comments innerhalb <head></head> was !basteln!
<!--[if IE]>
<style type="text/css">
div.deinelementmitminwidth {width:99px;}
</style>
<![endif]-->
man liest sich
Wilhelm
Hi Ingo,
Es geht ja gar nicht.
Daher wirst Du nicht umhin kommen, ein sonst nutzloses Element mit fester Breite einzufügen.
mit Expressions wäre das allerdings vermeidbar:
#bla {
width:expression((body.clientWidth<=200)?"200px":"auto");
}
200 steht in diesem Beispiel für die Mindestbreite.
http://msdn.microsoft.com/workshop/author/dhtml/overview/recalc.asp
Grüße,
Roland
Hi,
mit Expressions wäre das allerdings vermeidbar:
was aber AFAIK instabil laufen kann und bei entsprechend hoch eingestellter Sicherheit nicht wirkt. Und zum hier gewählten Thema scheint es mir auch nicht so ganz zu passen.
freundliche Grüße
Ingo
Hi Ingo,
mit Expressions wäre das allerdings vermeidbar:
was aber AFAIK instabil laufen kann
das kann ich nicht beurteilen, dafür setze ich diese Dinge nicht oft genug ein. Ich denke aber, dass Expressions vertretbar sind, solange man es nicht übertreibt.
und bei entsprechend hoch eingestellter Sicherheit nicht wirkt.
Das ist in der Tat ein Gegenargument.
Und zum hier gewählten Thema scheint es mir auch nicht so ganz zu passen.
Warum das?
Grüße,
Roland
Hi,
Und zum hier gewählten Thema scheint es mir auch nicht so ganz zu passen.
Warum das?
weil das "Funtionieren" einer Seite grundsätzlich nicht von Javascript abhängig gemacht werden soll.
Allerdings mag hier im Speziellen zutreffen, daß nur ein kleiner Schönheitsfehler im IE ausgebügelt werden soll, der keinen Einfluß auf die Nutzung der Seite hat. Wenn allerdings die Hintergrundgrafik nicht nur eine Dekofunktion hat, sähe das anders aus.
freundliche Grüße
Ingo
Hi Ingo,
Und zum hier gewählten Thema scheint es mir auch nicht so ganz zu passen.
Warum das?
weil das "Funtionieren" einer Seite grundsätzlich nicht von Javascript abhängig gemacht werden soll.
das lasse ich aus dem Grund nicht gelten, dass die CSS-Mängel eine viel größere Barriere darstellen (können). Expressions erhöhen die Chance, dass das Layout korrekt dargestellt wird, sie schließen aber in keinem Fall jemanden aus.
Allerdings mag hier im Speziellen zutreffen, daß nur ein kleiner Schönheitsfehler im IE ausgebügelt werden soll, der keinen Einfluß auf die Nutzung der Seite hat. Wenn allerdings die Hintergrundgrafik nicht nur eine Dekofunktion hat, sähe das anders aus.
ACK.
Grüße,
Roland
Hallo Roland,
das kann ich nicht beurteilen, dafür setze ich diese Dinge nicht oft genug ein. Ich denke aber, dass Expressions vertretbar sind, solange man es nicht übertreibt.
du meinst etwas geht immer? Oder gesundes Mittelmaß?
Bei Expressions handelt es sich um DHTML-Schleifen die auch die CPU belasten. Insofern ist gegen eine Expression erstmal wenig einzuwenden, nach meinen Erfahrungen können aber schon drei bis vier Expressions einen Seitenaufbau massiv verzögern.
Dazu wird hier schon trotz eines durchaus möglichen Standpunkts "einmal wird schon gutgehen" das Grundprinzip bestätigt Expressions grundsätzlich zu vermeiden. Dann gibt es noch nachvollziehbar Konstruktionen die instabil sind, teilweise abhängig vom Doctype. Ein Grund mehr expression zu vermeiden da ein erfolgreicher Test u.U. als Kontrolle auch nicht ausreicht.
Wenn JavaScript beim IE, dann geht es aber auch ohne Expression: http://www.lipfert-malik.de/webdesign/tutorial/bsp/ie-max-min-width.html, da ist ein Script zur Erzeugung einer Tabelle für den IE beschrieben. Durch den einmaligen Ablauf wird eine Schleife vermieden, und Probleme hinsichtlich der Barrierefreiheit sehe ich erstmal nicht da die Tabelle sich mit einer Zelle wie ein einfacher Container verhält.
Grüsse
Cyx23
Hi Kristof,
Ich denke aber, dass Expressions vertretbar sind, solange man es nicht übertreibt.
du meinst etwas geht immer? Oder gesundes Mittelmaß?
definierst du das gesunde Mittelmaß denn bei < 1?
Bei Expressions handelt es sich um DHTML-Schleifen die auch die CPU belasten.
Erstens gehört die Scripting-Engine des M$IE zu den schnellsten überhaupt und zweitens kann ich die Schleife in den von mir eingesetzten Beispielen (max-width für body) nicht nachvolliehen. Die Darstellung wird ausschließlich bei Veränderung der Fenstergröße neu berechnet -- wie sonst auch.
Insofern ist gegen eine Expression erstmal wenig einzuwenden, nach meinen Erfahrungen können aber schon drei bis vier Expressions einen Seitenaufbau massiv verzögern.
Deshalb mein Hinweis, es nicht zu übertreiben. Ich habe allerdings nur davon gelesen, es noch nicht selbst erlebt. Hast du vielleicht ein Beispiel parat?
Dazu wird hier schon trotz eines durchaus möglichen Standpunkts "einmal wird schon gutgehen" das Grundprinzip bestätigt Expressions grundsätzlich zu vermeiden.
Manches lässt sich aber bei einem Verzicht darauf kaum bis gar nicht realisieren.
Dann gibt es noch nachvollziehbar Konstruktionen die instabil sind, teilweise abhängig vom Doctype. Ein Grund mehr expression zu vermeiden da ein erfolgreicher Test u.U. als Kontrolle auch nicht ausreicht.
Das kann ich nicht ganz nachvollziehen. Der Doctype wird einmal festgelegt und ändert sich danach nicht mehr. IMHO sollte daher ein Test mit allen Versionen, die Expressions unterstützen ausreichen.
http://www.lipfert-malik.de/webdesign/tutorial/bsp/ie-max-min-width.html
Hier fehlt die Überwachung eventueller Fensteränderungen. Abgesehen davon ist diese Methode als gleichwertig anzusehen.
Grüße,
Roland
Hallo Roland,
definierst du das gesunde Mittelmaß denn bei < 1?
es gibt ja auch verschiedene Ansätze was beim Netscape 4 an CSS zumutbar ist...
Eine Faustregel müsste für vorsichtige Naturen schon sein expressions ganz zu vermeiden, andererseits läßt sich sehr schön damit nachhelfen.
Erstens gehört die Scripting-Engine des M$IE zu den schnellsten überhaupt und zweitens kann ich die Schleife in den von mir eingesetzten Beispielen (max-width für body) nicht nachvolliehen. Die Darstellung wird ausschließlich bei Veränderung der Fenstergröße neu berechnet -- wie sonst auch.
Also ich würde das mit setInterval vergleichen, if(body.clientWidth>500) ...style.width.. usw., d.h. es wird alle 1/10 Sekunde o.ä. geprüft, also bereits hier die Schleife. Weiterhin vermute ich mal dass auch der Style neu gesetzt wird, ob da auch neu gerendert wird wäre nochmal ein anderes Thema, vmtl. nicht.
Insofern ist gegen eine Expression erstmal wenig einzuwenden, nach meinen Erfahrungen können aber schon drei bis vier Expressions einen Seitenaufbau massiv verzögern.
Deshalb mein Hinweis, es nicht zu übertreiben. Ich habe allerdings nur davon gelesen, es noch nicht selbst erlebt. Hast du vielleicht ein Beispiel parat?
Da hatte ich für meine Beispiel-Seiten eine IE-Variante entwickelt, der Seitenaufbau hat sich um einige Sekunden verzögert, ich hab dann doch em eingesetzt, ähnlich wie:
span.test, p, ul {font-size:expression(parseInt(document.body.currentStyle.fontSize)*1.15+'px');
line-height:expression(parseInt(document.body.currentStyle.fontSize)*1.45+'px')}}
p.foo small, p.foo {font-size:expression(parseInt(document.body.currentStyle.fontSize)*.8+'px')}
div.code, div.cd, div.nr, pre {font-size:expression(parseInt(document.body.currentStyle.fontSize)+'px');
line-height:expression(parseInt(document.body.currentStyle.fontSize)*1.2+'px')}
div.code, div.smp {width:expression(parseInt(document.body.currentStyle.fontSize)*50+'px');}
div.code,div.smp{ margin-left:expression(document.body.clientWidth*0.1);}
Das kann ich nicht ganz nachvollziehen. Der Doctype wird einmal festgelegt und ändert sich danach nicht mehr. IMHO sollte daher ein Test mit allen Versionen, die Expressions unterstützen ausreichen.
Es ist doch schon vorstellbar dass du bei einem Projekt den Rendermodus/ doctype des IE ändern möchtest?
Über eine Absturzvariante ist vielleicht auch etwas im Archiv zu finden.
Ansonsten ist es schon sehr aufwändig z.B. bei Fenstergrössenänderungen alle Abläufe zu erwischen, dein "ein Test mit allen Versionen, " wird schon bei einem Browser ein äusserst ausgiebiges Programm, und wenn je nach Layout auch noch die eingestellte Schriftgrösse wichtig ist weil diese indirekt die Breiten von Elementen beeinflusst ...
Grüsse
Cyx23