css oder/und php ? Unerklärliches (Nicht)Anzeigeproblem
Enrico
- programmiertechnik
Hallo,
ich habe folgende Definitionen in einer ausgelagerten css-Datei:
a.Gaestebuch_Eintragen_gross
{
background: url("../../Grafiken/Buttons/Eintrag_erstellen.png") no-repeat;
display: block;
height: 39px;
// left: 738px;
// position: absolute;
// bottom: 2px;
width: 187px;
}
a.Gaestebuch_Formular_Eingaben_loeschen
{
background: url("../../Grafiken/Buttons/Eingaben_loeschen.png") no-repeat;
display: block;
height: 25x;
// left: 738px;
// position: absolute;
// bottom: 2px;
width: 122px;
}
a.Gaestebuch_Formular_Vorschau
{
background: url("../../Grafiken/Buttons/Vorschau.png") no-repeat;
display: block;
height: 25px;
// left: 738px;
// position: absolute;
// bottom: 2px;
width: 187px;
}
a.Gaestebuch_Formular_Abschicken
{
background: url("../../Grafiken/Buttons/Abschicken.png") no-repeat;
display: block;
height: 25px;
// left: 738px;
// position: absolute;
// bottom: 2px;
width: 187px;
}
Die php-Datei, die für die Ausgabe der Links sorgt, hat - im relevanten Bereich - folgenden Aufbau:
case "Eintragen":
{
$Menuepunkte .= '<a class="Gaestebuch_Eintragen"></a>';
$Inhalt = '<a class="Gaestebuch_Formular_Eingaben_loeschen" href="#" onclick="Formular_zuruecksetzen ();"></a><br>';
$Inhalt .= '<a class="Gaestebuch_Formular_Vorschau" href="Index_3.php?Auswahl_Menue=Gaestebuch&Aktion=Vorschau"></a><br>';
$Inhalt .= '<a class="Gaestebuch_Formular_Abschicken" href="Index_3.php?Auswahl_Menue=Gaestebuch&Aktion=Bestaetigung"></a><br>';
break;
}
Was ich nun aber absolut nicht nachvollziehen kann, ist, dass nur die Links der Klassen "Gaestebuch_Formular_Vorschau" und "Gaestebuch_Formular_Vorschau" angezeigt werden, der erste Link der Klasse "Gaestebuch_Formular_Eingaben_loeschen" hingegen erst dann, dann aber auch mit dem entsprechenden Hintergrundbild, wenn ich zwischen <a></a> irgendein Zeichen notiere.
Sämtliche Grafiken bestehen, ich rufe sie auch mit dem korrekten Dateinamen auf, ferner kann ich keinerlei Unterschiede bei den css-Definitionen erkennen, natürlich abgesehen von den Hintergrundgrafiken und den Breitenangaben.
Ich habe keine Ahnung, warum die vollständige Anzeige nicht klappt.
Könnt ihr mir behilflich sein?
Vielen Dank im Voraus und Gruß
Enrico
Hi,
a.Gaestebuch_Eintragen_gross
{
background: url("../../Grafiken/Buttons/Eintrag_erstellen.png") no-repeat;
display: block;
height: 39px;
// left: 738px;
// position: absolute;
// bottom: 2px;
Baust du diese Syntaxfehler absichtlich ein?
Ich habe keine Ahnung, warum die vollständige Anzeige nicht klappt.
Und ich keine, warum du nicht zunächst deinen Code validierst (HTML und CSS), und wieso du uns nicht mal annähernd genug Infos lieferst, um das Problem nachvollziehbar zu machen. </hilfe/charta.htm#tipps-fuer-fragende>
MfG ChrisB
Hallo ChrisB,
Baust du diese Syntaxfehler absichtlich ein?
Meinst Du die Auskommentierung der Zeilen?
Wenn Du dies gemeint haben solltest, dann lag es nicht (nur ?) daran, denn auch nach dem Rauslöschen der auskommentierten Zeilen wird mir der erste Link nicht angezeigt.
Und ich keine, warum du nicht zunächst deinen Code validierst (HTML und CSS)
Beim Versuch, die css-Datei zu validieren, erhalte ich auf <//http://validator.w3.org/> die Fehlermeldung "Sorry! This document can not be checked".
und wieso du uns nicht mal annähernd genug Infos lieferst, um das Problem nachvollziehbar zu machen
Verstehe ich nicht, ich habe das Problem doch - meines Erachtens - klar verständlich dargelegt ?!
Gruß
Enrico
Hi,
Beim Versuch, die css-Datei zu validieren, erhalte ich auf <//http://validator.w3.org/> die Fehlermeldung "Sorry! This document can not be checked".
Dann machst du wohl auch dabei was falsch ...
Verstehe ich nicht, ich habe das Problem doch - meines Erachtens - klar verständlich dargelegt ?!
Nein.
Abgesehen davon, dass du bei einem clientseitigen Problem unsinnger weise serverseitigen Code zeigst - nur an hand eines winzigen Ausschnittes aus dem HTML-Code kann man idR. nicht sagen, was daran problematisch sein könnte, bzw. das Problem kann auch im „Drumherum“ liegen.
MfG ChrisB
Hallo ChrisB,
Dann machst du wohl auch dabei was falsch ...
Ich wähle lediglich die css-Datei aus und lade sie hoch, mehr mache ich nicht.
das Problem kann auch im "Drumherum" liegen.
Uffz, da gibt es Einiges, zumindest in der css-Datei, wobei alles vorher wie definiert und gewünscht angezeigt wird, d.h. der Fehler kann eigentlich nur in der css-Datei begründet liegen, wobei ich nicht weiß, wo.
Es liegen auch keine doppelten und überschreibenden oder konkurrierenden Definitionen vor.
An "Drumherum" in der ausgebenden php-Datei gibt es nur Folgendes:
<?php
include ("Dateien/PHP/Counter.php");
include ("Dateien/PHP/Menuepunkte.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>1. Dartverein Altdorf</title>
<link rel="stylesheet" href="Dateien/CSS/Index_3.css" type="text/css" media="screen"/>
<script type="text/javascript" src="Dateien/JS/Anzeigebereich_scrollen.js"></script>
<script type="text/javascript">
var scroller = null;
window.onload = function ()
{
var el = document.getElementById ("Anzeigebereich");
scroller = new jsScroller (el, 400, 200);
}
</script>
</head>
<body scroll="no">
<div class="Counter_Container">
<div class="Counter_Anzeige">
<?php
echo $Grafischer_Counter;
?>
</div>
</div>
<div class="Tafel_Container">
<div class="Tafel_Rahmen_Links"></div>
<div class="Tafel_Rahmen_Rechts"></div>
<div class="Tafel_Hintergrund"></div>
<a class="Seitenanfang"></a>
<a class="Hochscrollen" href="#" onclick="return false" onmousedown="scroller.startScroll(0, 5);" onmouseup="scroller.stopScroll();"></a>
<a class="Runterscrollen" href="#" onclick="return false" onmousedown="scroller.startScroll(0, -5);" onmouseup="scroller.stopScroll();"></a>
<a class="Seitenende"></a>
<div class="Anzeigebereich" id="Anzeigebereich">
<div class="Anzeigebereich_Scroller">
<?php
---> echo $Inhalt; <---
HIER ERFOLGT DIE TESTWEISE AUSGABE
?>
</div>
</div>
<?php
echo $Menuepunkte;
?>
</div>
</body>
</html>
MfG ChrisB
Hi,
Dann machst du wohl auch dabei was falsch ...
Ich wähle lediglich die css-Datei aus und lade sie hoch, mehr mache ich nicht.
Und wie sieht die jetzt aus? (Online-Beispiel)
An "Drumherum" in der ausgebenden php-Datei gibt es nur Folgendes:
Könntest du jetzt bitte langsam, endlich mal, nachdem du mehrfach darauf hingewiesen wurdest, begreifen, dass serverseitiger Code bei einem clientseitigen Problem uninteressant ist?
MfG ChrisB
Hallo ChrisB,
der Fehler lag in einem einzigen fehlenden Buchstaben in der css-Datei.
Ich hatte "x" als Höhenangabe getätigt anstatt "px".
Danke für Deine "Geduld" und Gruß
Enrico
Hallo,
Baust du diese Syntaxfehler absichtlich ein?
Meinst Du die Auskommentierung der Zeilen?
da ist nichts auskommentiert. Kommentare werden in CSS /* anders notiert. */
Beim Versuch, die css-Datei zu validieren, erhalte ich auf http://validator.w3.org/ die Fehlermeldung "Sorry! This document can not be checked".
Natürlich. Der HTML-Validator erwartet HTML. Wenn du CSS validieren willst, solltest du seinen dafür zuständigen Kollegen befragen.
So long,
Martin
Hallo Martin,
Wenn du CSS validieren willst, solltest du seinen dafür zuständigen Kollegen befragen.
Und das war's... :-)
Wenn man natürlich "height: 25x;" statt "height: 25px;" schreibt, dann kann es ja nicht klappen...
Das hätte ich im nächsten Leben noch nicht gefunden...
Danke, Danke, Danke,
Enrico
Hi,
Natürlich. Der HTML-Validator erwartet HTML. Wenn du CSS validieren willst,
Ach so, das war das Problem ...
solltest du seinen dafür zuständigen Kollegen befragen.
Oder man befragt gleich das neue Einhorn.
MfG ChrisB
Oder man befragt gleich das neue Einhorn
Ist ab sofort fester Bestandteil meiner Favoriten ;-)
Gruß
Enrico
Hallo,
Natürlich. Der HTML-Validator erwartet HTML. Wenn du CSS validieren willst,
Ach so, das war das Problem ...
sieht so aus.
solltest du seinen dafür zuständigen Kollegen befragen.
Oder man befragt gleich das neue Einhorn.
Uii, das kannte ich auch noch nicht, danke für den Hinweis.
All in one - sieht interessant aus, werde ich beim nächsten Bedarfsfall mal ausprobieren.
Ciao,
Martin
ich habe folgende Definitionen in einer ausgelagerten css-Datei:
Einer ungültigen wie ich bemerken darf, Kommentare sehen in CSS anders aus.
Ebenso ist es höchst ineffizenzt und redundant verfasst. Dein HTML welches durch deinen PHP-Schnipsel ausgegeben wird ist ebenfalls ungültigt.
Zudem: für Clientseitige Probleme ist der serverseitige Code eigentlich nicht relevant. Weiters: es gibt auch mehrzeilige Strings in PHP - Verkettungsoperatoren sind nur unnötig langsam.
Ich habe keine Ahnung, warum die vollständige Anzeige nicht klappt.
Weil du offensichtlich zwei unterschiedliche Bezeichner verwendest
Gaestebuch_Eintragen_gross und Gaestebuch_Eintragen
Hallo suit,
Einer ungültigen wie ich bemerken darf, Kommentare sehen in CSS anders aus.
Ebenso ist es höchst ineffizenzt und redundant verfasst.
Dein HTML welches durch deinen PHP-Schnipsel ausgegeben wird ist ebenfalls ungültigt.
Ojeojeoje, das klingt vernichtend...
Weil du offensichtlich zwei unterschiedliche Bezeichner verwendest
Sorry, hier liegt ein Missverständnis vor, war mein Fehler.
Mir geht es nur um diese Gruppe:
$Inhalt = '<a class="Gaestebuch_Formular_Eingaben_loeschen" href="#" onclick="Formular_zuruecksetzen ();"></a><br>';
$Inhalt .= '<a class="Gaestebuch_Formular_Vorschau" href="Index_3.php?Auswahl_Menue=Gaestebuch&Aktion=Vorschau"></a><br>';
$Inhalt .= '<a class="Gaestebuch_Formular_Abschicken" href="Index_3.php?Auswahl_Menue=Gaestebuch&Aktion=Bestaetigung"></a><br>';
Die erste Definition ("Gaestebuch_Eintragen_gross") habe ich nur mit reinkopiert, falls ich hier einen Fehler haben sollte, der mein (Nicht)Anzeigeproblem bedingen könnte.
Es funktioniert alles reibungslos, nur eben nicht der Link "Gaestebuch_Formular_Eingaben_loeschen".
Gruß
Enrico
Hallo suit,
jetzt ist mir noch etwas eingefallen, wenn auch verspätet:
Ebenso ist es höchst ineffizenzt und redundant verfasst
Wie würdest Du denn den css-Code formulieren, um Effizienz zu erreichen und Redundanzen zu vermeiden bzw. zu reduzieren?
Gruß
Enrico
Hi,
Wie würdest Du denn den css-Code formulieren, um Effizienz zu erreichen und Redundanzen zu vermeiden bzw. zu reduzieren?
Na zum Beispiel die Eigenschaften, die alle Links gemeinsam haben (display, position, left, bottom), zu einem „Block“ zusammenfassen.
Entweder, in dem du die einzelnen Selektoren davor aufzählst - oder in dem du ggf. gleich einen geeigneteren, universelleren Selektor wählst.
MfG ChrisB
Hallo ChrisB,
zu einem "Block" zusammenfassen
D.h. es fällt nicht unter den Begriff "Redundanz", Blöcke mehrfach zu notieren, sehr wohl aber gleichartige Eigenschaften pro Block zu notieren?
ggf. gleich einen geeigneteren, universelleren Selektor wählst
Ich vermute, dass Du meine Frage nach geeigneteren Selektoren nur unter Einsichtnahme der kompletten css-Datei beantworten könntest/würdest, sofern Du "wölltest"...
Gruß
Enrico
Hi,
zu einem "Block" zusammenfassen
D.h. es fällt nicht unter den Begriff "Redundanz", Blöcke mehrfach zu notieren, sehr wohl aber gleichartige Eigenschaften pro Block zu notieren?
Hä ...?
Redundanz ist (meist unnötige) Wiederholung von Information.
Statt für jeden Link einzeln anzugeben, dass du ihn mit display:block formatiert haben möchtest, gibst du für alle (in Frage kommenden) Links gemeinsam *ein* *Mal* an, dass du sie mit display:block formatiert haben möchtest.
ggf. gleich einen geeigneteren, universelleren Selektor wählst
Ich vermute, dass Du meine Frage nach geeigneteren Selektoren nur unter Einsichtnahme der kompletten css-Datei beantworten könntest/würdest, sofern Du "wölltest"...
Erstens Nein, weil die HTML-Struktur entscheidend dafür ist, was sich wie selektieren lässt;
und zweitens kannst du dir diese Frage bitte erst mal selbst zu beantworten versuchen - wenn deine CSS-Grundkenntnisse dazu nicht ausreichen, dann erweitere sie. Den Anfang kannst du bspw. hier machen: http://wiki.selfhtml.org/wiki/Doku:CSS/Grundlagen_von_CSS/Ansprechen_von_Elementen_(Selektoren) / http://wiki.selfhtml.org/wiki/Referenzen:CSS/Selektorenreferenz
MfG ChrisB
Hallo ChrisB,
gibst du für alle (in Frage kommenden) Links gemeinsam *ein* *Mal* an
Ok, verstanden.
und zweitens kannst du dir diese Frage bitte erst mal selbst zu beantworten versuchen
War unglücklich formuliert und nicht als "Bitte-schreib-mir-die-css-Datei-neu"-Anfrage gedacht.
wenn deine CSS-Grundkenntnisse dazu nicht ausreichen, dann erweitere sie
Ich denke, das ist sehr sinnvoll, um aus gewohntem Fahrwasser rauszukommen und bislang eingeschlichene Fehler zukünftig zu vermeiden.
http://wiki.selfhtml.org/wiki/Doku:CSS/Grundlagen_von_CSS/Ansprechen_von_Elementen_(Selektoren)
http://wiki.selfhtml.org/wiki/Referenzen:CSS/Selektorenreferenz
Danke für die Links.
Gruß
Enrico