Igor Stroh: W3C Standarts

hi zusammen,

ich stehe mal wieder vor einem problem, ich bin dabei ein web-shop in PHP zu schreiben (bzw. bin schon fast fertig) und habe von anfang an auf JS und ähnlichen client-seitigen kram (*duck*) verzichtet um so "systemunabhängig" wie nur möglich zu bleiben, ich halte mich (fast) immer an W3C vorgaben etc ...
nun das problem an sich : ich habe einen header der ein paar grafiken enthält, diese (sehr kleine) grafiken hatte ich am anfang als hitergrund einer tabelle gesetzt ... der Homesite HTML Validator meint, dass es laut HTML 4.0 keinen background attribut für <td> - tags gäbe, tidy schweigt sich dezent aus und auf der W3C seite habe ich auch nichts gefunden ... fakt ist, dass IE und communicator den code "richtig" interpretieren (sprich so wie ich es will *g*), Opera jedoch, der für seite kompromisslose härte gegenüber dirty code bekannt ist, die seite gar nicht mag ... um das problem zu umgehen habe ich die grafiken nun nicht mehr als hintergrund, sondern ganz normal eingebunden und skaliert (ca. 100-fach in width) ... IE zeigt alles an, Netscape und Opera streiken ... außerdem meint der HTML Validator von Homesite, dass prozentangaben für width bzw height o.ä. attribute seit HTML3.2 nicht erlaubt sind, man solle stattdessen "positive, non zero integer" verwenden, aber wie soll man dann frei skalierbare seiten gestalten denen die bildschirmauflösung egal ist ???

sagt mal was dazu, ich bin schon an der grenze des wahnsinns ... bis jetzt hab ich es mit workarounds immer irgendwie geschafft die browser zu verar******, aber wenn es so weiter geht dann schreib' ich mir meinen eigenen *g*

