Kom ihåg mig?
Home Menu

Menu


php med css header

 
Ämnesverktyg Visningsalternativ
Oläst 2010-09-08, 15:47 #1
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Question php med css header

Jag använder ett php dokument som stylesheet: cssConfig.php. Anledningen till detta är att ett antal divar, färger mm. ändras beroende på en mängd olika saker. Detta har dock nackdelen med sig att varje sida har ett stort style block i headern.

Jag har försökt fixa detta genom att sätta headern på cssConfig.php till text/css, så att phpkoden ska resultera i css kod istället för html. Detta går fint ända tills det att cssConfig.php behöver använda en variabel som sätts i ett annat dokument. Exempel nedan:

i index.php:

$divWithPictures

i cssConfig.php:

.pictureContainer {

width: <?php echo $divWithPictures; ?>px;

}

Eftersom cssConfig.php länkas in som ett vanligt cssdokument dvs.
<link href="/cssConfig.php" rel="stylesheet" type="text/css" />
så får den inte del av de variabler som skapas i index.php som t.ex. $divWithPictures.

Hur ska jag lösa det här?
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-08, 16:30 #2
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Lumax Lumax är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 610
Hur får $divWithPictures i index.php sitt värde?
Kan inte cssConfig.php hämta värdet från samma källa?
Lumax är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-08, 16:49 #3
objx objx är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 154
objx objx är inte uppkopplad
Medlem
 
Reg.datum: Mar 2008
Inlägg: 154
Haha, oj vad snabb jag var på att svara. Låter någon annan svara.
objx är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-08, 17:02 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Har du bara en bredd som är beroende av innehållet på just den sidan så kan du gott lägga den i ett style-attribut alternativt i style-tagg på sidan. Nyttan med en extern fil (och korrekt cache-hantering) är att du inte behöver ladda om innehållet när det ändå ska vara detsamma på alla sidor. Har du i den externa css:en regler som ska ändras för varje sida så måste du också ladda en ny extern fil för varje sida. Det ger mest bara nackdelar.

Lägg inte CSS externt för att det är fint att göra det, gör det för att det är funktionellt fördelaktigt.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-08, 17:23 #5
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Citat:
Ursprungligen postat av Clarence Visa inlägg
Har du bara en bredd som är beroende av innehållet på just den sidan så kan du gott lägga den i ett style-attribut alternativt i style-tagg på sidan. Nyttan med en extern fil (och korrekt cache-hantering) är att du inte behöver ladda om innehållet när det ändå ska vara detsamma på alla sidor. Har du i den externa css:en regler som ska ändras för varje sida så måste du också ladda en ny extern fil för varje sida. Det ger mest bara nackdelar.

Lägg inte CSS externt för att det är fint att göra det, gör det för att det är funktionellt fördelaktigt.
Låter som ett klokt tips. skulle gissa att ungefär 90% av allt i configCss.php är lika på alla sidor. Gå in på min hemsida (länk finns i sidfoten) och visa källkod så förstår du vad jag menar.
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-09, 02:35 #6
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Skicka värderna som en GET variabel till filen?

cssConfig.php?pictureContainerWidth=433&pictureCon tainerHeight=636

Dock har du en ev. maxlängd på GET med 255 tecken (beror på webbläsare & webbserver).
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-09, 09:10 #7
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Lägg med den variabeln i sökvägen till cssConfig.php

i index.php:
HTML-kod:
<link rel="stylesheet" type="text/css" href="cssConfig.php?width=<?php echo $divWithPictures; ?>" />
i cssConfig.php:
HTML-kod:
.pictureContainer {

width: <?php echo (int)$_GET['width']; ?>px;

}
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-09, 10:04 #8
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Citat:
Ursprungligen postat av qson Visa inlägg
Lägg med den variabeln i sökvägen till cssConfig.php

i index.php:
HTML-kod:
<link rel="stylesheet" type="text/css" href="cssConfig.php?width=<?php echo $divWithPictures; ?>" />
i cssConfig.php:
HTML-kod:
.pictureContainer {

width: <?php echo (int)$_GET['width']; ?>px;

}
Jag har ungefär hundra variabler som jag i så fall skulle skicka på det sättet vilket löser problemet med att inte all stylekod tar upp en massa plats innan body. Problemet är då att det ändå blir ett stort block som tar plats innan body.
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-09-09, 10:18 #9
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Citat:
Ursprungligen postat av robincox Visa inlägg
Jag har ungefär hundra variabler som jag i så fall skulle skicka på det sättet vilket löser problemet med att inte all stylekod tar upp en massa plats innan body. Problemet är då att det ändå blir ett stort block som tar plats innan body.
Är dessa variabler statiska, eller är det något som ändras per användare/besök/sida/annat.?

Annars kan du ju ha dina variabler i en config-fil (eller lagra dem i session) och sedan skriva ut dem i ditt css-skript.

index.php
PHP-kod:
$style = array();
$style['divWithPictures'] = 150;
$style['divWithText'] = 200;

session_start();
$_SESSION['style'] = $style
cssConfig.php
PHP-kod:
<?php
session_start
();
$style $_SESSION['style'];
?>
.pictureContainer {

width: <?php echo (int)$style['divWithPictures']; ?>px;

}
EDIT: Om du vill vara säker på att besökaren alltid använder senaste css-filen lägger du till ett dynamiskt värde i sökvägen till css-filen:
HTML-kod:
<link rel="stylesheet" type="text/css" href="cssConfig.php?<?php echo time(); ?>" />
Problemet är att webbläsaren inte kan cacha css-filen utan måste ladda den varje gång, så det blir egentligen ingen skilllnad mot att ha det i en <style>-tagg i html-koden.

Senast redigerad av qson den 2010-09-09 klockan 10:26
qson är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
css, dynamiskt css, header, php, variabel


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:22.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017