• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

PHP include(); oder require(); vs. CSS

obstbauer

Châtaigne du Léman
Registriert
09.09.04
Beiträge
826
ich habe in ein php dokument index.php eine include(./get.php); bzw. require(./get.php); anweisung eingebaut

index.php sowie get.php haben verschieden css sources.

jetzt das problem wenn ich index.php aufrufen wird get.php korrekt im <DIV> ...
</DIV> angezeigt aber die css-anweisungen von "get.php" werden global auf alles angewendet also auch auf "index.php"... also bg-color usw.

was kann ich da machen um das zu trennen bzw. zu kaskadieren sodass beide css separat wirken... ?!

danke für tipps.
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Hier musst Du die CSS-Dateien entsprechend formulieren, damit sich die Selektoren nicht überlagern.
 

âne

Kaiser Wilhelm
Registriert
20.11.06
Beiträge
173
Hi Obstbauer.

Stehen denn in der 'index.php' schon CSS-Anweisungen (also ueber dem imclue();)?

Viele Gruesse,
Âne
 

obstbauer

Châtaigne du Léman
Registriert
09.09.04
Beiträge
826
Hier musst Du die CSS-Dateien entsprechend formulieren, damit sich die Selektoren nicht überlagern.

ok, ich hab halt bei beiden files einen globalen body selektor im css file... wie würdest du das machen?

Hi Obstbauer.

Stehen denn in der 'index.php' schon CSS-Anweisungen (also ueber dem include();)?

Viele Gruesse,
Âne
so gesehen nicht, da ich ja extern auf ein css file verlinke...
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Warum verwendest Du überhaupt mehrere unterschiedliche CSS files? Seperat können die Files nicht wirken, das mußt Du über Selektoren lösen. Außerdem wäre das hochgradig gegen das Konzept von CSS.
Du solltest das CSS file auch nicht inline in irgendwelchem PHP Code haben, sondern übers Markup im Head importieren. (Ausgenommen sei der sehr spezielle Fall wo man inline CSS per PHP generiert, was Du bestimmt nicht tust.)
Gruß Pepi
 

Bief

Weigelts Zinszahler (Rotfranch)
Registriert
11.12.06
Beiträge
249
Du musst dir das mit dem include(); so vorstellen:
Man hat ein PHP-Script und da, wo sich die Include-Anweisung befindet, da steht für den Browser der komplette Inhalt der get.php, so als gäbe es das include gar nicht.
Und dann findet der Browser plötzlich zwei verschiedene Stylesheets und nimmt für die kommpletten CSS-Tags das der get.php...
Wenn du das mit dem div-tag lösen willst, musst du entweder <div style="...">...</div> oder <div class="irgendwas">...</div> schreiben und dann im Styleteil der index.php .irgendwas { color:14px; ... } schreiben...
 

obstbauer

Châtaigne du Léman
Registriert
09.09.04
Beiträge
826
Warum verwendest Du überhaupt mehrere unterschiedliche CSS files? Seperat können die Files nicht wirken, das mußt Du über Selektoren lösen. Außerdem wäre das hochgradig gegen das Konzept von CSS.
Du solltest das CSS file auch nicht inline in irgendwelchem PHP Code haben, sondern übers Markup im Head importieren. (Ausgenommen sei der sehr spezielle Fall wo man inline CSS per PHP generiert, was Du bestimmt nicht tust.)
Gruß Pepi

wird im head importiert... kein inline!
werde es versuchen zu einem file zusammenzumurksen...:)

Du musst dir das mit dem include(); so vorstellen:
Man hat ein PHP-Script und da, wo sich die Include-Anweisung befindet, da steht für den Browser der komplette Inhalt der get.php, so als gäbe es das include gar nicht.
Und dann findet der Browser plötzlich zwei verschiedene Stylesheets und nimmt für die kommpletten CSS-Tags das der get.php...
Wenn du das mit dem div-tag lösen willst, musst du entweder <div style="...">...</div> oder <div class="irgendwas">...</div> schreiben und dann im Styleteil der index.php .irgendwas { color:14px; ... } schreiben...

mal sehen, danke für den tip. ich hab mittlerweile auch gemerkt dass immer das zuletzt geladenen CSS file die oberste gültigkeit bei überschneidungen hat.
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
ok, ich hab halt bei beiden files einen globalen body selektor im css file... wie würdest du das machen?

Zum Beispiel mit unterschiedlichen IDs arbeiten und darauf achten, dass dieses sich nicht gegenseitig verheddern. Dann kannst mit

#rapunzel p {
margin: 0;
padding: 0;
}

#haare p {
margin: 1em;
padding: 1em;
}

entsprechend getrennt selektieren.
 

obstbauer

Châtaigne du Léman
Registriert
09.09.04
Beiträge
826
Zum Beispiel mit unterschiedlichen IDs arbeiten und darauf achten, dass dieses sich nicht gegenseitig verheddern. Dann kannst mit

#rapunzel p {
margin: 0;
padding: 0;
}

#haare p {
margin: 1em;
padding: 1em;
}

entsprechend getrennt selektieren.

also heisst ich kann die globale body variable entsprechend weglassen und statdessen eine class einsetzen?
sprich:
body im css-file als .bodyprefs definieren und dann im php doc
Code:
<body class=bodyprefs> ... </body>
benutzen?
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
also heisst ich kann die globale body variable entsprechend weglassen und statdessen eine class einsetzen?
sprich:
body im css-file als .bodyprefs definieren und dann im php doc
Code:
<body class=bodyprefs> ... </body>
benutzen?

Da kann ich dir jetzt nicht mehr so ganz folgen, denn das kommt letztendlich auf das Ergebnis an (was wir hier nicht sehen).
 

obstbauer

Châtaigne du Léman
Registriert
09.09.04
Beiträge
826
Da kann ich dir jetzt nicht mehr so ganz folgen, denn das kommt letztendlich auf das Ergebnis an (was wir hier nicht sehen).

Code:
body {
	background: #fff;
	border: solid 0px #333;

	border-top: solid 0px #565;
	color: #000;
	font-family: 50% Verdana, Arial, Helvetica, sans-serif;
	
	margin: 0;
	padding: 0;
}

das ganze sollte wenn das klappt einfach so aussehen
Code:
.bodyprefs {
	background: #fff;
	border: solid 0px #333;

	border-top: solid 0px #565;
	color: #000;
	font-family: 50% Verdana, Arial, Helvetica, sans-serif;
	
	margin: 0;
	padding: 0;
}

die body variable ist also durch die klasse "bodyprefs" ersetzt und greift somit nicht mehr global in bodytags ein...

oder hab ich da was falsch verstanden?