MIK: Statt Farbcode sechs Leerstellen: Tragisch oder kein Problem?

Hallo!

Ist es tragisch, wenn im CSS

td.tabTitel { background-color: #      ; }

notiert wird, also statt der Farbangabe sechs Leerstellen? Der interpretationsfreudige IE macht keine Schwierigkeiten (Tabelle wird durchsichtig dargestellt), andere Browser kann ich z.Zt. nicht ausprobieren.

Das gleiche gilt für eine Hintergrund-Grafik, dem IE ist es wurst, zicken andere Browser evtl. rum, wenn

background-image:url();

notiert wird?

Relativ überflüssige Erläuterung: Ich bastele mit PHP eine Funktion, die eine .css-Datei erzeugt. Diese Datei wird vorher eingelesen und die entsprechenden Angaben werden in input-Felder eingetragen. Das habe ich mit

$tabTitel = substr("$Daten[3]", 32, 6);

gemacht, brauche also die exakte Position der Notierungen.

Problem: Wenn eine Tabelle keine Hintergrundfarbe haben soll, spart man sich normalerweise den Eintrag "background-color:". Spar ich mir den, funktioniert das PHP oben nicht mehr.

Ich bin mit dem Script auch schon fertig, hab da zu spät dran gedacht und will das auslesen nur ändern, wenn es wirklich sein muss...

Viele Grüße,

MIK

  1. Hi MIK,

    die Tatsache, dass die Leerzeichen im Internet Explorer an dieser Stelle nichts bewirken, lässt sich wohl kaum auf beliebige andere Clients übertragen. Sicher ist nur, dass CSS und jeder CSS-Interpreter an dieser Stelle eine gültige Farbangabe erwarten. Besonders sauber ist deine Lösung also nicht.
    Besser, du gehst das Problem auf PHP-Ebene an:
    $tabTitel = substr("$Daten[3]", 32, 6);
    Hier könntest du auch mit einer regular expression arbeiten, also mit preg_replace() oder so was. Dabei könntest du dann auch den gesamten identifier "background-color" entfernen, wenn keine Farbe verwendet werden soll.

    <Nutz-Nießer>

    1. Hallo Nutz-Nießer,

      die Tatsache, dass die Leerzeichen im Internet Explorer an dieser Stelle nichts bewirken, lässt sich wohl kaum auf beliebige andere Clients übertragen. Sicher ist nur, dass CSS und jeder CSS-Interpreter an dieser Stelle eine gültige Farbangabe erwarten. Besonders sauber ist deine Lösung also nicht.

      Stimmt...

      Besser, du gehst das Problem auf PHP-Ebene an:

      Ja, ich fürchte es fast, aber um mich selbst zu zitieren:

      "Ich bin mit dem Script auch schon fertig, hab da zu spät dran gedacht und will das auslesen nur ändern, wenn es wirklich sein muss..."

      Wäre ein ziemlicher Aufwand.. :-/

      1. Hallo,

        ...um mich selbst zu zitieren:

        "Ich bin mit dem Script auch schon fertig, hab da zu spät dran gedacht und will das auslesen nur ändern, wenn es wirklich sein muss..."

        Wäre ein ziemlicher Aufwand.. :-/

        stell Dir vor, Du hast ein Auto bestellt, angezahlt, es wird mit saftiger Rechnung geliefert, Du beschwerst Dich, daß die Räder fehlen und der Hersteller teilt Dir mit: "das Auto ist schon fertig, an die Räder haben wir leider zu spät gedacht, eine Änderung im Nachhinein wäre doch ein ziemlicher Aufwand". Was würdest Du antworten?

        Gruß, Andreas

        --
        <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
        http://was-ist-das.andreas-lindig.de
        1. Hi Andreas,

          Wäre ein ziemlicher Aufwand.. :-/

          stell Dir vor, Du hast ein Auto bestellt, angezahlt, es wird mit saftiger Rechnung geliefert, Du beschwerst Dich, daß die Räder fehlen und der Hersteller teilt Dir mit: "das Auto ist schon fertig, an die Räder haben wir leider zu spät gedacht, eine Änderung im Nachhinein wäre doch ein ziemlicher Aufwand". Was würdest Du antworten?

          Ich würde was wie "so aber nich, Freundchen! >:-/" antworten. Wenn der mir dann aber sagte "Moment, das fährt aber trotzdem einwandfrei!" würde ich mindestens mal für's Grübeln innehalten.

          Mein kindlich-naiver Gedankengang ging halt in die Richtung, dass CSS sagt, welche Farbe und welches Bild. Wenn CSS sagt: Keine Farbe, kein Bild, hm, dann kommt halt keine Farbe und kein Bild.

          Aber wie schon bemerkt: Ich seh's ja ein.

          1. hi,

            Mein kindlich-naiver Gedankengang ging halt in die Richtung, dass CSS sagt, welche Farbe und welches Bild. Wenn CSS sagt: Keine Farbe, kein Bild, hm, dann kommt halt keine Farbe und kein Bild.

            ist denn eine erweiterung des scriptes um eine abfrage "wenn kein wert angegeben, dann schreibe transparent bzw. inherit" so aufwendig ...?

            gruss,
            wahsaga

            1. Hi,

              ist denn eine erweiterung des scriptes um eine abfrage "wenn kein wert angegeben, dann schreibe transparent bzw. inherit" so aufwendig ...?

              ... zumal inherit exakt soviele Zeichen hat wie "#      ".

              freundliche Grüße
              Ingo

            2. Hallo wahsaga,

              ist denn eine erweiterung des scriptes um eine abfrage "wenn kein wert angegeben, dann schreibe transparent bzw. inherit" so aufwendig ...?

              Tja, aufwendig ist relativ, die Hintergrundfarbe zu ändern ging schnell, weil inherit genauso viele Zeichen wie #xxxxxx hat. Dumm war dabei nur, dass ich allein die xxxxxx als Variable hatte. Problematischer ist dagegen das Hintergrundbild, da muss dann erst gekuckt werden, ob es überhaupt vorhanden ist und so weiter.. Bin noch nicht fertig, sicher insgesamt an die drei Stunden, however:

              Strafe muss sein.. ;)

              1. Tja, aufwendig ist relativ, die Hintergrundfarbe zu ändern ging schnell, weil inherit genauso viele Zeichen wie #xxxxxx hat. Dumm war dabei nur, dass ich allein die xxxxxx als Variable hatte. Problematischer ist dagegen das Hintergrundbild, da muss dann erst gekuckt werden, ob es überhaupt vorhanden ist und so weiter..

                meiner Meinung nach ist es schon falsch, die Datei so auszulesen, daß Du die Zeichen zählst. Das ist viel zu starr - wie Du jetzt feststellen mußt. Ich würde da eindeutige Trennzeichen definieren (z.B. /*farben*/, /*Bilder*/, ...), bzw. eine extra Datei anlegen mit solchen Zeichen, daraus die Daten in ein Array einlesen und damit dann die CSS-Datei schreiben.

                Gruß, Andreas

                --
                <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
                http://was-ist-das.andreas-lindig.de
                1. Hi Andreas,

                  meiner Meinung nach ist es schon falsch, die Datei so auszulesen, daß Du die Zeichen zählst. Das ist viel zu starr - wie Du jetzt feststellen mußt.

                  Ich musste lediglich feststellen, dass ich die Konzeptionsphase vernachlässigt habe.

                  Ich würde da eindeutige Trennzeichen definieren (z.B. /*farben*/, /*Bilder*/, ...),

                  Oder vielleicht "background-color", "background-image"..? Die .css ist eindeutig.

                  bzw. eine extra Datei anlegen mit solchen Zeichen, daraus die Daten in ein Array einlesen und damit dann die CSS-Datei schreiben.

                  Erwogen hatte ich das auch, weil es einfacher zu programmieren wäre. Halte es aber für unelegant und -übersichtlich, diese "extra Datei" müsste dann bei jeder Änderung auch neu geschrieben werden, ein völlig unnötiger zusätzlicher Prozess. Extra Dateien mag ich - Meinung! - prinzipiell überhaupt nicht.

                  Schläfrigen Gruß,

                  MIK

          2. Hi,

            Ich würde was wie "so aber nich, Freundchen! >:-/" antworten. Wenn der mir dann aber sagte "Moment, das fährt aber trotzdem einwandfrei!" würde ich mindestens mal für's Grübeln innehalten.

            solange bis Du feststellst, dass "es fährt einwandfrei" nur auf Schienen gilt.

            Wenn CSS sagt: Keine Farbe, kein Bild, hm, dann kommt halt keine Farbe und kein Bild.

            "Keine Farbe" gibt es nicht. Höchstens "transparent" oder "inherit".

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hallöle!

              Ich würde was wie "so aber nich, Freundchen! >:-/" antworten. Wenn der mir dann aber sagte "Moment, das fährt aber trotzdem einwandfrei!" würde ich mindestens mal für's Grübeln innehalten.

              solange bis Du feststellst, dass "es fährt einwandfrei" nur auf Schienen gilt.

              Ist das denn der Fall? Zeigt dabei irgendein Browser Farbe oder Bild an?

              Wenn CSS sagt: Keine Farbe, kein Bild, hm, dann kommt halt keine Farbe und kein Bild.

              "Keine Farbe" gibt es nicht. Höchstens "transparent" oder "inherit".

              Ja, kindlich-naiv, so is der MIK. :o)

  2. Hi,

    Ist es tragisch, wenn im CSS
    td.tabTitel { background-color: #      ; }
    notiert wird, also statt der Farbangabe sechs Leerstellen?

    ja. "#" ist keine gültige Farbe; die Leerstellen werden eh ignoriert.

    background-image:url();

    Das ist keine gültige URL.

    Relativ überflüssige Erläuterung: Ich bastele mit PHP eine Funktion, die eine .css-Datei erzeugt.

    Dann erzeuge eine gültige solche, dazu dient schließlich eine so mächtige Sprache.

    Ich bin mit dem Script auch schon fertig, hab da zu spät dran gedacht und will das auslesen nur ändern, wenn es wirklich sein muss...

    Es muss.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheatah,

      lieben Dank für Deine herzlichen Zeilen, ja, ich werde es wohl so machen müssen...

      Ein Blümchen für Dein Knopfloch von

      MIK

  3. hi,

    Problem: Wenn eine Tabelle keine Hintergrundfarbe haben soll, spart man sich normalerweise den Eintrag "background-color:". Spar ich mir den, funktioniert das PHP oben nicht mehr.

    dann ist dein script fehlerhaft.

    Ich bin mit dem Script auch schon fertig, hab da zu spät dran gedacht und will das auslesen nur ändern, wenn es wirklich sein muss...

    strafe für vernachlässigung der konzeptionsphase muss sein :-)

    gruss,
    wahsaga

    1. Hi auch!

      Problem: Wenn eine Tabelle keine Hintergrundfarbe haben soll, spart man sich normalerweise den Eintrag "background-color:". Spar ich mir den, funktioniert das PHP oben nicht mehr.

      dann ist dein script fehlerhaft.

      Ich bin mit dem Script auch schon fertig, hab da zu spät dran gedacht und will das auslesen nur ändern, wenn es wirklich sein muss...

      strafe für vernachlässigung der konzeptionsphase muss sein :-)

      lol Wäre schön, wenn diese sich auf neunmalkluge Kommentare wie diese beschränken würden.. ;)