TIA
bye
Igor

  1. Hi Igor!

    der Homesite HTML Validator meint, dass es laut HTML 4.0 keinen background attribut für <td> - tags gäbe, tidy schweigt sich dezent aus und auf der W3C seite habe ich auch nichts gefunden ...

    Tja, der Valligator hat mal wieder zugeschlagen. Das Attribut background für Tabellen ist wirklich kein offizielles (Nachzuweisen mit http://validator.w3.org/ :-).

    um das problem zu umgehen habe ich die grafiken nun nicht mehr als hintergrund, sondern ganz normal eingebunden und skaliert (ca. 100-fach in width) ... IE zeigt alles an, Netscape und Opera streiken ... außerdem meint der HTML Validator von Homesite, dass prozentangaben für width bzw height o.ä. attribute seit HTML3.2 nicht erlaubt sind, man solle stattdessen "positive, non zero integer" verwenden, aber wie soll man dann frei skalierbare seiten gestalten denen die bildschirmauflösung egal ist ???

    Frei skalierbare Sites sind ohne weiteres möglich - wenn du Tabellen benutzt. Bei Grafiken sind Prozent-Angaben aber nicht erlaubt.

    sagt mal was dazu, ich bin schon an der grenze des wahnsinns ...

    Zweifellos ein weiteres Opfer des Valligators. Ich hoffe, dass der Chat-Termin zu diesem Thema bald stattfindet, damit den "Geschändeten" geholfen werden kann :-)

    MfG Simon

    1. Tja, der Valligator hat mal wieder zugeschlagen. Das Attribut background für Tabellen ist wirklich kein offizielles (Nachzuweisen mit http://validator.w3.org/ :-).

      danke, das wäre dann geklärt :)

      Frei skalierbare Sites sind ohne weiteres möglich - wenn du Tabellen benutzt. Bei Grafiken sind Prozent-Angaben aber nicht erlaubt.

      schön und gut, aber wie soll ich denn nun die grafik auf die volle bildschirmbreite skallieren ?
      <td width="100%"><img src="blub.gif" width="100%" height="20"></td>
      darf ich ja nun nicht verwenden, wegen `width="100%"' und wenn ich die breitenangabe bei der grafik weglasse dann wird zwar die zelle auf 100% skalliert, aber nicht das bild ...

      gruss
      Igor

      1. Da sehe ich nur eine Möglichkeit: Bildschirmbreite mit JS feststellen und für jede Auflösung eine eigene, vergrößerte Grafik herstellen bzw. dynamisch die width-Attribute festlegen :-(

        Aber warum soll die Grafik denn auch so groß sein? Ich sehe da keinen Anwendungsfall für. Die wird doch dann auch fürchterlich verpixelt. Sag mir doch mal deine URL, vielleicht erkenne ich ja dann den Sinn deines Vorhabens :-)

        MfG Simon

        1. Da sehe ich nur eine Möglichkeit: Bildschirmbreite mit JS feststellen und für jede Auflösung eine eigene, vergrößerte Grafik herstellen bzw. dynamisch die width-Attribute festlegen :-(

          Dann lieber gegen W3C verstoßen und sich daran ausrichten was die Browser können: width="100%"!

          Das ist IMHO sinnvoller, als JS einzusetzen...

          mfg
          jens

        2. Da sehe ich nur eine Möglichkeit: Bildschirmbreite mit JS feststellen und für jede Auflösung eine eigene, vergrößerte Grafik herstellen bzw. dynamisch die width-Attribute festlegen :-(

          ich will kein JS verwenden :)

          Aber warum soll die Grafik denn auch so groß sein? Ich sehe da keinen Anwendungsfall für. Die wird doch dann auch fürchterlich verpixelt. Sag mir doch mal deine URL, vielleicht erkenne ich ja dann den Sinn deines Vorhabens :-)

          sinn : ich will es so *g*
          die grafik wird nicht verpixelt, es ist mehr oder weniger eine einfache farbabstufung von (oben) blau nach (unten) schwarz die ich der breite nach skalliere,
          originalgrösse : 5x15 pixel,
          skalliert : [fensterbreite]x15 pixel

          1. die grafik wird nicht verpixelt, es ist mehr oder weniger eine einfache farbabstufung von (oben) blau nach (unten) schwarz die ich der breite nach skalliere,

            Wie währe es mit der Grafik als vollbreiter (1024px) Streifen im body-background? CSS.norepeat sorgt dafür das der Streifen nur einmal ganz oben erscheint. Die Grafik ist dann zwar größer aber man muss keine all zu großen Verrenkungen machen.

            Auf der anderen Seite: Muß es wirklich total W3C-Konform sein ? *g*

            1. Wie währe es mit der Grafik als vollbreiter (1024px) Streifen im body-background? CSS.norepeat sorgt dafür das der Streifen nur einmal ganz oben erscheint. Die Grafik ist dann zwar größer aber man muss keine all zu großen Verrenkungen machen.

              stimmt, aber dann kann ich ja gleich komplette screenshots in photoshop basteln, imagemaps erstellen und ne diashow veranstalten :P
              ich hab halt darauf geachtet, dass das ganze mehr oder weniger schnell geladen werden kann, die MySQL queries für den shop brauchen schon lange genug, da will ich die leute nicht mit grossen grafiken quälen ... übrigens, 1024px reicht nicht, ich selber fahre 1280 :)

              Auf der anderen Seite: Muß es wirklich total W3C-Konform sein ? *g*

              der cheff will's so also muß es das *g*

    2. Bei Grafiken sind Prozent-Angaben aber nicht erlaubt.

      Das ist nicht richtig. [http://www.w3.org/TR/REC-html40/struct/objects#edef-IMG]

      http://www.bjoernsworld.de/

      1. Bei Grafiken sind Prozent-Angaben aber nicht erlaubt.

        Das ist nicht richtig. [http://www.w3.org/TR/REC-html40/struct/objects#edef-IMG]

        OK, aber es scheint ja trotzdem nicht zu funktionieren.

  2. Hallo Igor!

    ich halte mich (fast) immer an W3C vorgaben etc ...

    "fast immer" ist die richtige Einstellung, denn ...

    »»fakt ist, dass IE und communicator den code "richtig" interpretieren (sprich so wie ich es will *g*),

    dies wäre der Fall, wo du den Standard links liegen lassen könntest.

    sagt mal was dazu, ich bin schon an der grenze des wahnsinns ... bis jetzt hab ich es mit workarounds immer irgendwie geschafft die browser zu verar******, aber wenn es so weiter geht dann schreib' ich mir meinen eigenen *g*

    Abrakadabra...simsala bimm ...simsala bumm ...
    das Zauberwort heisst: CSS

    [tip getestet mit NS 4.5 und IE 4 / 5 ]
    td { background-image:url(bild.gif); }     Geht mit NS  und IE
    <td style="background-image:url(bild.gif);"> geht mit IE und NS

    Dann hat kein Validator was zu meckern und du du bewahrst deinen gesunden Menschenverstand.

    Grüße
    Thomas

    1. [tip getestet mit NS 4.5 und IE 4 / 5 ]
      td { background-image:url(bild.gif); }     Geht mit NS  und IE
      <td style="background-image:url(bild.gif);"> geht mit IE und NS

      danke für den tip, da hätte ich eigentlich als CSS verfechter selbst drauf kommen können :) leider funktioniert's nicht ganz, NS 4.7 zeigt die bilder nicht an ...

      1. [tip getestet mit NS 4.5 und IE 4 / 5 ]
        td { background-image:url(bild.gif); }     Geht mit NS  und IE
        <td style="background-image:url(bild.gif);"> geht mit IE und NS

        danke für den tip, da hätte ich eigentlich als CSS verfechter selbst drauf kommen können :) leider funktioniert's nicht ganz, NS 4.7 zeigt die bilder nicht an ...

        des rätsels lösung : NS mag in diesem fall keine transparente gifs, also einfach transparenz rauswerfen und er zeigt alles wunderbar an