Szerver oldali CSS változók
Sokan javasolták már a CSS fájlok szerver oldali feldolgozókon történő átvezetését annak érdekében, hogy különböző megnevezett változó értékeket használhassunk a stíluslapokban. Korábban is voltak már PHP-t használó megoldások erre, Shaun Inman azonban egy kicsit tovább viszi ezeket, bemutatva a CSS-SSV-t, azaz CSS Server Side Variables megoldást. Bár, mint a hozzászólásokból kiderül, szerencsésebb lenne konstansoknak nevezni a helyettesített értékeket, ráadásul ezesetben CSS-SSC lenne a módszer neve.
Erről szóló blogbejegyzésében Shaun ismerteti a legfontosabb alapelvet, azaz hogy kódszínezésben jártas programokban is jól működő megoldást szeretett volna készíteni, és ez késztette arra, hogy a CSS meglévő szerkezetét használja újra a cél érdekében, mégpedig a következőképpen:Ebből természetesen a böngésző csak a megfelelően feldolgozott, a
■ Erről szóló blogbejegyzésében Shaun ismerteti a legfontosabb alapelvet, azaz hogy kódszínezésben jártas programokban is jól működő megoldást szeretett volna készíteni, és ez késztette arra, hogy a CSS meglévő szerkezetét használja újra a cél érdekében, mégpedig a következőképpen:
@server variables {
primaryLinkColor: #AB6666;
}
a {
color: primaryLinkColor;
}
@server
nélkül előálló kész CSS kódot kapja meg, köszönhetően annak a feldolgozó szkriptnek, amit Shaun mellékelt. Érdemes a hozzászólásokat is elolvasni, melyekben rámutatnak, hogy nem minden esetben célszerű változókat használni, ám lehetnek olyan helyzetek, ahol ezek előnyösek. Ráadásul megfelelő gyorsítótár fejléc kiadásával a fájl tárolási idejét, azaz végső soron a szerver terhelését javíthatjuk.
RoR
-boogie-
innováció
előrelépés
A kérdés, hogy ez gyakorlatilag előrelépés-e? Az előnye, hogy nyelvfüggetlen, illeszkedik a CSS formátumhoz, a hátránya, hogy többet kell gépelni, s annyira nem átláthatóbb. Ciklusokat, függvényeket és hasonló megoldásokat pedig nem is lehet vele kivitelezni, a CSS szintatktikája nem nagyon van erre felkészítve, ellentétben egy szerver oldali programozási nyelvvel.
Akkor lenne ez jó, ha valakinek eszébe jutna a W3C-nél, hogy a CSS-t egy kicsit fel kellene turbózni. Tudtommal tudatosan nincsen szándékukban.
-boogie-
minek is?
Nyugodtan meg lehet oldani szerver oldalon a dinamikus előállítást, és még kesselés is segít, hogy optimális legyen.
Összetett
Ha lenne egy egységes megoldás (bárkitől, bármilyen formában), az az innovációt, megoldások megosztását segítené elő, szemben a mostani mindenki kitalál magának egy formátumot vagy generátort 3-4 különböző szerver oldali nyelven.
-boogie-
<Nincs cím>
<?php
$primaryLinkColor = "#AB6666";
?>
a {
color: <?php print $primaryLinkColor;?>;
}
egyszerűbb
a {
color: <?= $primaryLinkColor ?>;
}
Üdvözlettel,
Kiss-Tóth Marcell
Több helyen
Igen, több helyen
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
nem biztos :)
Amint mozgatod a kódot és egy olyan helyre kerül ahol nincs a engedélyezve a <? máris hibát ad a kód.
Így érdemes minden környezetben működő kódot írni, az meg a <?php echo ... ?>
--
connor
érdemes lenne elolvasni a hírt
CSS szintaxis
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
nem rossz
Vizuális szerkesztők...
:-)
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Részemről...
név: érték;
}
...
Sokszor találkozok azzal, hogy egy-egy színt, szélességet több helyen is fel kell használni. Nagyon idegesítő tud lenni, ha nem jut eszembe egy érték, hogy meg kell nézni, hogy mi is volt az adott tulajdonságnak az értéke, és ha meg kell változtatni, akkor lehet átírni egy csomó helyen, és néha a csere nem jó megoldás, mert esetleg véletlenül egyezik egy másik értékkel.
És helyspórolás sem lenne utolsó szempont, mert pl a
"1px dashed #121212;"
helyett elég lenne csak pár karaktert beírni.Esetlegesen lehetne ezeket a konstansokat globálissá tenni. Így meg lehetne oldani azt, hogy van egy fix, előre elkészített CSS fájlunk, és egy másik CSS fájlba (vagy az (X)HTML kód
<style>...<style>
részébe) elhelyezni a konstansokat. A konstansok feldolgozása (behelyettesítése) akkor történne meg, amikor az oldal renderelése történne.Így nem szükséges külön CSS értelmezőt futtatni a szerveren, mindössze csak a PHP vagy ASP szkript-tel kell legeneráltatni a változó értéket.
Maximum annyival lehetne bővíteni, hogy ténylegesen változókként kezelődjenek, és például javascriptben lehetne velük operálni. Így ha egy változót módosítunk, akkor egyből módosulna az érintett érték. Például:
var alaplinksz = document.css.getCSSVar('alaplinkszin');
document.css.setCSSVar('kiemeltlinksz') = alaplinksz;
</script>
Ha viszont ténylegesen "futtatható" kódot akarunk készíteni a CSS-ből, akkor be kell vezetni egy új nyelvi elemet a CSS-be. Például:
/* CSSKód itt */
if ($GET['szin'] == 'kek') {
$szoveg = blue;
} else {
$szoveg = red;
}
$uline = 1px dashed $szoveg;
}
a {
color: $szoveg;
border-bottom: $uline;
text-decoration: none;
}
a:hover {
border-bottom-style: solid;
}
Ez csak egy példa volt PHP-s nyelvtannal. Persze ilyenkor lehet külön értelmezőt írni CSS fájlokhoz. Egyszerűbb és több értelme van ilyenkor már a PHP-t használni, ugyanis az már kész, régóta használják, és bevált.
Ha már a változóknál tartunk. Érdemes lenne még több érték egy blokkba való csoportosítását lehetővé tenni. Például így:
tulajdonság1: érték1;
tulajdonság2: érték2;
...
tulajdonságN: értékN;
}
a {
$valami;
}
Ilyenkor a CSS fájl értelmezésekor az értelmező úgy venné, mintha a $valami; helyén a valami blokk-ban szereplő tulajdonságok szerepelnének.
Természetesen ezek a saját ötleteim, nem kötelező velük egyet érteni. :)
<Nincs cím>
Szerintem én fogom is használni a blogban írt ötletet, variables helyett constants-ot használva. Emellett a kimenet optimalizált CSS lesz, tehát space-ek, tabok és egyéb felesleges karakterektől mentes lesz. Így még csökken is a CSS mérete.
Mellesleg a változók használatára a Explorer jelenleg is lehetőséget biztosít, szóval ha esetleg bekerülhetne valami a CSS-be akkor az az Exploreres expression lehetne szerintem.
A ciklusok, feltételek, egyéb elemek CSS-be kerülése nem hinném, hogy szerencsés megoldás lenne, erre ott a most is használható JavaScript (JavaScriptből úgy állítod át a CSS-t ahogy akarod), feleseges lenne újra összekeverni a kettőt, ha eddig a szétválasztás volt a cél.
A @block-os megoldásod, meg a konstansok helyett, lehet használni legtöbbször az egyszerű szelektor felsorolást meg az érték felüldefiniálását:
egyszerű szelektor felsorolást
Mert eddig úgy láttam mindenre van valami módszer.
Azt, hogy a CSS-be rendessen beleépítsenek ugyanolyan nyelvi elemeket, mint pl a php-be, azt ellenenzem. Nincs értelme.
Nem kell
Mondjuk már van egy ilyen is: http://www.w3.org/TR/becss
Attila
Egyszerü müveletek
Üdv
ProClub
proclub##kukac##karinthy.hu
Margin
<Nincs cím>
kifejezéskiértékelés
A te általad írt kifejezés sem olyan egyszerű, többféle mértékegységet tartalmaz.
De egy egyszerű konstans behelyettesítést valóban meghatározhattak volna.
Miért a szerveren?
A cikk alapján írt php script:
Példa css:
Miért ne?