chrisi1002: problem mit formatierung

hallo!

ich habe ein menü bei dem ich abfrage welche seite gerade aufgerufen worden ist und dann den jeweiligen menüpunkt mit css anders formatiere.  wenn ich mit print("style: ...."); direkt in die menü-datei schreibe funktionierts, doch wenn ich mit einem stylesheet und print("class = "name""); mache geht es nicht.
das stylesheet ist richtig eingebunden, da ich schon andere formatierung mit sheet mache.

  1. hallo,

    wenn ich mit print("style: ...."); direkt in die menü-datei schreibe funktionierts, doch wenn ich mit einem stylesheet und print("class = "name""); mache geht es nicht.

    "print" hat mit CSS nichts zu tun. Es kommt aber in mehreren Sprachen vor, da müßtest du schon noch verraten, aus welcher (Script?)-Umgebung heraus dieses ominöse "print" in Gang gesetzt wird.

    Grüße aus Berlin

    Christoph S.

    1. "print" hat mit CSS nichts zu tun. Es kommt aber in mehreren Sprachen vor, da müßtest du schon noch verraten, aus welcher (Script?)-Umgebung heraus dieses ominöse "print" in Gang gesetzt wird.

      es geht ja garnicht um das print (was übrigens php ist) sondern um das css, das irgendwie mit dem stylesheet nicht funktioniert.

      1. Hi,

        es geht ja garnicht um das print (was übrigens php ist) sondern um das css, das irgendwie mit dem stylesheet nicht funktioniert.

        dann solltest Du auch den Code posten, der beim Browser ankommt und nicht als Themenbereich Programmiertechnik wählen.

        freundliche Grüße
        Ingo

        1. hallo Ingo,

          dann solltest Du auch den Code posten, der beim Browser ankommt

          Wenns eine Fehlermeldung gibt, kommt wohl gar nix beim Browser an *g*

          und nicht als Themenbereich Programmiertechnik wählen.

          Den Themenbereich hatte ich gewechselt, weil es vermutlich kein CSS-Problem ist.

          Grüße aus Berlin

          Christoph S.

          1. Hi,

            Den Themenbereich hatte ich gewechselt, weil es vermutlich kein CSS-Problem ist.

            Oops... sorry, das hatte ich doch glatt übersehen.

            Und ich wechsle jetzt mal wieder zurück, weil mir gerade noch etwas wichtiges hierzu eingefallen ist:

            Und zwar vermute ich, daß die Änderung durchaus im externen CSS angekommen sein kann, nur der Browser diese Datei nicht erneut angefordert hat, sondern aus dem Cache holt. Dies ist ja auch sinnvoll bzw. das Schreiben der geänderten Styles direkt in die jeweilige HTML-Datei erspart das überflüssige Laden der kompletten CSS-Definitionen.
            Ich würde allerdings die Änderungen nicht als inline-Styles schreiben, sondern in den Style-Bereich des head.

            freundliche Grüße
            Ingo

            1. Hallo Ingo

              Und zwar vermute ich, daß die Änderung durchaus im externen CSS angekommen sein kann, nur der Browser diese Datei nicht erneut angefordert hat, sondern aus dem Cache holt.

              Das war auch mein erster Gedanke, aber

              print("class = "name"");

              sieht nicht so aus.

              Deshalb habe ich nach ein bisschen Quelltext gefragt, oder ist deine Glaskugel
              einsatzbereit? ;)

              Auf Wiederlesen
              Detlef

              --
              - Wissen ist gut
              - Können ist besser
              - aber das Beste und Interessanteste ist der Weg dahin!
              1. hallo,

                oder ist deine Glaskugel einsatzbereit? ;)

                Meine hab ich vorhin aus Versehen im SELFHTML-Entwicklungsforum zerschmissen  -  ist mir aus der Hand gerutscht :-(

                Grüße aus Berlin

                Christoph S.

                1. Hallo Christoph

                  Meine hab ich vorhin aus Versehen im SELFHTML-Entwicklungsforum zerschmissen  -  ist mir aus der Hand gerutscht :-(

                  Das kann gar nicht sein, dort liegen weder frische Scherben, noch ist dort
                  frisch sauber gemacht worden. ;)

                  Auf Wiederlesen
                  Detlef

                  --
                  - Wissen ist gut
                  - Können ist besser
                  - aber das Beste und Interessanteste ist der Weg dahin!
                  1. so jetzt poste ich mal code, bevor hier noch jemanden seine glaskugel auf den boden fällt ;)

                    also ich habe eine index.php, mit der ich dann die verschieden seiten aufrufe also per GET index.php?seite=test.
                    in dieser index.php include ich menu.php in dieser wiederum frage ich dann ab welche seite gerade aufgerufen wurde. je nachdem wird dann der link im menü anders dargestellt.

                    <a href="index.php?action=News/news" <?php if ($_GET[action]== "News/news") print("style=" irgendwas"");?>

                    wenn ich dieses inline-css in ein stylesheet verlagere und print("class ="activelink") schreibe funktioniert das ganze nicht.
                    im stylesheet steht dann eben:
                    .activelink {color: #asdfgh; ...}

                    1. Hallo chrisi1002

                      also ich habe eine index.php, mit der ich dann die verschieden seiten aufrufe also per GET index.php?seite=test.

                      Weißt du, der php-code nützt nicht viel, wenn es sich wohl um ein HTML oder CSS-Problem handelt. (z.B. kenne mich mit PHP kaum aus)

                      wenn ich dieses inline-css in ein stylesheet verlagere und print("class ="activelink") schreibe funktioniert das ganze nicht.

                      Das hast du bereits geschrieben.
                      Und was genau kommt beim Browser nun an?
                      (Im Browser Quelltextansicht, und von dort mittles copy&paste ins Posting)

                      im stylesheet steht dann eben:
                      .activelink {color: #asdfgh; ...}

                      Ja, und was steht für die Links als Standard da?
                      (bitte copy&paste aus der CSS, die der Browser bekommt)

                      Auf Wiederlesen
                      Detlef

                      --
                      - Wissen ist gut
                      - Können ist besser
                      - aber das Beste und Interessanteste ist der Weg dahin!
                      1. also, das ist der quelltext der beim browser ankommt:
                        1.Fall (funktioniert nicht):
                        <li><a href="index.php?action=News/news" class="activelink" onFocus="if(document.all) this.blur()">News</a></li>

                        2.Fall (geht):
                        <li><a href="index.php?action=geschichte" style="color: #9a1d07; border-color: #9A1D07;background:#C1D2EC" onFocus="if(document.all) this.blur()">Geschichte</a></li>

                        1. hallo,

                          also, das ist der quelltext der beim browser ankommt

                          Na bitte, es ist genauso, wie ich es in https://forum.selfhtml.org/?t=93052&m=561804 vermutet hatte.

                          1.Fall (funktioniert nicht):
                          <li><a href="index.php?action=News/news" class="activelink" onFocus="if(document.all) this.blur()">News</a></li>

                          Du vergißt, auch noch anzugeben, wo denn die "Klasse" mit Namen "activelink" definiert ist und was sie bedeutet. Dein Browser weiß das möglicherweise auch nicht.

                          Es ist also tatsächlich _kein_ CSS-Problem, sondern du läßt dein PHP-Script fehlerhaften HTML-Code schreiben.

                          Grüße aus Berlin

                          Christoph S.

                          1. Du vergißt, auch noch anzugeben, wo denn die "Klasse" mit Namen "activelink" definiert ist und was sie bedeutet. Dein Browser weiß das möglicherweise auch nicht.

                            wieso ich binde ja das stylesheet im header ein:
                            <link rel="stylesheet" type="text/css" href="styles/main.css">

                            und in diesem sytlesheet ist die class activelink definiert

                            und das stylesheet ist richtig eingebunden da ich schon andere formatierung aus dem sheet nehme und diese richtig angezeigt werden

                            1. hallo chrisi1002,

                              wieso ich binde ja das stylesheet im header ein:
                              <link rel="stylesheet" type="text/css" href="styles/main.css">

                              Dann zeig das Ding doch nun endlich mal, verstehst du das denn immer noch nicht? Stimmt denn dieser relative Pfad "styles/css"?

                              Christoph S.

                              1. ja der pfad stimmt

                                hier der link:
                                < http://web319.server2.dce4u.de/styles/main.css>

                                1. Hallo,

                                  ja der pfad stimmt

                                  hier der link:
                                  http://web319.server2.dce4u.de/styles/main.css

                                  Ich lese dort:
                                  #navlist li a {...}

                                  aber nur
                                  .activelink {...}

                                  Dieser Selector ist zu schwach.

                                  versuche mal
                                  #navlist li a.activelink {...}

                                  Auf Wiederlesen
                                  Detlef

                                  --
                                  - Wissen ist gut
                                  - Können ist besser
                                  - aber das Beste und Interessanteste ist der Weg dahin!
                                  1. ja jetzt funktionierts, habe das auch schon mal versucht nur habe ich zwischen dem "#navlist li a" und den ".activelink" ein leerzeichen gemacht und darum ist es auch wahrscheinlich nicht gegangen.
                                    danke!

                                    1. Hi,

                                      nur habe ich zwischen dem "#navlist li a" und den ".activelink" ein leerzeichen gemacht

                                      :-)  Du fängst erst mit CSS an?
                                      a .activelink selektiert ein beliebiges Element mit der Klasse activelink, welches sich innerhalb eines a-Elements befindet.
                                      Dennoch würde ich Dir wie Detlef empfehlen, hier einfach <span> zu schreiben und im CSS statt der Dwefinition von activelink einfach
                                      #navlist li span {...}
                                      zu definieren.

                                      freundliche Grüße
                                      Ingo

                        2. Hi,
                          unter der Voraussetzung, daß Du die Klasse korrekt definiert und das CSS korrekt eingebunden hast, könnte dann meine Vermutung zutreffen, daß die Klasse von stärkeren Selektoren überstimmt wird. Dann wäre dann allerdings ein Blick auf die Seite nötig, weil sowohl das HTML als auch das gesamte CSS relevant sind.

                          Übrigens:

                          <li><a href="index.php?action=News/news" class="activelink" onFocus="if(document.all) this.blur()">

                          warum schließt Du IE- und evtl. Opera-User von der Tastaturbedienung aus?

                          freundliche Grüße
                          Ingo

                        3. Hallo chrisi1002,

                          kannst du nicht lesen?
                          Oder willst du gar keine Hilfe, sondern findest es toll wenn wir herumraten?

                          Ich schrieb dir bereits zweimal, dass du einen Link auf die Problemdatei
                          oder wenigstens den relevanten Quelltext, _auch_ _CSS_, den der Browser
                          erhält posten solltest.

                          Ich schrieb dazu :

                          https://forum.selfhtml.org/?t=93052&m=561726

                          ... Quelltextes posten. (nicht das PHP sondern was beim Browser ankommt)
                          Wie sind die Links im CSS definiert?
                          Wie die Klasse?

                          https://forum.selfhtml.org/?t=93052&m=561786

                          Ja, und was steht für die Links als Standard da?
                          (bitte copy&paste aus der CSS, die der Browser bekommt)

                          Auch aus den anderen Postings, ist ersichtlich, dass anhand deiner
                          Minimalinformationen die Ursache nicht eindeutig zu ermitteln ist.

                          Willst du nun Hilfe?
                          Oder möchtest du lesen, wie wir tagelang diskutieren, woran es wohl
                          liegen könnte, dass es nicht funktioniert?

                          also, das ist der quelltext der beim browser ankommt:
                          1.Fall (funktioniert nicht):
                          <li><a href="index.php?action=News/news" class="activelink" onFocus="if(document.all) this.blur()">News</a></li>

                          Das funktioniert, wenn das CSS richtig eingebunden und fehlerlos ist
                          _und_ der Selector .activlink nicht zu schwach im Vergleich zum Selector
                          der Standarddefinition für die Links ist.

                          2.Fall (geht):

                          Interessiert also nicht, das Problem hast du doch mit dem anderen.

                          Noch eine weitere Möglichkeit:

                          Wenn der aktive Link gar nicht anklickbar sein muss/soll, weil die
                          zugehörige Seite angezeigt wird, dann könnte dein PHP-Script auch genauso
                          gut anstatt des <a href="...">....</a> ein <span>....</span> einfügen.
                          Dieses definierst du im CSS genauso, wie die Links, nur mit den
                          Eigenschaften, die jetzt deine Klasse aktivlink hat.

                          Dazu kannst du auch mal den Artikel von Jeena Paradies
                          Dynamisches Menü in PHP lesen.

                          Auf Wiederlesen
                          Detlef

                          --
                          - Wissen ist gut
                          - Können ist besser
                          - aber das Beste und Interessanteste ist der Weg dahin!
                    2. Hi,

                      nunja, bleiben wir mal bei "Menschelei" ;-)

                      im stylesheet steht dann eben:
                      .activelink {color: #asdfgh; ...}

                      im Ernst?

                      Aber probiere doch bitte mal, die Angabe in einen Stylebereich der HTML-Seite zu schreiben, wie ich es Dir auch schon begründete. Wenn es dann noch nicht funktioniert, dann dürfte der gewählte Selektor einfach zu schwach sein.

                      freundliche Grüße
                      Ingo

                    3. hi,

                      im stylesheet steht dann eben:
                      .activelink {color: #asdfgh; ...}

                      Das ist doch in Ordnung. Wenn in einer _externen_ CSS-Datei sowas vorkommt, funktioniert das auch.
                      Ich fürchte nur, du schreibst dir keine _externe_ CSS, sondern schreibst alles gleich in das HTML-Dokument, das dein Browser erhält, und noch nicht einmal in den Header, sondern in irgendein HTML-tag. Dann vergleiche doch bitte einfach mal deine beiden Angaben:
                        if ($_GET[action]== "News/news") print("style=" irgendwas"")
                        if ($_GET[action]== "News/news") print("class ="activelink"")
                      Fällt dir immer noch nix auf (mal abgesehen von dem fehlenden " in deiner Code-Angabe)?

                      Im ersten Fall erhältst du beispielsweise so etwas:
                        <div style="irgendwas">
                      Und das dürfte korrekt sein.
                      Im zweiten Fall erhältst du allerdings:
                        <div class="activelink">
                      Und das dürfte nicht klappen, weil eine solche Klasse einfach nicht existiert. Oder du hast sie trotz mehrfacher Bitte um den korrekten Code noch nicht mitgeliefert.

                      Es handelt sich, falls meine Annahme zutrifft, also tatsächlich _nicht_ um ein CSS-Problem, sondern darum, daß dir nicht klar ist, was dein PHP eigentlich schreiben soll.

                      Grüße aus Berlin

                      Christoph S.

  2. Hallo chrisi1002

    ich habe ein menü bei dem ich abfrage welche seite gerade aufgerufen worden ist und dann den jeweiligen menüpunkt mit css anders formatiere.  wenn ich mit print("style: ...."); direkt in die menü-datei schreibe funktionierts, doch wenn ich mit einem stylesheet und print("class = "name""); mache geht es nicht.
    das stylesheet ist richtig eingebunden, da ich schon andere formatierung mit sheet mache.

    Wenn du alles richtig gemacht hast, dürfte es auch so funktioniert, wie du
    es wünscht.

    Kannst du uns einen Link auf eine Seite mit deinem Problem oder ein Stücken
    Quelltextes posten. (nicht das PHP sondern was beim Browser ankommt)
    Wie sind die Links im CSS definiert?
    Wie die Klasse?

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!