Archiv verlassen und diese Seite im Standarddesign anzeigen : include über css einbinden
Dario_PHP 05-07-2010, 16:54 Hallo zusammen,
ich hab das Problem, dass ich mein iclude der Navigationsleiste in der "print.css"-Datei, für das drucken nicht weg bekomme.
Zurzeit befindet sich das include auf einer Seite in einem Div-Bereich.
In der Print-Css gebe ich den Div-Bereich nicht an, aber die Navi kommt trotzdem.
Sowas wie
include {
display:none;
}
gibt es wohl auch nicht.
Nun dachte ich mir, dass ich mein include direkt in der normalen css-datei angebe und es dadurch verhindern kann, aber ich finde leider nichts dazu.
Weiß jemand wie das geht bzw. ob das überhaupt funktioniert.
Verpass der Navigation eine ID oder Klasse und arbeite dann mit
.navi {
display:none;
}
#navi {
display:none;
}
Peter
PS: CSS versteht kein PHP
Und was ist "include" ... eine Klasse, eine ID???
Dario_PHP 05-07-2010, 17:16 Mein code sieht so aus:
<div id='navi'>
<?php
include 'navigation.php';
?>
</div>
Sprich meine id ist navi und in der print.css schreibe ich
.navi {
display:none;
}
oder
#navi {
display:none;
}
aber trotzdem funktioniert es nicht bzw. er entfernt schon den Div-Bereich, aber der Include bleibt drin stehen.
Klar css kann kein PHP, aber wie soll ich das anstellen, die Navi selbst ist javascript.
Und wie baust du die print.css ein? Hast du den korrekten Medientyp angegeben? Online-Beispiel verfügbar?
Peter
Dario_PHP 05-07-2010, 17:23 Im Head-Bereich schreibe ich:
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
Der zieht die auch an, dass sieht man auch...
Ich vermute, dass innerhalb des "Navi-Divs" noch ein Element ein display: block hat. Kannst du das mal online stellen. Ansonsten empfehle ich dir Firebug für die Fehlersuche.
Peter
Dario_PHP 05-07-2010, 17:44 meinst du jetzt die navigation.php?
meinst du jetzt die navigation.php?
Wenn ich jetzt wüsste, was du meinst. :dontknow:
Peter
Dario_PHP 05-07-2010, 17:52 :goth: ich weiß nicht was ich genau online stellen soll
Ein Beispiel, was dein Problem veranschaulicht. Mit
er entfernt schon den Div-Bereich, aber der Include bleibt drin stehen.kann man wenig anfangen.
Wenn du per display:none die Navi ausgeblendet hast, gilt das auch für alle untergeordneten Elemente. Das include wird dennoch ausgeführt (findet ja vor dem CSS statt), aber angezeigt wird der Bereich nicht, zumindest nicht im Browser.
:goth: ich weiß nicht was ich genau online stellen soll
Alle benötigten Daten. Das solltest du aber am Besten wissen. Wir können da nur raten.
Peter
Ich vermute, dass innerhalb des "Navi-Divs" noch ein Element ein display: block hat.
Das wäre egal - wenn ein Vorfahrenelement display:none hat, dann sind damit auch alle Nachfahrenelemente „weg“, egal wie die formatiert sein mögen.
Ich vermute eher fehlerhaften HTML-Code - so dass die Navigation gar nicht wirklich im DIV-Element liegt.
Dario_PHP 06-07-2010, 09:23 Sorry das ich mich jetzt erst melde, aber gestern ist mir was dazwischen gekommen.
Ich schicke mal alles relevante, sprich die eigentliche Website in der die Navi im Div-Bereich definiert ist und die css selbst.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Suchergebnis</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="einstellungen2.css" type="text/css" rel="Stylesheet" media="screen" />
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
</head>
<body id="startseite">
<div id="Hauptrahmen">
<div id="falscheSpalte">
</div>
<div id="navi">
<?php
include 'navigation.php';
?>
</div>
<div id="kopf">
</div>
usw
nun die print.css
body
{
font-family: Verdana, Helvetica, Calibri, Arial, Verdana;
font-size: 12px;
color: black;
}
div#navi
{
display: none;
}
div#falscheSpalte
{
height: 585px;
width:0px;
float: left;
}
Die Navi ist im Div-Bereich und in der print.css ist dieser Bereich definitiv angegeben bzw. wird ausgeblendet. Das lustige ist, dass ich in meiner Druckvorschau sehen kann, dass dieser Bereich auch verschwindet. Das erkenne ich daran, dass alles einrückt, jedoch der PHP-Teil, sprich der Include bleibt...
AmicaNoctis 06-07-2010, 09:28 Hallo,
<link rel="stylesheet" type="text/css" href="print.css" media="print" />
Das lustige ist, dass ich in meiner Druckvorschau sehen kann, dass dieser Bereich auch verschwindet.
Dann ist doch alles in Ordnung. Wenn es am Bildschirm verschwinden soll, musst du das Stylesheet für screen befummeln, nicht das für print.
Gruß,
Amica
Dario_PHP 06-07-2010, 10:00 Nein nicht wirklich in Ordnung, weil der PHP-Teil nicht ausgeblendet wird...
AmicaNoctis 06-07-2010, 10:04 Hast du nicht vor kurzem geschrieben, dass er in der Druckvorschau sehr wohl ausgeblendet wird? Oder meinst du damit etwas anderes?
Außerdem interessieren PHP-Blöcke doch in diesem Falle gar nicht mehr, weil die bereits serverseitig verarbeitet und ersetzt worden sind. Warum konzentrierst du dich also nicht erstmal auf den Code, der beim Client tatsächlich ankommt?
Dario_PHP 06-07-2010, 10:18 ja wird er auch, aber nicht der PHP-Teil, sprich:
<?php
include 'navigation.php';
?>
Hab jetzt mal zwei Fotos angehängt, Bild Nr.1 ist die Druckvorschau mit Navi und Bild Nr.2 ist ohne Navi bzw. sollte ohne Navi sein.
AmicaNoctis 06-07-2010, 10:26 Sieh dir den Client-Code im Browser an! Da gibt es keinen PHP-Teil.
Dario_PHP 06-07-2010, 10:28 joa stimmt, da ist kein PHP-Code, aber Javascript-Code... könnte es daran liegen?
also die Navi ist mit javascript geschrieben, jedoch kommt das erst in der navigation.php, weil ich da noch die ip prüfe und je nach ip auf bestimmte navis verweise... nur zur Erklärung
AmicaNoctis 06-07-2010, 10:34 Das hängt ganz davon ab, was der JS-Code macht, z. B. ob er dein Stylesheet oder bestimmte Elemente manipuliert. Aber wissen kann ich es nicht. Deaktivier JS im Browser und sieh selbst nach, ob es daran liegt.
|
|