PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   mit if anweisung css steuern (http://www.selfphp.de/forum/showthread.php?t=16898)

Sandra 29.05.2007 16:32:49

mit if anweisung css steuern
 
Hallo,

ich habe eine css Datei, die 4 verschiedene background + table + link Farben enthält
Jetzt spreche ich mit php diese Datei an und bestimme anhand einer id ( hier id_kat) welche Hintergrundfarbe + table gewählt werden soll.

Das klappt auch super. Nur schaffe ich es nicht die Linkfarben auch irgentwie damit zu ändern.

Hier der funktionierende code
PHP-Code:

<?php 
$red
="<body class='red'><table width='995' border='0'class='promored'align='center'>";
$blue="<body class='blue'><table width='995' border='0'class='promoblue'align='center'>";
$green="<body class='green'><table width='995' border='0'class='promogreen'align='center'>";
$grey="<body class='grey'><table width='995' border='0'class='promogrey'align='center'>";

if (
$row_rs_farben['id_kat']== 1){
echo 
"$red";
}
else if(
$row_rs_farben['id_kat']== 8){
echo 
"$blue";
}
else if(
$row_rs_farben['id_kat']== 9){
echo 
"$green";
}
else if(
$row_rs_farben['id_kat']== 11){
echo 
"$grey";
}
?>


und die css datei:

HTML-Code:

body.red{
        color: #000000;
        SCROLLBAR-BASE-COLOR: #88133C;
        SCROLLBAR-FACE-COLOR: #88133C;
        font-family: Arial, Helvetica, sans-serif;
        font-size:xx-small;
        background-color:#88133C;
       

}
body.blue{
        color: #000000;
        SCROLLBAR-BASE-COLOR: #000099;
        SCROLLBAR-FACE-COLOR: #000099;
        font-family: Arial, Helvetica, sans-serif;
        font-size:10px;
        background-color:#000099;
}
body.green{
        color: #000000;
        SCROLLBAR-BASE-COLOR: #009933;
        SCROLLBAR-FACE-COLOR: #009933;
        font-family: Arial, Helvetica, sans-serif;
        font-size:10px;
        background-color:#009933;
}
body.grey{
        color: #000000;
        SCROLLBAR-BASE-COLOR: #999999;
        SCROLLBAR-FACE-COLOR: #999999;
        font-family: Arial, Helvetica, sans-serif;
        font-size:10px;
        background-color:#999999;
}

table.promored {
        width: 995px;
        font-size:xx-small;
        background-image: url(../bb/back_table.png);               
        }
       

table.promoblue {
        width: 995px;
        font-size:xx-small;
        background-image: url(../bb/back_table_blue.png);               
        }
table.promogreen {
        width: 1005px;
        background-image: url(../bb/back_table_green.png);               
        }
table.promogrey {
        width: 1005px;
        background-image: url(../../neue_seiten2007/bb/back_table_grey.png);               
        }       
       
       
th {
font-size:xx-small;
padding-top:1px;
        }
        tr{
        font-size:xx-small;
        padding-top:1px;
        }
        td{
        font-size:xx-small;
        padding-top:1px;
        }
a:linkred {
        color: #88133C;
        font-size:xx-small;
}
a:visitedred {
        color: #88133C;
        font-size:xx-small;
}
a:hoverred {
        color: #F4B5CB;
        font-size:xx-small;
       
}
a:activered {
        color: #F4B5CB;
        font-size:xx-small;
}
a:link.blue {
        color: #000099;
}
a:visited.blue {
        color: #000099;
}
a:hover.blue {
        color: #0099FF;
}
a:active.blue {
        color: #0099FF;
}

a:linkgreen {
        color: #009933;
}
a:visitedgreen {
        color: #009933;
}
a:hovergreen {
        color: #22FF6A;
}
a:activegreen {
        color: #22FF6A;
}

a:linkgrey {
        color: #999999;
}
a:visitedgrey {
        color: #999999;
}
a:hovergrey {
        color: #C1C1C1;
}
a:activegrey {
        color: #C1C1C1;
}

Wenn Jemand eine Idee hat wäre toll

DANKE

Sandra

Raketenmann 29.05.2007 16:35:46

AW: mit if anweisung css steuern
 
...und an welcher Stelle versuchst du etwas an den Links zu verändern? ...und wie?

Grundsätzlich müsste es sich doch so ändern lassen wie die Teile, die funktionieren.

Sandra 29.05.2007 17:05:00

AW: mit if anweisung css steuern
 
Hallo,

ok vielleicht nicht ganz klar bisher.

DB mit id,titel, text und id_kat; titel werden ausgelesen & mit link versehen, alle auf eine seite zur anzeige vom dazugehörenden text. Jetzt soll sich je nachdem welche id_kat vorhanden ist der Hintergrund usw. der Seite ändern.

Damit ich nicht 4 Seiten brauche- sondern nur eine habe ich die if-anweisung gemacht.
Die funktioniert auch. Der Hintergrund und der Table ändern sich, nur die Linkfarben nicht.

Ich suche daher nur noch die Integration der Linkfarben hier a:linkred, a:linkblue usw.
Und an denen sitze ich schon sehr lange

DANKE für eine Idee

Sandra

Sandra 29.05.2007 17:07:08

AW: mit if anweisung css steuern
 
Entweder eine Verbindung im css zwischen body.red und a:linkred oder irgentwie hier:

$red="<body class='red'><table width='995' border='0'class='promored'align='center'>";

Raketenmann 29.05.2007 17:23:34

AW: mit if anweisung css steuern
 
Warum machst du deine Fallunterscheidungen nicht in der CSS Datei bzw. schreib die betreffenden Style-Angaben, in Abhängigkeit von der ID oben in die Seite...

Dann mußt du nicht an 45 Stellen deine Links anpassen, sondern hast nur die Styles in der Seite stehen die auch verwendet werden.

langwebdesign 29.05.2007 19:13:35

AW: mit if anweisung css steuern
 
Hallo,

so jetzt weis ich nicht ob Raketenmann das selbe meint, aber ich würde dir vorschlagen für jede Farbe eine eigene CSS Datei zu machen und dann nur im HEAD der HTML Datei mit einer switch abfrage die entsprechende Datei einzubinden.

PHP-Code:

switch($id_kat){
  case 
1:
    echo 
'<link rel="stylesheet" type="text/css" href="red.css">';
  break;
  case 
8:
    echo 
'<link rel="stylesheet" type="text/css" href="blue.css">';
  break;
  case 
9:
    echo 
'<link rel="stylesheet" type="text/css" href="green.css">';
  break;
  case 
11:
    echo 
'<link rel="stylesheet" type="text/css" href="grey.css">';
  break;


mfg stephan

FabianWesner 30.05.2007 14:40:16

AW: mit if anweisung css steuern
 
Das hier ist soweit ich weiß kein korrektes CSS, oder?

Code:

a:activered {}
a:link.blue {}

Ich würde es so machen:
Code:

body.red a:active {}
body.blue a:active {}


Socrates 31.05.2007 08:05:34

AW: mit if anweisung css steuern
 
Morgen!
Sehe ich das richtig, dass du nach dem Inhalt von kat_id das complete Design ändern willst?
Wenn ja mach dir doch nicht so nen Stress, sondern erstelle ein Hauptdesign (Breite der tabellen/ standard links / divs / lis / etc.). Dann erstellst du weitere css-dateien, die specifische designs enthalten ( reddesign / blue design / greendesign ). Diese legen dann speziell Hintergrund, textfarbe oder ähnliches fest. Du bindest also als erstes die Hauptdatei ein und als nächstes wählst du per php das spezifische design aus und bindest dies ein. Spart viel arbeit als einzeln die Hintergründe und die linkfarben zu ändern.
MfG, Andy

Tusch001 31.05.2007 19:13:55

AW: mit if anweisung css steuern
 
Hi Sandra,
denke, dass du es dir zu kompliziert machst.

im <body>tag weist du die Klasse zu: $red='<body class="red">...'
dann musst du in CSS nur unterscheiden zwischen generellen regeln:

body
{
color:#000000; /* gilt für alle */
}

und spezifischen Formatierungen, die nur gelten, wenn body die Klasse red hat:

body.red
{
background-color:#88133C;
}

da der Body alles umschließt, kannst du die Links ganz einfach in
CSS formatieren:

body.red a:visited
{
color:red;
}

bzw. es reicht auch nur die Klassenangabe:
.red a
{
...
}
.red a:hover
{
...
}

Konsequenz: außer einmal in php die Variable $red zu belegen, werden alle anderen Farb-Einstellung in CSS erledigt, ist ja schließlich genau zu diesem Zweck da!

LG Tusch001

Sandra 01.06.2007 14:23:57

AW: mit if anweisung css steuern
 
Hallo

Danke an alle erste einmal das ihr euch damit beschäftigt habe.

Also die Idee mit den 4 css datein- der sinn der sache ist das ich nur eine css habe und auch nur eine seite und trotzdem die Farben sich ändern

Ja der a:activered {} war falsch- habe ihn umgeschrieben in #titlered {

}
A.linkred {
color: #88133C;
font-size:xx-small;
}
hat mich auch nicht viel weiter gebracht, da vor jedem link eine eingene if- anweisung muß ( die auch geht )

ich habe auch .red a:hover ausprobiert, mache aber irgentetwas noch falsch

Danke

Sandra


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:37:14 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.