CSS pois PHP filuista ja ei inlinenä.
Inlinellä tarkoitetaan yleensä style="..". Jos tarkoitat style-tägiä, sitä käytän varta vasten. Käyttämäni ratkaisu tuo joustavuutta. Style-tägiä käyttäen saa tehtyä muutokset tietokantaan. Link-tägin käyttö veisi CSS:n pois tietokannasta, mitä en halua.
On etu, että omat PHP, JavaScript ja CSS-koodaukset ovat kaikki Code Snippet tietueina. Ei tarvita FTP-siirtoja. Tietueita on helpompi versioida kuin tiedostoja.
Erillistiedostot eivät myöskään jousta. Niitä ei voi koodata joustavasti kuten JavaScriptiä tai PHP:tä.
Jos yrittää muuten, täytyisi olla tosi paljon luokkia, jotta voisi näyttää tai piilottaa halutut elementit. Iso luokkamäärää on vaikea hallita ja tulee turhaa CSS:ää, kun kaikki vaihtoehdot pitäisi sisällyttää CSS-tiedostoihin.
Asetussivulla minulla on tämäntapaisia määrityksiä:
Koodi:
}elseif($CSS===3){
$CSS='@media screen and (max-width:782px){
#top-buttons-container{position:fixed;top:0;right:0;width:48px;height:32px}
#sidebar-top a,#sidebar-top a::before{position:fixed;top:0;right:0;border-radius:0 0 0 5px;}}';
}elseif($CSS===4){
$CSS='@media screen and (max-width:782px){
#top-buttons-container{position:fixed;top:47%;left:0;width:48px;height:32px}
#sidebar-top a,#sidebar-top a::before{position:fixed;top:47%;left:0;border-radius:0 5px 5px 0;}}';
}
Ei tarvitse laittaa ylimääräisiä luokkia. Kun CSS on vaihtoehtoista, homma pysyy hallinnassa, kun ei tarvitse miettiä, mikä luokka liittyisi mihinkin vaihtoehtoon. Kaikkia vaihtoehtoja ei tarvitse laittaa samaan CSS-tietueeseen ja siten kasvattaa tarpeettomasti CSS-tietueen kokoa.
Asetuksiin liittyvä CSS hoituu hallitummin PHP + CSS -koodauksella kuin luokilla ja pelkällä CSS:llä. Erillistiedostoina link-tägeillä homma ei pysyisi hallinnassa - ei ainakaan minulla. Menisin vain umpisolmuun käytettyjen luokkien kanssa. Homma karkaisi täysin lapasista.
Ongelma on lähinnä se, että border-radius-ominaisuus liittyy elementtien sijoitteluun. Siihen liittyvien border-radius-arvojen ainoa vaihtoehto on se, että kaikki kulmat on pyöristetty samalla lailla.
Ajattelen CSS:ää apuohjelmointikielenä, miksi haluan pitää sen joissakin tilanteissa lähellä varsinaista ohjelmointia. Jos tarvitse PHP-funktion, teen sen. Jos on siihen liittyy CSS:ää, joissakin tilanteissa on järkevää käsitellä CSS samassa yhteydessä CSS eikä laittaa sitä jonnekin muualle.
Samoin teen joissakin Code Snippet -tietueissa JavaScriptille. Enin JS on erillistiedostossa, mutta osa on juuri siinä tiedostossa, jossa sitä tarvitaan.
En tee ohjelmointiani minkään kaavan mukaan, vaan yritän olla mahdollisimman joustava. Ei aina kannata viedä meren taakse koodia ihan vaan periaatteen vuoksi.
En voi lisätä bodylle luokkia. Käytettävissä olevat luokat eivät aina riitä. Tällöin
ainoa toimiva ratkaisu on PHP + CSS yhdessä. Seuraavaa koodi on tilanteille, joita ei Bodyn luokilla voi hallita:
Koodi:
if(function_exists('pageLists')){
$address = pageLists($list);
$y=0;
foreach ($address as $value) {
if($y==0){$blogi=$value;}
elseif($y==1){$articles=$value;}
elseif($y==3){$muut=$value;}
elseif($y==4){$articles3=$value;}
elseif($y==5){$ristikot=$value;}
elseif($y==6){$videot=$value;}
elseif($y==7){$tag=$value;}
$y++;
}
$howAlt=$blogi || $ristikot || $videot || $tag || $articles3;
}
Vilasin esittämäsi Sass ideaa, jossa sanotaan mm:
Sass lets you use features that don't exist in CSS yet like variables
Itse asiassa tekemäni PHP & CSS -yhdistelmä hoitaa vähän samaa asiaa.
Voisihan värit omassa ratkaisussanikin laittaa muuttujina, jolloin eri väriteema edellyttäisi vain sitä, että esim. laitetaan etsi ja korvaa ja "color:#fff" tilalle vaikka '.$linkki_tummalle_pohjalle.'.
Tuo väriteeman CSS ei ole ihan järkevä siinä mielessä, että ei ole koottu samoja ominaisuuksia sisältäviä ominaisuuksia. Yritin kyllä sitä, mutta se yritys meni ihan pieleen. Piti heittää roskakoriin. Samaa asiaa pitäisi vähän virkeämpänä kyllä yrittää uudestaan. Jos saan järkevämmin kootun CSS:n, muuttujien käyttöä voisi ajatella.
Ajattelin joskus sisäkkäistä CSS:ää. Useimmat validaattorit pitävät sitä virheellisenä, joten tarkistus on ongelmallista muulla kuin sassilla.
Joutuisin irrottamaan PHP ja CSS -koodauksen erilleen, mistä en pidä. Varmasti sopii toisille. Ratkaisuni ikävin puoli on se, että Code Snippet toimii bugisesti. Kaikkiin sen tarkistuksiin ei voi luottaa.
Ehdotuksia saa esittää, mutta eiköhän jokainen meistä halua toimia sillä tavalla kuin itselle parhaaksi sopii. Olennaista on se, että homma on hallinnassa.