problem mit formatierung
chrisi1002
- css
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.
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.
"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.
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
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.
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
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
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.
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
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; ...}
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
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>
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.
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
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.
ja der pfad stimmt
hier der link:
< http://web319.server2.dce4u.de/styles/main.css>
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
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!
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
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
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
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
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.
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